Tải bản đầy đủ (.pdf) (37 trang)

Bài tập lớn môn an toàn mạng (3)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.97 MB, 37 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN

Học phần: AN TỒN MẠNG

Báo cáo bài tiểu luận cuối kỳ:
TÌM HIỂU PHẦM MỀM WEBSCARAB

Giảng viên hướng dẫn
Sinh viên thực hiện
Mã sinh viên:
Nhóm

: TS. Đặng Minh Tuấn
: Nguyễn Nguyên Trung
: B18DCAT252
: 02

Hà Nội 2021


Mục lục
Danh mục từ viết tắt.............................................................................................................2
LỜI MỞ ĐẦU......................................................................................................................3
Chương 1. Giới thiệu về công cụ Webscarab ......................................................................4
1.1.Tổng quan ứng dụng web. ..........................................................................................4
1.2.Tổng quan giao thức HTTP/HTTPS...........................................................................5
1.3. Công cụ Webscarab. ..................................................................................................6
1.3.1. Giới thiệu ............................................................................................................6
1.3.2. Lịch sử hình thành và phát triển..........................................................................6
1.3.3. Các tính năng của WebScarab ............................................................................7


Chương 2: Cài đặt ................................................................................................................9
2.1. Cài đặt Webscarb trên máy Kali linux. .....................................................................9
2.2. Hướng dẫn cài đặt và sử dụng Webscarab (Phiên bản dành cho MacOS). .............14
2.2.1. Cài đặt webscarab trên macos. ..........................................................................14
2.2.2 Các tính năng của ứng dụng webscarab. ............................................................16
Chương 3: Demo................................................................................................................26
3.1 SQL Injection ...........................................................................................................26
Kêt luận ..............................................................................................................................34
Lời cảm ơn .........................................................................................................................35
Tài liệu tham khảo .............................................................................................................36

1


Danh mục từ viết tắt
Từ viết tắt
HTTP
HTTPS

Nghĩa tiếng anh
Hypertext Transfer Protocol
Hypertext Transfer Protocol Secure

CGI
CSDL
SSL
WWW
URL

Common Gateway Interface

Database
Secure Sockets Layer
World Wide Web
Uniform Resource Locators

HTML

Hypertext Markup Language

OWAPS

Open Web Application Security
Project

XSS
CRLF

Cross site scripting
Carriage Return and Line Feed

2

Nghĩa tiếng việt
Giao thức truyền tải siêu văn bản
Giao thức truyền tải siêu văn bản
được mã hoã
Giao diện cổng chung
Cơ sở dữ liệu
Lớp sockets an tồn
khơng gian thơng tin tồn cầu

Địa chỉ định vị tài ngun tồn
cầu
Ngơn ngữ Đánh dấu Siêu văn
bản
tổ chức phi lợi nhuận quốc tế
chuyên về bảo mật ứng dụng
web
Lỗ hổng Cross site scripting
Lỗ hổng CRLF Injection


LỜI MỞ ĐẦU
Sự phát triển vượt bậc của internet nhiều năm về đây đã khiến nhu cầu sử dụng
của người dân trên tồn thế giới tăng theo. Do đó việc sử dụng mạng Internet để liên lạc,
giao dịch, thanh toán trở thành một phần thiết yếu ngày nay, và việc lưu trữ thông tin của
bản thân, khách hàng, … trên khơng gian mạng có ý nghĩa hết sức quan trọng. Vậy nên
việc đảm bảo bảo an tồn cho những thơng tin được lưu trữ đó cũng cần phải được cải
tiến và phát triển đồng hành với sự tiến bộ của Internet.
Một trong các vấn đề nghiêm trọng liên quan đến quản lý an tồn thơng tin đó là
chưa có một cái nhìn khái quát, tổng thể đến việc các lỗ hổng, điểm yếu còn tồn tại trong
hệ thống. Các ứng dụng web, website bị tấn công thường xuyên, mỗi ngày ước tính có
khoảng 30.000 website bị tấn cơng, cứ 5 người sử dụng website thì sẽ có 1 người là nạn
nhân của tấn công mạng. Việc website, ứng dụng web bị tấn công dẫn đến thông tin bị
tiết lộ, lừa đảo người dùng là một trong các vấn nạn của toàn cầu.
Việc xây dựng các trang web được bảo mật, có cơ chế phịng vệ tốt là điều hết sức
quan trọng và góp phần xây dựng nên một mơi trường mạng an toàn, tin cậy cho người sử
dụng. Để làm được điều đó trước hết phải có cái nhìn tổng quát về trang web, ứng dụng
web, về các lỗ hổng và điểm yếu cịn tồn tại để từ đó có hướng đi thích hợp đảm bảo tiêu
chí an tồn – chất lượng – chi phí thấp.
Các cơng cụ rà qt lỗ hổng và các cơ chế phòng chống tự động được tích hợp

