LỜI MỞ ĐẦU
Công nghệ thông tin trong giai đoạn hiện nay đang có những bước phát triển vượt
bậc trên mọi lĩnh vực ở khắp nơi trên toàn thế giới, điều xảy ra trong nhiều năm vừa qua
là việc đầu tư vào công nghệ. Đối với Việt Nam tuy công nghệ thơng tin mới chỉ phát
triển trong vịng vài năm trở lại đây và đang từng bước phát triển tại Việt Nam tạo nên
những triển vọng về lĩnh vực công nghệ thơng tin, trong đó việc quản lý hệ thống, an tồn
tồn thơng tin đang là những thế mạnh tiềm năng, thế mạnh của đất nước. Hệ thống thông
tin giúp công việc quản lý dễ dàng hơn, nâng cao hiệu quả, tiết kiệm được thời gian và
công sức.
Tuy nhiên, bên cạnh sự tiện lợi của các hệ thống, luôn tồn tại những mối nguy cơ về
các cuộc tấn công mạng. Những cuộc tấn công này luôn mang đến những mối nguy hại
lớn cho các doanh nghiệp. Nguyên nhân chính bắt nguồn từ việc lập trình, cấu hình các
hệ thống, các kiến thức về bảo mật, phịng chống tấn cơng dẫn đến việc tồn tại của các lỗ
hổng trong hệ thống.
Chính vì vậy trong bài báo cáo này, các vấn đề liên quan đến bảo mật và kiểm thử
xâm nhập đang dần trở thành mối quan tâm đối với bất kì doanh nghiệp nào có sử dụng
các hệ thống trực tiếp. Trước những nhu cầu thiết yếu đó, sự ra đời của các cơng cụ bảo
mật, kiểm thử đánh giá an tồn thông tin được ra đời.
MỤC LỤC
DANH SÁCH THUẬT NGỮ VÀ TỪ VIẾT TẮT....................................................................3
DANH MỤC HÌNH VẼ...............................................................................................................7
LỜI MỞ ĐẦU...............................................................................................................................9
CHƯƠNG 1: GIỚI THIỆU VỀ CƠNG CỤ SKIPFISH.......................................................10
1.1. Tổng quan về công cụ Skipfish......................................................................................10
1.2. Hướng dẫn cài đặt và sử dụng công cụ Skipfish.........................................................14
1.2.1. Hướng dẫn cài đặt công cụ Skipfish......................................................................14
1.2.2. Hướng dẫn sử dụng công cụ Skipfish....................................................................17
1.2.3. Ví dụ minh họa về sử dụng cơng cụ Skipfish để rà quét một trang web..........28
1.3. Các vấn đề thường gặp và cách khắc phục với công cụ Skipfish.............................31
CHƯƠNG 2: THỬ NGHIỆM KỊCH BẢN TẤN CÔNG TRÊN CÔNG CỤ SKIPFISH36
2.1. Các kỹ thuật tấn cơng và cơng cụ tích hợp sử dụng trong bài LAB........................36
2.2. Kịch bản thử nghiệm tấn cơng thực tế.........................................................................37
2.3. Các biện pháp đối phó dựa trên thử nghiệm tấn công..............................................54
KẾT LUẬN.................................................................................................................................56
TÀI LIỆU THAM KHẢO.........................................................................................................57
2
DANH SÁCH THUẬT NGỮ VÀ TỪ VIẾT TẮT
STT Từ viết tắt
1
2
3
4
5
CPU
CSS
DNS
EXIF
GNU
Thuật ngữ Tiếng Anh
Central Processing
Unit
Thuật ngữ Tiếng Việt / Giải thích
Là các mạch điện tử trong một máy
tính,thực hiện các câu lệnh của
chương trình máy tính bằng cách
thực hiện các phép tính số học, logic,
so sánh và các hoạt động nhập/xuất
dữ liệu (I/O) cơ bản do mã lệnh chỉ
ra.
Cascading Style Sheets
Được dùng để miêu tả cách trình bày
các tài liệu viết bằng ngơn ngữ HTML
và XHTML. Ngồi ra ngơn ngữ định
kiểu theo tầng cũng có thể dùng cho
XML, SVG, XUL.
Domain Name System
Mang ý nghĩa đầy đủ là hệ thống phân
giải tên miền. DNS được phát minh vào
năm 1984 cho Internet, chỉ một hệ
thống cho phép thiết lập tương ứng giữa
địa chỉ IP và tên miền.
Exchangeable Image
File Format
Định dạng tệp hình ảnh có thể trao
đổi là một tiêu chuẩn chỉ định các
định dạng cho hình ảnh, âm thanh và
thẻ phụ trợ được sử dụng bởi máy
ảnh kỹ thuật số, máy quét và các hệ
thống khác xử lý các tệp hình ảnh và
âm thanh được ghi lại bởi máy ảnh
kỹ thuật số.
General Public
License
Là một hệ điều hành và bộ sưu tập
phần mềm máy tính phong phú.
GNU bao gồm tồn bộ phần mềm tự
do, hầu hết được cấp phép theo
General Public License của GNU
Project.
6
7
GUI
HTTP
Là một thuật ngữ trong ngành cơng
nghiệp máy tính. Đó là một cách giao
Graphical User Interface tiếp với máy tính hay các thiết bị điện
tử bằng hình ảnh và chữ viết thay vì chỉ
là các dịng lệnh đơn thuần.
HyperText Transfer
Protocol
Là một giao thức lớp ứng dụng cho
các hệ thống thông tin siêu phương
tiện phân tán, cộng tác.
8
I/O
Input/Output
Là sự giao tiếp giữa một hệ thống xử lý
thơng tin hay máy tính với thế giới bên
ngồi, có thể là con người hoặc một hệ
thống xử lý thông tin khác.
9
IP
Internet Protocol
Địa chỉ IP / là địa chỉ của các máy tính
dùng để phân biệt và kết nối với nhau.
Inter Process
Communication
Trong khoa học máy tính, giao tiếp giữa
các q trình hoặc giao tiếp giữa các
quá trình (IPC) đề cập cụ thể đến các cơ
chế mà hệ điều hành cung cấp để cho
phép các quá trình quản lý dữ liệu được
chia sẻ.
Intrusion Prevention
System
Là một hệ thống phát hiện xâm nhập
ngoài khả năng theo dõi, giám sát thì
cịn có chức năng ngăn chặn kịp thời các
hoạt động xâm nhập không mong muốn
đối với hệ thống máy tính.
LAN
Local Area Network
Mạng máy tính nội bộ, giao tiếp này
cho phép các máy tính kết nối với nhau
để cùng làm việc và chia sẻ dữ liệu.
MAN
Metropolitan Area
Network
Là mạng dữ liệu băng rộng được
thiết kế cho phạm vi trong thành phố,
thị xã. Khoảng cách rơi vào 100 km.
10
11
12
13
IPC
IPS
14
15
16
17
18
19
MIME
OGNL
PHP
RAM
SQL
SSL
Multipurpose Internet
Mail Extensions
Là một tiêu chuẩn Internet về định dạng
cho thư điện tử. Hầu như mọi thư điện
tử Internet được truyền qua giao thức
SMTP theo định dạng MIME.
Object-Graph
Navigation Language
Là ngôn ngữ biểu thức nguồn mở
cho Java, trong khi sử dụng các biểu
thức đơn giản hơn toàn bộ phạm vi
được hỗ trợ bởi ngôn ngữ Java, cho
phép nhận và thiết lập các thuộc tính
và thực thi các phương thức của các
lớp Java.
Hypertext
Preprocessor
Là một ngơn ngữ lập trình kịch bản
hay một loại mã lệnh chủ yếu được
dùng để phát triển các ứng dụng viết
cho máy chủ, mã nguồn mở, dùng
cho mục đích tổng qt. Nó rất thích
hợp với web và có thể dễ dàng nhúng
vào trang HTML.
Random Access
Memory
Là một loại bộ nhớ khả biến cho phép
truy xuất đọc-ghi ngẫu nhiên đến bất kỳ
vị trí nào trong bộ nhớ dựa theo địa chỉ
bộ nhớ. Thông tin lưu trên RAM chỉ là
tạm thời, chúng sẽ mất đi khi mất
nguồn điện cung cấp.
Structured Query
Language
Là ngôn ngữ truy vấn mang tính cấu trúc,
là một loại ngơn ngữ máy tính phổ biến
để tạo, sửa, và lấy dữ liệu từ một hệ
quản trị cơ sở dữ liệu quan hệ.
Secure Sockets Layer
Là giao thức mật mã được thiết kế để
cung cấp truyền thơng an tồn qua một
mạng máy tính. Một số phiên bản của
các giao thức này được sử dụng rộng rãi
trong các ứng dụng như trình duyệt
Web, thư điện tử, …
20
21
22
23
24
25
TCP
Transmission Control
Protocol
Là một trong các giao thức cốt lõi của
bộ giao thức TCP/IP. Sử dụng TCP, các
ứng dụng trên các máy chủ được nối
mạng có thể tạo các "kết nối" với nhau,
mà qua đó chúng có thể trao đổi dữ liệu
hoặc các gói tin. Giao thức này đảm bảo
chuyển giao dữ liệu tới nơi nhận một
cách đáng tin cậy và đúng thứ tự.
URL
Uniform Resource
Locator
Là một tham chiếu đến tài nguyên web
chỉ định vị trí của nó trên một mạng
máy tính và cơ chế để truy xuất nó.
Unicode
Transformation
Format
là một bộ mã hóa ký tự với chiều
rộng biến thiên dành cho Unicode.
Nó thể biểu diễn tất cả các chữ cái
trong bộ ký tự Unicode, nhưng điểm
khác biệt quan trọng nhất là nó có
thể tương thích ngược với ASCII.
UTF
XML
XSRF
XSS
Extensible Markup
Language
Là ngơn ngữ đánh dấu với mục đích
chung do W3C đề nghị, để tạo ra các
ngôn ngữ đánh dấu khác. Đây là một
tập con đơn giản của SGML, có khả
năng mơ tả nhiều loại dữ liệu khác
nhau.
Cross-site Request
Forgery
Giả mạo yêu cầu trên nhiều trang
web là một loại khai thác độc hại của
một trang web nơi các lệnh trái phép
được gửi từ người dùng mà ứng dụng
web tin cậy.
Cross-Site Scripting
Là một loại lỗ hổng bảo mật thường
thấy trong các ứng dụng web. Các
cuộc tấn công XSS cho phép những
kẻ tấn công đưa các tập lệnh phía
máy khách vào các trang web được
người dùng khác xem.
DANH MỤC HÌNH VẼ
Hình 1.1: Giới thiệu cơng cụ Skipfish......................................................................................10
Hình 1.2: Báo cáo của Skipfish về việc quét các lỗ hổng bảo mật của một trang web...........11
Hình 1.3: Bảng so sánh giữa hai cơng cụ Skipfish và Acunetix...............................................11
Hình 1.4: Bảng so sánh giữa hai cơng cụ Skipfish và Nikto...................................................12
Hình 1.5: Bảng so sánh đưa ra các tính năng vượt trội của Skipfish so với Grabber............12
Hình 1.6: Các phiên bản khác nhau của Skipfish trên trang chủ............................................14
Hình 1.7: Cách khởi động cơng cụ Skipfish bằng câu lệnh trên Kali Linux...........................17
Hình 1.8: Cách khởi động cơng cụ Skipfish đã được tích hợp sẵn trên Kali Linux................17
Hình 1.9: Các tính năng và tham số trong bộ cơng cụ Skipfish phần 1..................................18
Hình 1.10: Các tính năng và tham số trong bộ cơng cụ Skipfish phần 2................................18
Hình 1.11: Các tham số trong tùy chọn xác thực và truy cập..................................................19
Hình 1.12: Một dịng lệnh mẫu để đăng nhập bằng tính năng này.........................................20
Hình 1.13: Các tham số cho tính năng tùy chọn phạm vi thu thập thơng tin..........................21
Hình 1.14: Các tham số cho tính năng báo cáo......................................................................22
Hình 1.15: Các tham số trong tùy chọn quản lý từ điển..........................................................23
Hình 1.16: Các tham số trong tính năng cài đặt hiệu suất......................................................24
Hình 1.17: Các tham số trong tính năng một số các tùy chọn cài đặt khác............................25
Hình 1.18: Trang báo cáo được trình bày chi tiết và có thể mở bằng trình duyệt..................26
Hình 1.19: Sử dụng giao diện dịng lệnh Skipfish để thực hiện rà quét..................................29
Hình 1.20: Giao diện hiển thị các trường thơng tin trong q trình rà qt..........................29
Hình 1.21: Một giao diện khác có thể xem chi tiết các thư mục được quét............................30
Hình 1.22: Skipfish báo cáo quá trình rà quét đã thực hiện xong...........................................30
Hình 1.23: Thư mục báo cáo được trích xuất sau q trình rà qt.......................................30
Hình 1.24: Báo cáo chi tiết các thông tin thu thập và cảnh báo sau q trình rà qt..........31
Hình 1.25: Thơng thường các vấn đề luôn được cập nhật trên trang chủ của Skipfish..........35
Hình 2.1: Khởi động cơng cụ Skipfish trong Kali Linux.........................................................38
Hình 2.2: Truyền lệnh vào cơng cụ Skipfish để tiến hành rà qt...........................................39
Hình 2.3: Hiển thị các tính năng quét của Skipfish.................................................................39
Hình 2.4: Một vài thơng số về q trình rà quét của Skipfish.................................................39
Hình 2.5: Chi tiết các yêu cầu được rà qt để thu thập thơng tin trang web........................40
Hình 2.6: Thư mục chưa báo cáo đầu ra sau khi quá trình qt hồn tất..............................40
Hình 2.7: Báo cáo kết quả cho trang web testphp.vulnweb.com trên trình duyệt...................41
Hình 2.8: Giao diện đăng nhập của trang web testphp.vulnweb.com.....................................41
Hình 2.9: Sử dụng truy vấn order by với N=3.........................................................................42
Hình 2.10: Sử dụng truy vấn order by với N=4.......................................................................42
Hình 2.11: Sử dụng truy vấn union select để trích xuất các bảng bị lỗi hiển thị....................43
Hình 2.12: Sử dụng truy vấn để kiểm tra phiên bản cơ sở dữ liệu..........................................44
Hình 2.13: Sử dụng truy vấn để trích xuất tên cơ sở dữ liệu...................................................44
Hình 2.14: Sử dụng truy vấn để trích xuất các bảng có trong cơ sở dữ liệu...........................45
Hình 2.15: Sử dụng truy vấn trường thơng tin trong bảng users............................................46
Hình 2.16: Truy xuất được thành cơng username và password..............................................47
Hình 2.17: Sử dụng username và password vừa thu thập được để đăng nhập.......................47
Hình 2.18: Giao diện đăng nhập thành cơng vào hệ thống.....................................................48
Hình 2.19: Mở cơng cụ Skipfish trên Kali Linux.....................................................................48
Hình 2.20: Đưa vào câu lệnh để rà qt cho trang web nhuaphucthich.com.vn....................49
Hình 2.21: Các tính năng rà qt của cơng cụ Skipfish..........................................................49
Hình 2.22: Một số thơng tin hiển thị trong quá trình rà quét bằng Skipfish...........................49
Hình 2.23: Q trình thu thập thơng tin bằng Skipfish...........................................................50
Hình 2.24: Thư mục đầu ra sau quá trình rà quét trang web nhuaphucthinh.com.vn............50
Hình 2.25: Bản báo cáo các lỗ hổng và dữ liệu cho trang web nhuaphucthich.com.vn.........51
Hình 2.26: Sử dụng SQL Map để trích xuất cơ sở dữ liệu......................................................51
Hình 2.27: Các cơ sở dữ liệu của trang web đã được tìm thấy...............................................52
Hình 2.28: Trích xuất dữ liệu bảng của cơ sở dữ liệu nhuaphucth_inh..................................52
Hình 2.29: Các bảng tồn tại trong cơ sở dữ liệu nhuaphucth_inh..........................................52
Hình 2.30: Trích xuất thơng tin các trường trong bảng administrator...................................52
Hình 2.31: Chi tiết các trường thơng tin trong bảng administrator........................................53
Hình 2.32: Dùng lệnh –dump để trích xuất tất cả dữ liệu trong bảng administrator.............53
Hình 2.33: Lấy được AdmPass và AdmUsername của người quản trị....................................53
LỜI MỞ ĐẦU
Hiện nay trên thế giới nói chung và ở Việt Nam ta nói riêng đang quan tâm đến
một số vấn đề hết sức nổi cộm và nhức nhối đó là vấn đề rị rỉ thơng tin, một loại tội
phạm mới đang xuất hiện trong thời đại công nghệ đó là tội phạm cơng nghệ cao, các
loại tin tặc chuyên đánh cắp thông tin (hacker). Những đối tượng này thường xuyên
khai thác, xâm nhập vào các lỗ hỏng của các hệ thống thông tin, hệ thống mạng nhằm
vào mục đích phá hoại, khai thác dữ liệu quan trọng của hệ thống. Vấn nạn rị rỉ thơng
tin khơng chỉ ảnh hưởng lớn đến sự phát triển về mặt kinh tế của các quốc gia mà còn
phá hoại diễn biến hòa bình và an ninh của các quốc gia. Do đó việc đảm bảo an tồn
thơng tin cho các hệ thống thông tin, các hệ thống mạng là điều quan trọng, cần thiết
và không thể thiếu trong thời đại tin học hóa như hiện nay.
Việc đánh giá, kiểm thử, thử nghiệm các ứng dụng web trong quá trình xây
dựng, hoặc ngay cả sau q trình xây dựng là vơ cùng cần thiết và hữu ích. Cơng việc
kiểm thử sẽ giúp cho ứng dụng web của chúng ta có thể chịu đựng được các cuộc tấn
cơng của các kẻ tấn cơng. Có rất nhiều các cơng cụ hữu ích có thể giúp chúng ta kiểm
thử ứng dụng web của mình.
Skipfish là một trong các cơng cụ hữu ích và mạnh mẽ phục vụ cho công việc
rà quét các thông tin về các lỗ hổng của một trang web, từ đó giúp chúng ta có thể
khắc phục được các điểm yếu để làm cho hệ thống trở nên an toàn hơn. Ngoài ra nó
cũng giúp những người sử dụng thống kê lại các thư mục của một trang web để dễ
dàng hơn trong việc kiểm sốt truy nhập.
Bài báo cáo nhằm mục đích giới thiệu công cụ Skipfish, cách cài đặt, sử dụng
và thực hiện một số kịch bản thử nghiệm dựa trên việc tích hợp cơng cụ này với một
số các cơng cụ hữu dụng khác. Nội dung này chỉ sử dụng cho mục đích học tập,
nghiên cứu, khơng sử dụng với mục đích xấu ảnh hướng đến bất kỳ tổ chức, cá nhân
nào.
Em xin chân thành cảm ơn đến giảng viên TS. Đặng Minh Tuấn đã giúp có thể
tìm hiểu thêm được nhiều tài liệu, cũng như hoàn thiện được bài báo cáo một cách
hoàn chỉnh.
CHƯƠNG 1: GIỚI THIỆU VỀ CÔNG CỤ SKIPFISH
1.1. Tổng quan về cơng cụ Skipfish
Skipfish là một trình qt ứng dụng web mã nguồn mở mới được viết và duy trì
bởi Michal Zalewski, Niels Heinen và Sebastian Roschke. Công cụ này sử dụng ngơn
ngữ lập trình C, được phát triển bởi Google và đã có bản quyền được bảo lưu vào năm
2009 – 2012. Khi Skipfish chính thức được phát hành thì nó đã được cấp phép một
cách đầy đủ theo các điều khoản và điều kiện của Apache phiên bản 2.0.
Hình 1.1: Giới thiệu cơng cụ Skipfish
Mục tiêu của Skipfish tương tự như mục tiêu của các máy quét lỗ hổng bảo mật
web trước đây như Nmap và Nessus, cho phép các nhà phát triển web quét ứng dụng
hoặc trang web của họ để tìm các vấn đề bảo mật tiềm ẩn. Skipfish có thể được sử
dụng để xác định xem mã có dễ bị tấn cơng bởi các cuộc tấn công phổ biến như chèn
các đoạn mã cho trang web XSS, SQL và tấn công chèn XML hay không vì nó thực
hiện qt các lỗ hổng với các mức độ rủi ro cao, lỗ hổng rủi ro trung bình và quét sự
cố thấp. Sau khi Skipfish hoàn thành quá trình qt của nó, nó chuẩn bị một bản đồ
trang web tương tác cho trang web được nhắm mục tiêu bằng cách thực hiện thu thập
dữ liệu đệ quy và các thăm dò dựa trên từ điển. Skipfish được cho là có thể dễ dàng
xử lý hơn
2.000 yêu cầu HTTP mỗi giây nếu máy chủ đang được kiểm tra có thể xử lý tải.
Các vấn đề bảo mật mà Skipfish tập trung vào là các vấn đề của trang web và
ứng dụng web trên internet và các giao diện không an tồn của chúng. Như đã nói
trước đó Skipfish cho phép nhà phát triển quét ứng dụng cho các lỗ hổng. Một lỗ hổng
bảo mật là bất kỳ tình huống hoặc điều kiện nào gia tang mối đe dọa do đó làm tăng
rủi ro, xác suất điều gì đó có thể xảy ra. Điều quan trọng của công cụ này là các nhà
phát triển không phải đợi và xem liệu ứng dụng của họ có dễ bị tấn cơng khơng ngay
lập tức. “Một khi chúng tôi biết điểm yếu của mình, họ sẽ khơng làm chúng tơi nữa
gây hại” - một trích dẫn của George Christoph Lichtenberg. Điều đó có thể khẳng định
rằng Skipfish có thể cho phép chúng ta tìm ra điểm yếu trong ứng dụng của mình và
thực hiện các biện pháp bảo vệ cần thiết để giảm thiểu nguy cơ các rủi ro có thể gặp
pải một cách sớm và hiệu quả nhất.
Hình 1.2: Báo cáo của Skipfish về việc quét các lỗ hổng bảo mật của một trang
web
Một số công cụ mã nguồn mở và thương mại nổi tiếng hiện nay có chức năng
tương tự Skipfish có sẵn ví dụ: Acunetix, Nikto, Websecurify, Netsparker, w3af,
Arachni, … rất quen thuộc đối với những người làm trong ngành an ninh an tồn
thơng tin và được sử dụng phổ biến vì tính dễ sử dụng của chúng với các giao diện
GUI và còn cả việc các công cụ này được cập nhật thường xuyên tính tới thời điểm
hiện tại. Chính vì thế khó có thể so sánh với các cơng cụ này vì đơn giản Skipfish
khơng hướng tới mục đích thương mại, mà chỉ đơn giản là nhắm về vấn đề nghiên cứu
nhiều hơn và phiên bản sửa đổi gần đây nhất cũng đã trôi qua gần một thập kỷ. Chúng
ta biết rằng trong thời đại công nghệ hiện nay, mỗi ngày trôi qua đã có những sự thay
đổi nhất định nên các cơng cụ ngày nay có khả năng rà quét cao hơn rất nhiều.
Hình 1.3: Bảng so sánh giữa hai cơng cụ Skipfish và Acunetix
Hình 1.4: Bảng so sánh giữa hai cơng cụ Skipfish và Nikto
Từ các bảng so sánh Skipfish với các công cụ rà quét lỗ hổng hiện nay thì ta sẽ
thấy rằng khả năng giám sát, tìm kiếm các vấn đề về bảo mật ứng dụng web, các công
cụ mới đều có sự nổi bật hơn.
Tuy nhiên nếu để so sánh Skipfish với các công cụ rà quét khác trong cùng thời
điểm đó như Grabber, Vega, … thì kết quả mà công cụ này đem lại là cực kỳ ấn tượng
và đương nhiên là nằm trong top đầu các công cụ rà quét đáng để sử dụng.
Hình 1.5: Bảng so sánh đưa ra các tính năng vượt trội của Skipfish so với Grabber
Mỗi cơng cụ khác nhau lại có cho mình những ưu điểm và các đặc trưng khác
nhau mà có thể các công cụ khác không làm được hoặc không được tích hợp để suy
cho cùng cũng cố gắng hướng đến một mục đích chung là giải quyết một số vấn đề
phổ biến liên quan đến an toàn bảo mật cho ứng dụng web.
Một số các tính năng cũng như ưu điểm nổi bật của công cụ Skipfish:
+ Hiệu suất cao: Hơn 500 yêu cầu mỗi giây đối với các mục tiêu Internet đáp
ứng, hơn 2000 yêu cầu mỗi giây trên mạng LAN/MAN và hơn 7000 yêu cầu đối với
các phiên bản cục bộ đã được quan sát, với dấu chân CPU, mạng và bộ nhớ rất khiêm
tốn. Điều này có thể xuất phát từ:
• Ghép kênh đơn luồng, I/O mạng hồn tồn khơng đồng bộ và mơ
hình xử lý dữ liệu giúp loại bỏ sự thiếu hiệu quả của quản lý bộ nhớ,
lập lịch và IPC có trong một số máy khách đa luồng.
• Các tính năng HTTP/1.1 nâng cao như yêu cầu phạm vi, nén nội
dung và duy trì kết nối, cũng như giới hạn kích thước phản hồi bắt
buộc, để kiểm sốt chi phí cấp mạng.
• Bộ nhớ đệm phản hồi thơng minh và phỏng đốn hành vi máy chủ
nâng cao được sử dụng để giảm thiểu lưu lượng truy cập khơng cần
thiết.
• Triển khai C thuần túy theo định hướng hiệu suất, bao gồm một ngăn
xếp HTTP tùy chỉnh.
+ Dễ sử dụng: Skipfish hỗ trợ trên nhiều khuôn khổ web khác nhau, thậm chí
cả các trang web cơng nghệ hỗn hợp, với khả năng nghiên cứu tự động, tạo danh sách
từ nhanh chóng và tự động hồn thành biểu mẫu. Cơng cụ này có tính thích nghi cao
và đáng tin cậy tích hợp rất nhiều các tính năng khác nhau:
• Nhận dạng theo kinh nghiệm của các lược đồ xử lý tham số dựa trên
đường dẫn và truy vấn không rõ rang.
• Xử lý khéo léo các trang web đa khn khổ trong đó các đường dẫn
nhất định tn theo ngữ nghĩa hoàn toàn khác hoặc tuân theo các quy
tắc lọc khác nhau.
• Xây dựng danh sách từ tự động dựa trên phân tích nội dung trang web.
• Tính năng quét xác suất để cho phép đánh giá định kỳ, có giới hạn
thời gian đối với các trang web phức tạp tùy ý.
+ Việc kiểm tra bảo mật được thiết kế tốt: Skipfish được kiểm định đạt chất
lượng tương đối cao, ít dương tính giả, kiểm tra bảo mật khác biệt, có khả năng phát
hiện một loạt các lỗ hổng tinh vi, bao gồm cả vectơ tiêm mù. Công cụ này nhằm cung
cấp kết quả các chính xác và có ý nghĩa:
• Từ điển thủ cơng cung cấp phạm vi bảo hiểm tuyệt vời và cho phép
$keyword, $extension kiểm tra kỹ lưỡng trong một khung thời gian
hợp lý.
• Q trình thăm dò các khác biệt sử dụng ba bước triển khai được ưu
tiên hơn để kiểm tra các chữ ký và phát hiện các lỗ hổng.
• Logic kiểu Ratproxy được sử dụng để phát hiện các vấn đề bảo mật
tinh vi: giả mạo yêu cầu trên nhiều trang web, bao gồm tập lệnh trên
nhiều trang, nội dung hỗn hợp, vấn đề MIME - và bộ mã ký tự không
khớp, chỉ thị bộ nhớ đệm khơng chính xác, v.v.
• Kiểm tra bảo mật theo gói được thiết kế để xử lý các tình huống
phức tạp: XSS được lưu trữ (đường dẫn, tham số, tiêu đề), chèn SQL
hoặc XML mù hoặc chèn trình bao mù.
• Báo cáo sau q trình xử lý làm giảm đáng kể nhiễu do bất kỳ lỗi xác
thực sai nào còn lại hoặc các quảng cáo với nội dung không phù hợp
của máy chủ bằng cách xác định các mẫu lặp lại.
Với những tính năng nổi trội như vậy, cơng cụ Skipfish có thể giúp cho những
người làm an tồn thơng tin có thể phát hiện ra các điểm yếu, lỗ hổng một cách dễ
dàng hơn. Nhưng cũng khơng vì thế mà nó có thể giải quyết được tất cả các vấn đề
khác nhau. Nó cũng tồn tại một số các thiếu xót cũng như tích hợp thiếu một số chức
năng ưu việt khác mà các công cụ khác sở hữu. Chính vì vậy tùy thuộc vào mục đích
và quy mơ của mỗi tổ chức, chúng ta có thể lựa chọn một cơng cụ với các tính năng
phù hợp để có thể tiết kiệm thời gian, chi phí, cơng sức trong khâu rà quét. Nhưng nhớ
rẳng, nếu chúng ta cần sử dụng một cơng cụ với nhiều tính năng và rà qt một cách tỉ
mỉ và chính xác, thì hãy nhớ rằng Skipfish luôn là một lựa chọn đáng tin cậy.
1.2. Hướng dẫn cài đặt và sử dụng công cụ Skipfish
1.2.1. Hướng dẫn cài đặt công cụ Skipfish
Skipfish là một công cụ đã phổ biến từ rất lâu và rất dễ sử dụng. Nó được phát
hành phiên bản đầu tiên vào ngày 19 tháng 3 năm 2010 với tên là Skipfish, version
1.00 beta. Trải qua các giai đoạn xây dựng và phát triển thì đến nay nó đã cho ra mắt
phiên bản mới nhất có tên là Skipfish, version 2.10 beta vào tháng 4 năm 2012. Công
cụ này được viết bằng mở nguồn mở với ngơn ngữ lập trình C nên có thể được tích
hợp và cài đặt rất dễ dàng trên các nền tảng hệ điều hành khác nhau như OSX, Linux
hay Window.
Hình 1.6: Các phiên bản khác nhau của Skipfish trên trang chủ
Đối với các nền tảng hệ điều hành khác nhau thì điều đầu tiên khi muốn cài đặt
cơng cụ Skipfish là chúng ta sẽ phải truy cập vào trang chủ của Skipfish và chọn vào
mục Downloads ( để tải về
phiên bản mong muốn cho mình. Có rất nhiều các phiên bản khác nhau thích hợp cho
từng hệ điều hành được chú thích màu xanh lá cây tương đối rõ ràng để người dùng có
thể lựa chọn.
Sau khi đã tải xuống về máy tính của mình, nó sẽ được lưu dưới dạng nén. Và
với mỗi hệ điều hành khác nhau sẽ thao tác hơi khác nhau một chút để hoàn tất q
trình giải nén và sử dụng cơng cụ. Dưới đây là hướng dẫn tiếp q trình cài đặt cơng
cụ cho hai hệ điều hành phổ biến là Window và Linux.
* Đối với hệ điều hành Windows
Vì cơng cụ khơng phải là một ứng dụng Windows "thực", nên khi giải nén bản
Skipfish đã tải xuống trước đó, thì chúng ta sẽ khơng thể nhìn thấy có bất kỳ cửa sổ
tệp nào có thể thực thi (chẳng hạn như tệp .exe hoặc .msi) như các ứng dụng thông
thường cả. Như vậy để chạy được cơng cụ Skipfish này thì chúng ta sẽ phải cần sử
dụng cơng cụ Cygwin ( và sau đó thao tác trên đó và sử
dụng tương tự như một ứng dụng Linux.
Bước 1: Tải xuống và tiến hành cài đặt phần mềm Cygwin trên trang chủ
với các phiên bản tương thích cho máy tính Windows 32 bit
hoặc 64 bit. Trên đó có hướng dẫn cài đặt rất chi tiết về phần mềm này hoặc có thể
truy cập vào đường dẫn sau để xem chi tiết cài đặt trên hệ điều hành Windows 10
( />Bước 2: Thực hiện tiêu chuẩn các bước của Trình hướng dẫn cài đặt cơng cụ
Cygwin cho đến khi màn hình 'Thiết lập Cygwin - Packages'. Chọn các gói bổ sung
sau và cài đặt sau. phiên bản 'devel' nếu có:
•
•
•
•
•
•
•
•
All -> Base -> zlib
All -> Devel -> openssl-devel
All -> Devel -> libiconv
All -> Devel -> make
All -> Devel -> gcc
All -> Devel -> pcre
All -> Libs -> libiconv2
All -> Libs -> libidn
Bước 3: Bật Terminal của Cygwin sẽ xuất hiện giao diện khá giống với Linux
và sẽ thực hiện việc cài đặt Skipfish sử dụng các câu lệnh sau để tiến hành giải nén tệp
tin Skipfish đã tải về từ ban đầu và tiến hành cài đặt từ mã nguồn bằng lệnh make:
• $ tar -xf /path to/ skipfish-2.10b.tgz
• make
make install
Như vậy, q trình cài đặt đã hồn tất và ta có thể sử dụng cơng cụ Skipfish
trên Cygwin tại hệ điều hành Windows bằng giao diện dòng lệnh.
* Đối với hệ điều hành Linux
Hệ điều hành nhân Linux được phân ra thành nhiều phiên bản hệ điều hành
khác nhau như Ubuntu, Kali Linux, Fedora RedHat, CenOS, Linux Mint, … Dưới đây
là phần hướng dẫn cài đặt công cụ Skipfish cho hai nền tảng phổ biến nhất là Ubuntu
và Kali Linux.
+ Hệ điều hành Ubuntu: Ubuntu là một hệ điều hành nhân Linux có lẽ là phổ
biến nhất với đa số người dùng hiện nay vì giao diện đẹp và khả năng tương tác tuyệt
vời. Đương nhiên là cơng cụ Skipfish thì khơng được tích hợp sẵn ở trong này rồi mà
chúng ta phải thực hiện cài đặt nó. Q trình cài đặt cũng cực kỳ đơn giản với các
bước như sau:
Bước 1: Nếu các bạn chưa tải tập tin nén trên trang chủ của Skipfish như ở
phần đầu đã nói thì khơng sao cả, hãy bật Terminal của Ubuntu lên và thao tác lệnh
sau đây để tiến hành tải về tập tin nén của công cụ này:
wget />Bước 2: Sau khi tải về được tập tin nén của phiên bản Skipfish, chúng ta sẽ tiến
hành giải nén nó bằng lệnh: tar zxvf skipfish-2.10b.tgz.
Bước 3: Tiếp tục tiến hành tải về thư viện libidn-dev phiên bản 11. Đây là một
yêu cầu bắt buộc để quá trình cài đặt được thành cơng vì nó có thể mã hóa và giải mã
các tên miền được quốc tế hóa, sử dụng câu lệnh sau: sudo apt-get install libidn11dev.
Bước 4: Chuyển hướng tới thư mục skipfish và tiến hành cài đặt công cụ bằng
các câu lệnh sau:
• cd skipfish
• make
• make install
• cp dictionaries/default.wl skipfish.wl
Bước 5: Q trình cài đặt hồn tất, bây giờ chúng ta có thể sử dụng cơng cụ
Skipfish bằng các thao tác trên dịng lệnh ví dụ như:
./skipfish -o output-folder
+ Hệ điều hành Kali Linux: với các phiên bản mới nhất hiện nay thì cơng cụ
Skipfish đã được tích hợp sẵn ở trong đó nên chúng ta không cần phải mất thời gian
cài
đặt nữa mà có thể sử dụng trực tiếp cơng cụ bằng giao diện dịng lệnh trên Terminal.
Có hai cách để mở công cụ Skipfish trên Kali Linux như sau:
Cách 1: Bật cửa sổ Terminal lên và gõ vào đó câu lệnh skipfish -h
Hình 1.7: Cách khởi động cơng cụ Skipfish bằng câu lệnh trên Kali Linux
Cách 2: Nếu không muốn sử dụng câu lệnh trên Terminal, chúng ta có thể bật
công cụ Skipfish như sau: Chọn Applications -> 03 - Web Application Analysis ->
skipfish. Cụ thể như hình dưới đây:
Hình 1.8: Cách khởi động cơng cụ Skipfish đã được tích hợp sẵn trên Kali Linux
Ở phía trên chính là hướng dẫn cài đặt chi tiết công cụ Skipfish trên các nền
tảng hệ điều hành khác nhau. Tùy thuộc vào mỗi người dùng và mục đích sử dụng mà
họ có thể chọn cho mình việc cài đặt và thực hiện trên môi trường mà họ mong muốn
và thuận tiện nhất. Cịn trong bài báo cáo này thì sẽ chủ yếu sử dụng công cụ Skipfish
chạy trên hệ điều hành Kali Linux vì nó đã được tích hợp sẵn với phiên bản mới nhất.
Và thuận tiện cho quá trình kết hợp các công cụ và các phương thức tấn công khác
nhau để thông qua việc rà quét các lỗ hổng bảo mật từ cơng cụ Skipfish, có thể thực
hành vá các lỗ hổng đó một cách nhanh chóng.
1.2.2. Hướng dẫn sử dụng công cụ Skipfish
Để sử dụng Skipfish một cách thành thạo và hiệu quả nhất thì đầu tiên chúng ta
sẽ xem xét các tính năng, cũng như các tham số của công cụ này bằng cách khởi động
Terminal của Kali Linux và truyền vào câu lệnh skipfish -h. Lúc này một bảng danh
sách các tính năng và tham số truyền vào dịng lệnh của cơng cụ sẽ hiện ra một cách
rất
rõ ràng và chi tiết. Sau đây, chúng ta sẽ đi tìm hiểu những điều này để việc sử dụng
cơng cụ trở nên linh hoạt và hiệu quả trong bất cứ tình huống cụ thể nào.
Hình 1.9: Các tính năng và tham số trong bộ cơng cụ Skipfish phần 1
Hình 1.10: Các tính năng và tham số trong bộ cơng cụ Skipfish phần 2
+ Authentication and access options: Đầu tiên ta sẽ tìm hiểu về các tùy chọn
trong xác thực và truy cập. Trong tùy chọn này có các tham số được truyền vào dịng
lệnh với các ý nghĩa như sau:
Hình 1.11: Các tham số trong tùy chọn xác thực và truy cập
• -A user:pass - đối với các trang web yêu cầu xác thực HTTP cơ bản,
có thể sử dụng cờ này để chỉ định thơng tin đăng nhập của mình.
• -F host=IP – khi sử dụng cờ này, ta có thể đặt giá trị tiêu đề 'host' để
xác định ánh xạ tùy chỉnh giữa máy chủ và IP (bỏ qua trình phân
giải). Tính năng này đặc biệt hữu ích cho các dịch vụ chưa được khởi
chạy hoặc các dịch vụ kế thừa khơng có các mục nhập DNS cần
thiết.
• -C name=val - cờ này có thể được sử dụng để thêm cookie vào các
yêu cầu HTTP. Điều này đặc biệt hữu ích để thực hiện quét xác thực
bằng cách cung cấp cookie phiên. Khi làm như vậy, hãy nhớ rằng các
URL như /logout (đăng xuất) có thể phá hủy phiên làm việc. Ta có
thể chống lại điều này theo hai cách: bằng cách sử dụng tùy chọn -N,
tùy chọn này khiến máy quét từ chối các nỗ lực thiết lập hoặc xóa
cookie hoặc bằng cách sử dụng tùy chọn -X để loại trừ URL đăng
xuất.
• -H name=val - khi nói đến việc tùy chỉnh các yêu cầu HTTP, ta cũng
có thể sử dụng tùy chọn -H để chèn bất kỳ tiêu đề bổ sung, không
chuẩn nào. Cờ này cũng cho phép ghi đè các tiêu đề mặc định.
• -b (i|f|p) - cờ này cho phép tác nhân người dùng được chỉ định trong
đó 'i' là viết tắt của Internet Explorer, 'f' cho Firefox và 'p' cho
iPhone. Sử dụng cờ này được khuyến nghị trong trường hợp trang
web đích hiển thị các hành vi khác nhau dựa trên tác nhân người
dùng (ví dụ: một số trang web sử dụng các mẫu khác nhau cho điện
thoại di động và máy khách máy tính để bàn).
Với form authentication (biểu mẫu xác thực) sẽ gửi thông tin đăng nhập bằng
biểu mẫu đăng nhập nhất định. Máy chủ dự kiến sẽ trả lời bằng các cookie đã xác thực
sẽ khơng được sử dụng trong phần cịn lại của q trình qt. Một tính năng quan
trọng của biểu mẫu xác thực là Skipfish sẽ xác thực lại trong trường hợp máy chủ kết
thúc phiên làm việc.
Hình 1.12: Một dịng lệnh mẫu để đăng nhập bằng tính năng này
Với tùy chọn xác thực và truy cập, có thể rà qt xác thực bằng cơng cụ
Skipfish bằng ba phương pháp khác nhau:
• --auth-form - biểu mẫu đăng nhập để sử dụng với xác thực biểu
mẫu. Theo mặc định, Skipfish sẽ sử dụng URL hành động của biểu
mẫu để gửi thông tin đăng nhập. Nếu điều này bị thiếu hơn dữ liệu
đăng nhập được gửi đến URL của biểu mẫu. Trong trường hợp sai, ta
có thể đặt URL của trình xử lý biểu mẫu bằng --auth-form-target
<URL>.
Ví dụ: auth-form = />• --auth-user và --auth-pass – tên người dùng và mật khẩu sẽ được sử
dụng trong quá trình xác thực biểu mẫu. Skipfish sẽ cố gắng phát
hiện trường biểu mẫu chính xác để sử dụng nhưng nếu nó khơng
thực hiện được (và báo lỗi), thì ta có thể chỉ định tên trường biểu
mẫu với --auth- user-field hoặc --auth-pass-field.
Ví dụ: auth-user = auth-pass = skipfish
• --auth-verify-url - URL này cho phép Skipfish xác minh xem xác
thực có thành cơng hay không. Điều này yêu cầu một URL nơi các
yêu cầu ẩn danh và xác thực được trả lời bằng một phản hồi khác.
Ví dụ: auth-verify-url = />Các yêu cầu này được hoạt động cụ thể như sau:
• Khi bắt đầu quét, biểu mẫu xác thực tại /login sẽ được tìm nạp bởi
Skipfish. Ta sẽ cố gắng hoàn thành các trường tên người dùng và mật
khẩu và thực hiện quá trình gửi biểu mẫu.
• Sau khi nhận được phản hồi của máy chủ, Skipfish sẽ tìm nạp URL
để xác minh hai lần: một lần với cookie phiên mới và một lần khơng
có bất kỳ cookie nào. Cả hai câu trả lời dự kiến sẽ khác nhau.
• Trong q trình qt, việc xác minh URL sẽ được sử dụng nhiều lần
để kiểm tra xem việc được xác thực có diễn ra hay khơng. Nếu tại
một thời điểm nào đó, phiên làm việc bị chấm dứt ở phía máy chủ,
thì Skipfish sẽ xác thực lại bằng cách sử dụng --auth-form (/login
như trong ví dụ ở trên).
Việc xác minh xem phiên làm việc có cịn hoạt động hay khơng u cầu một
URL trong đó một u cầu đã xác thực sẽ nhận được phản hồi khác với một yêu cầu
ẩn danh. Các URL điển hình cho điều này là các trang 'profile' hay ‘my account’.
+ Crawl scope options: tiếp theo sẽ là tùy chọn phạm vi thu thập thơng tin. Đây
là một tính năng cực kỳ quan trọng để giúp việc rà quét trở nên nhanh hơn, cụ thể hơn
tùy thuộc cho từng đối tượng khác nhau.
Hình 1.13: Các tham số cho tính năng tùy chọn phạm vi thu thập thơng tin
• - d max_depth - giới hạn độ sâu thu thập thông tin cho một số thư
mục con được chỉ định
• -c max_child - giới hạn số lượng con trên mỗi thư mục.
• -x max_desc - giới hạn tổng số các thư mục con mỗi nhánh cây thư
mục.
• -r r_limit - số lượng yêu cầu tối đa có thể được giới hạn với cờ này.
• -p crawl% - bằng cách chỉ định tỷ lệ phần trăm từ 1 đến 100%, có
thể u cầu trình thu thập thơng tin theo dõi ít hơn 100% tất cả các
liên kết và thử ít hơn 100% tất cả các mục từ điển. Điều này giới hạn
tính hồn chỉnh của q trình qt, nhưng khơng giống như hầu hết
các cài đặt khác, nó làm như vậy một cách cân bằng, khơng xác định.
Nó cực kỳ hữu ích khi bạn đang thiết lập các đánh giá có giới hạn
thời gian, nhưng định kỳ về cơ sở hạ tầng của bạn.
• -q hex - cờ này đặt hạt giống ngẫu nhiên ban đầu cho trình thu thập
thơng tin thành một giá trị được chỉ định. Điều này có thể được sử
dụng để tái tạo chính xác một lần qt trước đó để so sánh kết quả.
Tính ngẫu nhiên chủ yếu dựa vào chế độ -p, nhưng cũng ảnh hưởng
đến một vài quyết định quản lý quét khác.
• -I string - với cờ này, bạn có thể yêu cầu Skipfish chỉ thu thập dữ
liệu và kiểm tra các URL khớp với một chuỗi nhất định. Điều này có
thể giúp thu hẹp phạm vi quét bằng cách chỉ đưa vào danh sách trắng
các phần nhất định của trang web (ví dụ: -I /shop).
• -X string - tùy chọn -X có thể được sử dụng để loại trừ các tệp/thư
mục khỏi quá trình quét. Điều này rất hữu ích để tránh kết thúc phiên
•
•
•
•
•
•
(tức là bằng cách loại trừ việc đăng xuất) hoặc chỉ để tăng tốc quá
trình quét của bạn bằng cách loại trừ các thư mục nội dung tĩnh như
/icons/,
/doc/, /manuals/ và các vị trí thơng thường, tiêu chuẩn khác dọc theo
những dòng này.
-K string - cờ này cho phép bạn chỉ định tên tham số khơng bị mờ
(hữu ích cho các ứng dụng đặt ID phiên trong URL, để giảm thiểu
nhiễu).
-D domain - cho phép bạn chỉ định các máy chủ hoặc miền bổ sung
nằm trong phạm vi thử nghiệm. Theo mặc định, tất cả các máy chủ
xuất hiện trong URL dòng lệnh đều được thêm vào danh sách nhưng bạn có thể sử dụng -D để mở rộng các quy tắc này. Kết quả
của việc này là trình thu thập thông tin sẽ đi theo các liên kết và kiểm
tra các liên kết trỏ đến các máy chủ bổ sung này.
-B domain - trong một số trường hợp, bạn không muốn thực sự thu
thập dữ liệu tên miền của bên thứ ba, nhưng bạn tin tưởng chủ sở
hữu của tên miền đó đủ để khơng phải lo lắng về việc bao gồm nội
dung tên miền chéo từ vị trí đó. Để loại bỏ cảnh báo, bạn có thể sử
dụng tùy chọn -B.
-Z - không thu thập thông tin vào các trang/thư mục có lỗi 5XX.
-O - sử dụng cờ này sẽ khiến biểu mẫu bị bỏ qua trong quá trình qt.
-P - cờ này sẽ vơ hiệu hóa tính năng trích xuất liên kết và vơ hiệu
hóa hiệu quả việc thu thập thơng tin. Sử dụng -P hữu ích khi bạn
muốn kiểm tra một URL cụ thể hoặc khi bạn muốn cung cấp danh
sách URL được thu thập bằng trình thu thập thơng tin bên ngồi.
+ Reporting options: các lựa chọn báo cáo có thể giúp chúng ta có thể trích
xuất ra được các thơng tin trong khi q trình rà qt được hồn tất một cách hệ thống
và hiệu quả nhất tránh được sự trùng lặp, và các thơng tin khơng cần thiết. Ngồi ra
với các tham số tùy chọn khác nhau sẽ có thể cho chúng ta thêm một số nội dung khác
ví dụ như đưa ra log cảnh báo hay trích xuất thơng tin tất cả các URL, email từ quá
trình quét, …
Hình 1.14: Các tham số cho tính năng báo cáo
• -o dir - báo cáo sẽ được viết tới vị trí này. Thư mục là một trong hai
tùy chọn bắt buộc và không được tồn tại khi bắt đầu quét.
• -M - cho phép ghi nhật ký nội dung hỗn hợp. Điều này rất được khuyến
khích khi quét các trang web chỉ có SSL để phát hiện việc đưa nội
dung khơng an tồn vào thơng qua các liên kết khơng được bảo vệ
bằng SSL.
• -E - điều này sẽ gây ra lỗi bộ nhớ đệm nội dung bổ sung được báo cáo.
• -U - ghi lại tất cả các URL và địa chỉ email bên ngồi đã được nhìn
thấy trong q trình qt.
• -Q - bật tính năng này để loại bỏ hoàn toàn các nút trùng lặp trong
báo cáo.
• -u - điều này sẽ làm cho Skipfish ngăn chặn tất cả đầu ra bảng điều
khiển trong quá trình quét.
• -v - sử dụng cờ này để bật báo cáo thời gian chạy, ví dụ, các vấn đề
được phát hiện. Có thể được sử dụng nhiều lần để tăng tính chi tiết
và nên được sử dụng kết hợp với -u trừ khi bạn chạy Skipfish với
stderr được chuyển hướng đến một tệp.
+ Dictionary management options: Các tùy chọn trong việc quản lý từ điển.
Việc đảm bảo đã đọc các hướng dẫn được cung cấp trong cây thư mục của Skipfish
(có thể tìm trong File System/usr/share/skipfish/dictionary để chọn tệp từ điển phù
hợp và định cấu hình tệp đó một cách chính xác. Bước này có ảnh hưởng sâu sắc đến
chất lượng kết quả quét sau này.
Hình 1.15: Các tham số trong tùy chọn quản lý từ điển
• -W wordlist - chỉ định một tệp trống ban đầu cho bất kỳ từ khóa
trang web cụ thể mới học nào (sẽ hữu ích trong các đánh giá trong
tương lai). Bạn có thể sử dụng -W hoặc -W /dev/null nếu bạn không
muốn lưu trữ các từ khóa tự động học ở bất kỳ đâu. Thông thường,
bạn sẽ muốn sử dụng một trong các từ điển đóng gói (tức là
complete.wl) và có thể thêm một từ điển tùy chỉnh.
• -S wordlist - tải danh sách từ được chỉ định (chỉ đọc) để sử dụng
trong quá trình quét. Cờ này là tùy chọn nhưng bạn nên sử dụng từ
điển khi thực hiện quét hộp đen vì nó sẽ làm nổi bật các tệp và thư
mục ẩn.
• -L - trong quá trình quét, Skipfish sẽ cố gắng nghiên cứu và sử dụng
các từ khóa mới. Cờ này vơ hiệu hóa hành vi đó và sẽ được sử dụng
khi khơng mong muốn bất kỳ hình thức brute-force nào.
• -Y - cờ này sẽ vơ hiệu hóa tính năng đốn tiện ích mở rộng trong q
trình brute-force thư mục.
• -R age - việc sử dụng cờ này cho phép loại bỏ các từ cũ khỏi danh
sách từ. Nó nhằm mục đích giúp giữ sạch từ điển khi được sử dụng
trong q trình qt định kỳ.
• -T name=val - Skipfish cũng có cơ chế tự động hồn thành biểu mẫu
để tối đa hóa phạm vi quét. Các giá trị phải khơng độc hại, vì chúng
khơng dùng để thực hiện kiểm tra bảo mật - mà là để lấy logic xác
thực đầu vào trong quá khứ. Bạn có thể xác định các quy tắc bổ sung
hoặc ghi đè các quy tắc hiện có, với tùy chọn -T (-T
form_field_name
= field_value, ví dụ: -T login = test123 -T password = test321 - mặc
dù lưu ý rằng -C và -A là phương pháp ghi nhật ký tốt hơn nhiều ở
tính năng xác thực truy cập).
• -G max_guess - trong q trình qt, một bộ đệm tạm thời của các từ
khóa mới được phát hiện được duy trì. Kích thước của vùng đệm này
có thể được thay đổi với cờ này và làm như vậy sẽ ảnh hưởng đến
quá trình brute-force.
+ Performance settings: đây là tính năng cài đặt hiệu suất, việc cài đặt hiệu
suất mặc định sẽ ổn đối với hầu hết các máy chủ nhưng khi báo cáo cho biết có sự cố
kết nối, có thể điều chỉnh một số giá trị tại đây. Đối với các máy chủ không ổn định,
phạm vi quét có thể được cải thiện khi sử dụng các giá trị thấp cho các cờ tỷ lệ và kết
nối.
Hình 1.16: Các tham số trong tính năng cài đặt hiệu suất
• -g max_conn - các kết nối TCP đồng thời tối đa (tồn cầu) có thể
được đặt bằng cờ này.
• -m host_conn - các kết nối TCP đồng thời tối đa, trên mỗi IP mục
tiêu, có thể được đặt bằng cờ này.
• -f max_fail - kiểm sốt số lượng lỗi HTTP liên tiếp tối đa muốn thấy
trước khi hủy quá trình quét. Đối với các bản quét lớn, ta có thể
muốn đặt giá trị cao hơn ở đây.
• -t req_tmout - đặt tổng thời gian chờ yêu cầu, để tính đến các trang
web thực sự chậm hoặc thực sự nhanh.