ngày nay tương đối phổ biến và được ứng dụng rất rộng rãi. Webscarab là một trong các
ứng dụng rà quét lỗ hổng, kiểm tra bảo mật web mã nguồn mở trên nền tảng ngôn ngữ
Java và được phát triển bởi The Open Web Application Security Project (OWASP). Đây
là một trong những sản phẩm tiên phong cho việc kiểm tra bảo mật của trang web cho
đến năm 2013 khi các ứng dụng, công cụ khác được ra đời và phát triển mạnh hơn.

3


Chương 1. Giới thiệu về công cụ Webscarab
1.1.Tổng quan ứng dụng web.
Ứng dụng web là một ứng dụng khách chủ sử dụng giao thức HTTP để tương với
người dùng và các hệ thống khác. Trình khách cho người dùng thường là một trình duyệt
như Chrome, Internet Explorer, Fire Fox, Opera … Người dùng gửi và nhận các thơng tin
từ trình chủ thông qua việc tác động vào các trang web. Các chương trình có thể là các
trang trao đổi, bán hàng, diễn đàn hoặc gửi nhận email, …
Các kỹ thuật xây dựng ứng dụng web có tốc độ phát triển rất nhanh. Trước đây các
ứng dụng web thường được xây dựng từ CGI (Common Gateway Interface) chạy trên
trình chủ web và có thể kết nối vào CSDL đơn giản trên cùng máy chủ. Ngày nay ứng
dụng web thường được viết bằng Java, ASP, PHP, … và chạy trên máy chủ phân tán, kết
nối đến nhiều nguồn dữ liệu
Một ứng dụng web thường có cấu trúc như sau:

Hình 1.1 Cấu trúc ứng dụng web
-

Client: Lớp này bao gồm các trình duyệt web và các ứng dụng có thể tạo ra
các HTTP request đến Web Server.

-


Server: Lớp này bao gồm các Web Server có thể can thiệp các request được
tạo bởi Client và trả về các phản hồi (response).

-

Business: Lớp này bao gồm ứng dụng trên Server có thể được tận dụng bởi các
Web Server để thực hiện các tiến trình xử lý cần thiết. Lớp này tương tác với
lớp Data qua các chương trình bên ngồi.

-

Data: Lớp này bao gồm các Database và bất kì các nguồn dữ liệu nào.

4


Mơ hình hoạt động của ứng dụng web.

Hình 1.2 Mơ hình hoạt động của ứng dụng web.
Trong đó:
-

Trình khách: Các trình duyệt như Internet Explorer, Fire Fox, …
Trình chủ: Apache, IIS
Hệ quản trị CSDL: SQL Server, MySQL, …

Tưởng lửa (Firewall) là một giải pháp bảo vệ hệ thống mạng có vai trị như một
lớp rào chắn bên ngồi với chức năng chính là kiểm sốt luồng thơng tin giữa các máy
tính.

1.2.Tổng quan giao thức HTTP/HTTPS.
HTTP là viết tắt của Giao thức truyền tải siêu văn bản (Hypertext Transfer
Protocol) là một giao thức cấp độ ứng dụng cho các hệ thống thông tin phân phối, cộng
tác và đa phương tiện. Đây là nền tảng cho giao tiếp thông tin cho World Wide Web (ví
dụ: Internet) từ 1990. HTTP là một giao thức chung và stateless mà có thể được sử dụng
cho các mục đích khác cũng như các sự mở rộng của các phương thức yêu cầu, các code
lỗi và Header của nó.
Theo cơ bản, HTTP là một giao thức giao tiếp trên cơ sở TCP/IP, mà được sử
dụng để phân phối dữ liệu (các tệp HTML, các file ảnh, …) trên WWW. Cổng mặc định
là TCP 80, những các cổng khác cũng có thể được sử dụng. Nó cung cấp một cách được
tiêu chuẩn hóa cho các máy tính để giao tiếp với nhau. Chi tiết kỹ thuật HTTP xác định
cách mà dữ liệu yêu cầu của Client sẽ được xây dựng và được gửi tới Server, và cách để
Server phản hồi các yêu cầu này
5


HTTPS viết tắt của Hypertext Transfer Protocol Secure, là một giao thức kết hợp
giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một
cách bảo mật trên Internet. Giao thức HTTPS thường được dùng trong các giao dịch nhạy
cảm cần tính bảo mật cao.
1.3. Công cụ Webscarab.
1.3.1. Giới thiệu
WebScarab là một framework được viết bằng Java phục vụ cho việc phân tích
những ứng dụng web với hai giao thức hỗ trợ HTTP và HTTPS. WebScarab có khả năng
ghi lại hoặc thay đổi tham số ứng dụng trước khi đi trình những yêu cầu, phản hồi giữa
trình duyệt và ứng dụng web.

Hình 1.3: Icon webscarab

Nó có một số chế độ hoạt động, thực hiện nhờ có một số plugin. Cách sử dụng phổ

biến nhất của WebScarab là hoạt động như một proxy chặn, cho phép nhà điều hành xem
xét và sửa đổi các request do trình duyệt tạo ra trước khi chúng được gửi đến máy chủ,
đồng thời xem xét và sửa đổi các phản hồi được trả về từ máy chủ trước khi chúng được
trình duyệt nhận. WebScarab có thể bắt chặn cả giao tiếp HTTP và HTTPS. Người điều
hành cũng có thể xem lại các cuộc hội thoại (request và respond) đã chuyển qua
WebScarab
1.3.2. Lịch sử hình thành và phát triển.
WebScarab bắt nguồn từ thiết kế của những người sống trong danh sách
WebAppSec chạy từ SourceForge, cho một công cụ mạnh mẽ, miễn phí, mở để xem xét
6


các ứng dụng web tìm lỗ hổng bảo mật. Khơng có nhiều thiết kế ban đầu thực sự được
thực hiện như hình dung. WebScarab bắt đầu như một con nhện có thể tải xuống tất cả
các trang trên một trang web. Nó vẫn như vậy trong gần một năm, trước khi tôi quyết
định rút ra những bài học kinh nghiệm trong quá trình phát triển Exodus và triển khai
chúng như một phần của WebScarab.
Hầu như khơng có gì của WebScarab ban đầu còn lại trong cơ sở mã nguồn hiện
tại. Mặc dù mã nguồn spider mà WebSphinx / WebScarab dựa trên đã được cải tiến và
được kiểm tra kỹ lưỡng, nhưng nó khơng phù hợp với quan điểm của nhà sản xuất về
cách hoạt động của một công cụ như vậy. Thay vì tách ra 99% WebSphinx, nhà sản xuất
đã chọn triển khai một con nhện tầm thường ở vị trí của nó. Mã nguồn WebScarab /
WebSphinx gốc vẫn có sẵn từ SourceForge, cho bất kỳ ai quan tâm.
Vào năm 2013, q trình phát triển chính thức của WebScarab bị chậm lại và có
vẻ như Dự án Zed Attack Proxy ("ZAP") của OWASP (một công cụ proxy mã nguồn mở
khác dựa trên Java nhưng có nhiều tính năng hơn và đang phát triển tích cực) là người kế
nhiệm chính thức của WebScarab, [2] [3 ] mặc dù bản thân ZAP đã được fork từ Paros
Proxy, không phải WebScarab. [4]
1.3.3. Các tính năng của WebScarab
WebScarab cung cấp một số tính năng và plugin tuyệt vời sẽ hỗ trợ người thử

nghiệm bút hiểu rõ về hành vi của ứng dụng web. Dưới đây là các plugin cùng với các
mô tả ngắn của chúng theo trang web chính thức của WebScarab:
-

Phân đoạn - trích xuất các tập lệnh và nhận xét HTML từ các trang HTML khi
chúng được nhìn thấy qua proxy hoặc các plugin khác.

-

Proxy - quan sát lưu lượng truy cập giữa trình duyệt và máy chủ web. Proxy
WebScarab có thể quan sát cả lưu lượng HTTP và HTTPS được mã hóa bằng
cách thỏa thuận kết nối SSL giữa WebScarab và trình duyệt, thay vì chỉ kết nối
trình duyệt với máy chủ và cho phép một luồng được mã hóa đi qua nó. Nhiều
plugin proxy khác nhau cũng đã được phát triển để cho phép nhà điều hành
kiểm soát các yêu cầu và phản hồi đi qua proxy.

-

Đánh chặn thủ công - cho phép người dùng sửa đổi nhanh các yêu cầu và phản
hồi HTTP và HTTPS, trước khi chúng đến được máy chủ hoặc trình duyệt.

-

Beanshell - cho phép thực hiện các hoạt động phức tạp tùy ý trên các u cầu
và phản hồi. Bất cứ thứ gì có thể được thể hiện bằng Java đều có thể được thực
thi.

-

Hiển thị các trường ẩn - thay đổi tất cả các trường ẩn được tìm thấy trong các

trang HTML thành các trường văn bản, làm cho chúng hiển thị và có thể chỉnh

7


sửa. Đôi khi, việc sửa đổi một trường ẩn trong chính trang sẽ dễ dàng hơn là
chặn yêu cầu sau khi nó đã được gửi đi.
-

Trình mơ phỏng băng thơng - cho phép người dùng giả lập mạng chậm hơn để
quan sát trang web của họ sẽ hoạt động như thế nào khi được truy cập qua
modem.

-

Spider - xác định các URL mới trên trang web mục tiêu và tìm nạp chúng theo
lệnh.

-

Yêu cầu thủ công - cho phép chỉnh sửa và phát lại các yêu cầu trước đó hoặc
tạo các u cầu hồn tồn mới.

-

Phân tích SessionID - thu thập và phân tích một số cookie để xác định trực
quan mức độ ngẫu nhiên và khơng thể đốn trước. Lưu ý rằng phân tích này
khá tầm thường và khơng thực hiện bất kỳ kiểm tra nghiêm túc nào, chẳng hạn
như FIPS, v.v


-

Tìm kiếm - cho phép người dùng tạo các biểu thức BeanShell tùy ý để xác định
các cuộc hội thoại sẽ được hiển thị trong danh sách.

-

So sánh - tính tốn khoảng cách chỉnh sửa giữa các cơ quan phản hồi của các
cuộc hội thoại được quan sát và một cuộc hội thoại cơ bản đã chọn. Khoảng
cách chỉnh sửa là “số lần chỉnh sửa cần thiết để chuyển đổi tài liệu này thành
tài liệu khác”. Vì lý do hiệu suất, các chỉnh sửa được tính bằng cách sử dụng
mã thơng báo từ, thay vì từng byte.

-

XSS / CRLF - một plugin phân tích thụ động tìm kiếm dữ liệu do người dùng
kiểm soát trong tiêu đề và nội dung phản hồi HTTP để xác định khả năng chèn
CRLF (phân tách phản hồi HTTP) và các lỗ hổng được phản ánh trong kịch
bản chéo trang (XSS).

8


Chương 2: Cài đặt
2.1. Cài đặt Webscarb trên máy Kali linux.
Chuẩn bị máy kali.

Hình 2.1: Cấu hình máy ảo kali
Lệnh lscpu cung cấp các thông tin về CPU và các đơn vị xử lý. Lệnh này khơng có bất kỳ
tùy chọn hoặc chức năng nào khác


Hình 2.2: Thơng tin hệ điều hành máy ảo Kali
Dùng lệnh uname -a để xem thông tin hệ điều hành và tên người dùng.
9


Vì Webscarb chạy trên nền tảng ngơn ngữ java cho nên trước hết chúng ta phải cài
đặt môi trường Java cho máy ubuntu.

Hình 2.3: Version java của máy ảo kali

10


Dùng tổ hợp câu lệnh để tải java về máy.

Hình 2.4: Hướng dẫn tải java.
-

Dùng lệnh sudo -su để vào chế độ người quản trị hệ thống
Dùng lệnh sudo apt update apt upgrade để tiến hành update hệ thống.
Tải java (jdk 11.0.13) về máy bằng câu lệnh apt install -y default-jdk.

Sau đó tiến hành tải webscarab về máy thơng qua trang web
/>
11


Hình 2.5: Đường dẫn url vào trang web download webscarab
Giải nén trực tiếp file .zip ra ngoài desktop, sau khi giải nén sẽ có 1 file .jar, một

file .bat và một file .sh

Hình 2.6: Webscarb sau khi được giải nén.

12


Mở một cửa sổ terminal mới lên, đưa đường dẫn vào desktop rồi chạy chương
trình shell start.sh bằng lệnh bash start.sh.

Hình 2.7: Khởi động webscarb

13


Hình 2.8: Webscarab khởi động thành cơng.
Lúc này chúng ta kết nối tới CSDL đã có theo form jdbc trên nền tảng java hoặc
chúng ta kết nối đến CSDL mặc định của webscarab với username là “sa” và mật khẩu để
trống.
2.2. Hướng dẫn cài đặt và sử dụng Webscarab (Phiên bản dành cho MacOS).
2.2.1. Cài đặt webscarab trên macos.
Truy cập vào đường link
sau đó tiến hành download file
.zip về máy.

14


Hình 2.9: Địa chỉ download webscarab cho hệ điều hành MacOS
Sau đó tiến hành giải nén rồi chạy file webscarab.jar bằng terminal. Chuyển đường

dẫn đến file đã giải nên rồi chạy câu lệnh java -jar webscarab.jar.

Hình 2.10: Mở ứng dụng webscarab trên hệ điều hành macos

15


Hình 2.11: Ứng dụng webscarab
2.2.2 Các tính năng của ứng dụng webscarab.
2.2.2.1 Chức năng Proxy
Một proxy HTTP rất hữu ích khi đánh giá lỗ hổng ứng dụng web. Một proxy sẽ
cho phép bạn ghi lại tất cả các giao dịch của mình trong khi sử dụng ứng dụng web tạo ra
lịch sử các trang bạn đã truy cập và các liên kết bạn đã nhấp vào. Một proxy cũng cho
phép bạn xem yêu cầu HTTP và phản hồi, về cơ bản bạn sẽ thấy những gì đang được gửi
phía sau màn hình.

16


Hình 2.12: Cài đặt Proxy cho webscarab
Cài đặt proxy cho trình duyệt web để dùng proxy kết nối đến mạng internet. Proxy
cho trình duyệt web phải tương tự như proxy đã cấu hình cho Webscarab.
Trình duyệt Web được sử dụng ở đây là FireFox, cách cấu hình proxy cho FireFox
được thực hiện như sau : Tools > Options > Advanced > Network > Settings

17


Hình 2.13: Cài đặt Proxy cho FireFox
Tab Summary trong web scarab sẽ tóm tắt lại tất cả các yêu cầu, phản hồi và trạng

thái của các url.

18


Hình 2.14: Kết quả request/respond trên tab summary
2.2.2.2 Chức năng Session ID Analysis.
Session khi sinh ra được lưu trên 1 file có tên dài dịng, khó đốn và được tạo ngẫu
nhiên là session id trên máy chủ, và đồng thời ở máy client cũng có 1 cookie sinh ra có
nội dung (hay giá trị) đúng như session id (để có thể so khớp session nào là của client
nào).
Một trong các ứng dụng điển hình là việc quản lý Đăng nhập, Đăng xuất của thành
viên mà hầu hết các trang Web nào cũng phải có.

19


Hình 2.15: Trang đăng nhập

Hình 2.16: Phân tích Session ID
20


Chọn phương thức POST và đưa địa chỉ URL vào sau đó inser địa chỉ này vào
webscarab. Sau đó chọn Test để nhận được responds từ server.
Một ví dụ khác đó là khi đăng nhập vào ứng dụng Hacme Casino. Điều hướng bên
trong ứng dụng sẽ tạo ra các yêu cầu và phản hồi mà chúng ta có thể phân tích sau này.
Bây giờ q trình đăng nhập sẽ tạo một ID phiên nhưng có thể có ID phiên khác được tạo
trong ứng dụng mà người dùng có thể phân tích.


Hình 2.17: Đăng nhâp vào ứng dụng web Hacme Casino

21


Hình 2.18: Quy trình đăng nhập
Trong tab Collection người dùng có thể thấy các request mà người dùng đã gửi
trong suốt quả trình đăng nhập. Có thể hiểu đây là một cuộc trò chuyện giữa server và
client.

22


Hình 2.19: Tab Collection trong Session ID Analysis

23


Hình 2.20: Chọn 1 phiên để phân tích

24


×