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ài báo cáo:
Tìm hiểu cơng cụ WAFW00F
Giảng viên hướng dẫn:
TS. Đặng Minh Tuấn
Sinh viên thực hiện:
Đặng Đức Ngun
Mã sinh viên:
B18DCAT173
Nhóm mơn học:
02
Hà Nội – 2021
Mục lục
Mở đầu ............................................................................................................................. 1
Chương 1. Khái quát về Web Application FireWall........................................................ 2
1. Web Application Firewall là gì? .............................................................................. 2
2. Cách thức hoạt động ................................................................................................. 3
3. Phân biệt WAF và tường lửa.................................................................................... 4
4. Tầm quan trọng của tường lửa ứng dụng web ......................................................... 4
5. Các loại tường lửa ứng dụng Web ........................................................................... 5
6. Cách xác định WAF trong ứng dụng Web ............................................................... 6
Chương 2. Tìm hiểu cơng cụ WAFW00F ........................................................................ 8
1. Giới thiệu.................................................................................................................. 8
2. Lịch sử phát triển.................................................................................................... 14
3. Khả năng tương thích ............................................................................................. 17
4. Cài đặt cơng cụ WAFW00F ................................................................................... 17
5. Cách sử dụng .......................................................................................................... 18
Chương 3. Bài LAB ....................................................................................................... 20
Bài 1: Sử dụng công cụ WAFW00F kiểm tra website sử dụng WAF nào? .............. 20
Bài 2: Sử dụng proxy định tuyến các yêu cầu để xác định WAF .............................. 23
Chương 4. Đánh giá và so sánh...................................................................................... 26
1. Đánh giá ................................................................................................................. 26
2. So sánh ................................................................................................................... 26
Kết luận .......................................................................................................................... 28
Tài liệu tham khảo .......................................................................................................... 29
Danh sách các thuật ngữ tiếng Anh và viết tắt
Từ
viết tắt
DNS
HTTP
IP
Thuật ngữ tiếng Anh/Giải thích
Thuật ngữ tiếng Việt/Giải thích
Domain Name System
Hypertext Transfer Protocol
Internet Protocol
Hệ thống phân giải tên miền
Giao thức truyền tải siêu văn bản
Giao thức Internet
Hệ thống ngăn ngừa sự xâm nhập
mạng
Hệ thống phát hiện xâm nhập
IPS
Intrusion Prevention Systems
IDS
Intrusion Detection Systems
Payment Card Industry Data
Security Standard
Uniform Resource Locator
Web Application Firewall
PCI DSS
URl
WAF
An ninh thông tin tiêu chuẩn
Địa chỉ web
Tường lửa ứng dụng Web
Danh mục hình ảnh
Hình 1. 1 Mơ hình của một hệ thống Tường lửa ứng dụng Web ..................................... 2
Hình 1. 2 Mơ hình hoạt động WAF ................................................................................. 3
Hình 1. 3 Xác định WAF qua giá trị cookie .................................................................... 6
Hình 1. 4 Xác định WAF qua giá trị regex cookie .......................................................... 6
Hình 1. 5 Xác định WAF thơng qua HTTP Respone Code ............................................. 7
Hình 1. 6 HTTP Response Code của WebKnight Firewall ............................................. 7
Hình 2. 1 Cài đặt WAFW00F trên Kali Linux ............................................................... 18
Hình 2. 2 Cách sử dụng WAFW00F .............................................................................. 18
Hình 3. 1 Kiểm tra WAF 1 URL .................................................................................... 20
Hình 3. 2 Kiểm tra 1 WAF cụ thể .................................................................................. 21
Hình 3. 3 Kiểm tra chi tiết và các WAF phù hợp .......................................................... 21
Hình 3. 4 Kiểm tra WAF nhiều URL ............................................................................. 22
Hình 3. 5 Cài đặt TOR ................................................................................................... 23
Hình 3. 6 Cài đặt proxychains ........................................................................................ 23
Hình 3. 7 Config proxychains ........................................................................................ 24
Hình 3. 8 Thêm socks5 vào file config .......................................................................... 24
Hình 3. 9 Dùng proxy xác định WAF ............................................................................ 25
Hình 4. 1 Cơng cụ WhatWaf .......................................................................................... 26
Hình 4. 2 Công cụ identYwaf ........................................................................................ 27
Danh mục bảng biểu
Bảng 1 Danh sách WAF được hỗ trợ ............................................................................... 8
Bảng 2 Danh sách lựa chọn ............................................................................................ 19
Mở đầu
Tường lửa ứng dụng web là biện pháp kiểm soát bảo mật phổ biến được các doanh
nghiệp sử dụng để bảo vệ hệ thống web chống lại việc khai thác zero-day, nhiễm phần
mềm độc hại, mạo danh cũng như các mối đe dọa và lỗ hổng bảo mật đã biết và chưa
biết khác. Thông qua kiểm tra tùy chỉnh, WAF có thể phát hiện và ngăn chặn ngay lập
tức một số lỗi bảo mật ứng dụng web nguy hiểm nhất mà tường lửa mạng truyền thống
và các hệ thống phát hiện xâm nhập khác (IDSes) và hệ thống ngăn chặn xâm nhập
(IPSes) có thể khơng thực hiện được.
WAF đặc biệt hữu ích cho các cơng ty cung cấp sản phẩm hoặc dịch vụ qua
Internet như mua sắm thương mại điện tử, ngân hàng trực tuyến và các tương tác khác
giữa khách hàng hoặc đối tác kinh doanh.
Để tấn công 1 ứng dụng web, việc thăm dò xem ứng dụng web đó sử dụng loại
WAF nào là rất quan trọng. Từ đó hacker hay tester có thể vạch ra những hướng xâm
nhập vào hệ thống 1 cách rõ ràng. Và 1 trong những công cụ rất hiệu quả và hữu ích đó
là WAFW00F sẽ được giới thiệu trong bài báo cáo này.
1
Chương 1. Khái quát về Web Application FireWall
1. Web Application Firewall là gì?
WAF (Web Application Firewall) cịn gọi là tường lửa ứng dụng web. WAF là một
thiết bị proxy có thể xử lý giao thức HTTP nhằm bảo vệ ứng dụng web. WAF kiểm tra
lượng truy cập và sẽ lọc ra các yêu cầu có mối đe dọa xâm hại đến website trước khi
đến ứng dụng web.
Hình 1. 1 Mơ hình của một hệ thống Tường lửa ứng dụng Web
Một WAF có khả năng thực thi các chính sách bảo mật dựa trên các dấu hiệu tấn
công, các giao thức tiêu chuẩn và các lưu lượng truy cập ứng dụng web bất thường,
chống lại việc khai thác zero-day, nhiễm phần mềm độc hại, mạo danh cũng như các
mối đe dọa và lỗ hổng bảo mật đã biết và chưa biết khác. Thơng qua kiểm tra tùy
chỉnh, WAF có thể phát hiện và ngăn chặn ngay lập tức một số lỗi bảo mật ứng dụng
web nguy hiểm nhất mà tường lửa mạng truyền thống và các hệ thống phát hiện xâm
nhập khác (IDSes) và hệ thống ngăn chặn xâm nhập (IPSes) có thể khơng thực hiện
được.
2
2. Cách thức hoạt động
WAF phân tích các yêu cầu Hypertext Transfer Protocol (HTTP) và áp dụng một
bộ quy tắc xác định phần nào của cuộc hội thoại đó là lành tính và phần nào là độc hại.
Các phần chính của hội thoại HTTP mà WAF phân tích là các yêu cầu GET và POST.
Yêu cầu GET được sử dụng để truy xuất dữ liệu từ máy chủ và yêu cầu POST được sử
dụng để gửi dữ liệu đến máy chủ để thay đổi trạng thái của nó.
Hình 1. 2 Mơ hình hoạt động WAF
WAF có thể thực hiện hai cách tiếp cận để phân tích và lọc nội dung có trong các
yêu cầu HTTP này hoặc kết hợp cả hai:
•
Whitelisting (danh sách trắng): Cách tiếp cận danh sách trắng có nghĩa là
WAF sẽ từ chối tất cả các yêu cầu theo mặc định và chỉ cho phép các yêu cầu
được biết là đáng tin cậy. Nó cung cấp một danh sách các địa chỉ IP được biết là
an toàn. Danh sách trắng ít tốn tài nguyên hơn so với danh sách đen. Nhược
điểm của cách tiếp cận danh sách trắng là nó có thể vơ tình chặn lưu lượng truy
cập lành tính. Mặc dù nó tạo ra một mạng lưới rộng và có thể hiệu quả, nhưng
nó cũng có thể khơng chính xác.
3
•
Blacklisting (danh sách đen): Phương pháp tiếp cận danh sách đen mặc định
cho phép các gói tin đi qua và sử dụng chữ ký đặt trước để chặn lưu lượng web
độc hại và bảo vệ các lỗ hổng của các trang web hoặc ứng dụng web. Nó là một
danh sách các quy tắc chỉ ra các gói độc hại. Danh sách đen thích hợp hơn cho
các trang web và ứng dụng web cơng cộng vì chúng nhận được nhiều lưu lượng
truy cập từ các địa chỉ IP không quen thuộc mà khơng được biết là độc hại hoặc
lành tính. Nhược điểm của cách tiếp cận danh sách đen là tốn nhiều tài ngun
hơn; nó u cầu nhiều thơng tin hơn để lọc các gói dựa trên các đặc điểm cụ thể,
trái ngược với việc mặc định là địa chỉ IP đáng tin cậy.
•
Hybrid security (Kết hợp): Mơ hình bảo mật kết hợp sử dụng các yếu tố của
cả danh sách đen và danh sách trắng.
Bất kể mơ hình bảo mật mà WAF sử dụng là gì, nó cuối cùng vẫn hoạt động để
phân tích các tương tác HTTP và giảm hoặc lý tưởng nhất là loại bỏ lưu lượng độc hại
trước khi đến máy chủ để xử lý.
3. Phân biệt WAF và tường lửa
Tường lửa là một thuật ngữ rộng cho firmware bảo vệ mạng máy tính bằng cách
lọc các gói dữ liệu đến. Trong định nghĩa rộng đó, có một số danh mục được phân biệt
theo loại bảo vệ mà chúng cung cấp và cách thức chúng cung cấp. Một số chỉ định đó
bao gồm lọc gói, kiểm tra trạng thái, proxy và NGFW.
WAF là một loại tường lửa khác, được phân biệt bằng cách nó lọc các gói dữ liệu
cụ thể. WAF là duy nhất vì nó chỉ tập trung vào những kẻ tấn công dựa trên web ở lớp
ứng dụng, trong khi các loại khác – chẳng hạn như lọc gói và kiểm tra trạng thái – có
thể khơng thể chống lại các cuộc tấn cơng này. WAF giống như một tường lửa proxy
nhưng tập trung cụ thể vào logic ứng dụng Lớp 7.
4. Tầm quan trọng của tường lửa ứng dụng web
WAF quan trọng đối với số lượng ngày càng tăng các doanh nghiệp cung cấp sản
phẩm qua internet – bao gồm các ngân hàng trực tuyến, nhà cung cấp nền tảng truyền
thông xã hội và nhà phát triển ứng dụng di động – vì nó giúp ngăn chặn rò rỉ dữ liệu.
Nhiều dữ liệu nhạy cảm, chẳng hạn như dữ liệu thẻ tín dụng và hồ sơ khách hàng, được
lưu trữ trong cơ sở dữ liệu back-end có thể truy cập được thơng qua các ứng dụng web.
Những kẻ tấn công thường nhắm mục tiêu vào các ứng dụng này để giành quyền truy
cập vào dữ liệu liên quan.
Ví dụ: các ngân hàng có thể sử dụng WAF để giúp họ đáp ứng Tiêu chuẩn bảo mật
dữ liệu ngành thẻ thanh toán (PCI DSS), là một bộ chính sách để đảm bảo rằng dữ liệu
của chủ thẻ (CHD) được bảo vệ. Cài đặt tường lửa là một trong 12 yêu cầu tuân thủ
PCI DSS. Việc tuân thủ này áp dụng cho bất kỳ doanh nghiệp nào xử lý CHD. Vì
4
nhiều công ty mới hơn sử dụng các ứng dụng di động và Internet vạn vật (IoT) ngày
càng phát triển, ngày càng có nhiều giao dịch diễn ra ở lớp ứng dụng bằng cách sử
dụng web. Vì lý do này, WAF là một phần quan trọng trong mơ hình bảo mật của một
doanh nghiệp hiện đại.
WAF rất quan trọng, và nó hiệu quả nhất khi kết hợp với các thành phần bảo mật
khác, bao gồm IPS, IDS và tường lửa cổ điển hoặc thế hệ tiếp theo (NGFW). Một mơ
hình bảo mật doanh nghiệp toàn diện lý tưởng sẽ đặt WAF bên cạnh các loại tường lửa
khác, chẳng hạn như NGFW và các thành phần bảo mật, chẳng hạn như IPS và IDS,
thường được bao gồm trong NGFW.
5. Các loại tường lửa ứng dụng Web
-
-
-
Network-based WAFs (WAF dựa trên mạng): Thường dựa trên phần cứng và
có thể giảm độ trễ vì chúng được cài đặt cục bộ tại cơ sở thông qua một thiết bị
chuyên dụng, càng gần ứng dụng càng tốt. Hầu hết các nhà cung cấp WAF dựa
trên mạng lớn đều cho phép sao chép các quy tắc và cài đặt trên nhiều thiết bị,
do đó có thể triển khai, cấu hình và quản lý quy mơ lớn. Hạn chế lớn nhất đối
với loại sản phẩm WAF này là chi phí – có chi phí vốn trả trước, cũng như chi
phí vận hành liên tục để bảo trì.
Host-based WAFs (WAF dựa trên máy chủ): Có thể được tích hợp hồn tồn
vào mã ứng dụng. Các lợi ích của việc triển khai WAF dựa trên máy chủ bao
gồm chi phí thấp hơn và các tùy chọn tùy chỉnh tăng lên. WAF dựa trên máy
chủ có thể là một thách thức để quản lý vì chúng yêu cầu thư viện ứng dụng và
phụ thuộc vào tài nguyên máy chủ cục bộ để chạy hiệu quả. Do đó, có thể cần
thêm nguồn nhân viên, bao gồm cả nguồn lực của lập trình viên, nhà phân tích
hệ thống và DevOps/DevSecOps, có thể được yêu cầu.
Cloud-hosted WAFs (WAF được lưu trữ trên đám mây): Cung cấp giải
pháp chi phí thấp cho các tổ chức muốn có sản phẩm chìa khóa trao tay u cầu
tài nguyên tối thiểu để triển khai và quản lý. Cloud WAF dễ triển khai, có sẵn
trên cơ sở đăng ký và thường chỉ yêu cầu hệ thống tên miền (DNS) đơn giản
hoặc thay đổi proxy để chuyển hướng lưu lượng ứng dụng. Mặc dù có thể khó
khăn khi đặt trách nhiệm lọc lưu lượng ứng dụng web của tổ chức với nhà cung
cấp bên thứ ba, nhưng chiến lược này cho phép các ứng dụng được bảo vệ trên
nhiều vị trí lưu trữ và sử dụng các chính sách tương tự để bảo vệ khỏi các cuộc
tấn công lớp ứng dụng. Ngồi ra, các bên thứ ba này có thơng tin tình báo về
mối đe dọa mới nhất và có thể giúp xác định và chặn các mối đe dọa bảo mật
ứng dụng mới nhất.
5
6. Cách xác định WAF trong ứng dụng Web
Trong quá trình thử nghiệm xâm nhập, việc thu thập càng nhiều thơng tin về hệ
thống mục tiêu sẽ giúp ta có nhiều phương án hơn trong việc thực thi tấn công. Và việc
xác định WAF cũng không phải là một ngoại lệ. Có được thơng tin về WAF được rên
khai trên ứng dụng wev sẽ giúp tiết kiệm thời gian trong q trình thử nghiệm thâm
nhập. Với thơng tin có được về hệ thống WAF, ta có thể tìm hiểu được cách thức và
ngun tắc hoạt động của nó thay vì phải thử nghiệm nhiều lần.
Sau đây là một vài cách để xác định loại WAF trên ứng dụng web:
•
Giá trị cookie: Một vài WAF sẽ thêm vào cookie một giá trị nhất định.
Citrix Netscalar: Có giá trị của cookie trong HTTP Response sẽ là ns_af,
citrix_ns_id
Hình 1. 3 Xác định WAF qua giá trị cookie
F5 Big IP ASM: Có giá trị của cookie trong HTTP Response bắt đầu là ký tự TS
theo sau đó là chuỗi các ký tự ngẫu nhiên tuân thủ theo regular expression ^TS[azA-Z0-9]{3,6}
Hình 1. 4 Xác định WAF qua giá trị regex cookie
6
•
HTTP Response Codes: Một vài loại WAF, ta có thể xác định thông qua
HTTP Response Codes như 403, 406, 419, 500, 501 ...
ModSecurity: Khi ta gửi một request khác thường tới web server, ta sẽ nhận
được HTTP Response Code 406 Not acceptable
Hình 1. 5 Xác định WAF thơng qua HTTP Respone Code
WebKnight Firewall: Khi ta gửi một request khác thường tới web server, ta sẽ
nhận được HTTP Response 999 No Hacking
Hình 1. 6 HTTP Response Code của WebKnight Firewall
Để tự động xác định WAF được triển khai trên ứng dụng web, ta có thể sử dụng 1
số cơng cụ như: WAFW00F, identYwaf, identYwaf,.... Các cơng cụ này có khả năng
xác định nhiều loại WAF khác nhau. Ngoài xác định giá trị cookie và http response,
các cơng cụ này cịn sử dụng một vài kỹ thuật khác để xác định WAF như Drop (Sử
dụng gói tin như FIN hoặc RST và tìm kếm câu trả lời nhận được), Sever cloaking
(thay đổi URL và các phương pháp khác nhau như HTTP respond re-writing),
Pre-Built Rules.
7
Chương 2. Tìm hiểu cơng cụ WAFW00F
1. Giới thiệu
WAFW00F là một cơng cụ do Sandro Gauci phát triển, nó cho phép người sử
dụng nhận diện và fingerprint tường lửa ứng dụng Web nào đang bảo vệ website được
quét.
Để làm được điều đó, WAFW00F thực hiện như sau:
•
Gửi một u cầu HTTP bình thường và phân tích phản hồi. Sau đó xác định xem
website đang được bảo vệ bởi WAF nào.
•
Nếu điều đó khơng thành cơng, nó sẽ gửi một số yêu cầu HTTP (có thể độc hại)
và sử dụng logic đơn giản để suy ra nó là WAF nào.
•
Nếu điều đó cũng khơng thành cơng, nó sẽ phân tích các phản hồi được trả về
trước đó và sử dụng một thuật toán đơn giản khác để đoán xem liệu WAF hoặc
giải pháp bảo mật có đang tích cực ứng phó với các cuộc tấn cơng của chúng tơi
hay khơng.
WAFW00F có thế phát hiện được 152 loại tường lửa sau:
Bảng 1 Danh sách WAF được hỗ trợ
Tên WAF
Nhà cung cấp
ACE XML Gateway
Cisco
aeSecure
aeSecure
AireeCDN
Airee
Airlock
Phion/Ergon
Alert Logic
Alert Logic
AliYunDun
Alibaba Cloud Computing
Anquanbao
Anquanbao
AnYu
AnYu Technologies
Approach
Approach
AppWall
Radware
Armor Defense
Armor
8
ArvanCloud
ArvanCloud
ASP.NET Generic
Microsoft
ASPA Firewall
ASPA Engineering Co.
Astra
Czar Securities
AWS Elastic Load Balancer
Amazon
AzionCDN
AzionCDN
Azure Front Door
Microsoft
Barikode
Ethic Ninja
Barracuda
Barracuda Networks
Bekchy
Faydata Technologies Inc.
Beluga CDN
Beluga
BIG-IP Local Traffic Manager
F5 Networks
BinarySec
BinarySec
BitNinja
BitNinja
BlockDoS
BlockDoS
Bluedon
Bluedon IST
BulletProof Security Pro
AITpro Security
CacheWall
Varnish
CacheFly CDN
CacheFly
Comodo cWatch
Comodo CyberSecurity
CdnNS Application Gateway
CdnNs/WdidcNet
ChinaCache Load Balancer
ChinaCache
Chuang Yu Shield
Yunaq
Cloudbric
Penta Security
Cloudflare
Cloudflare Inc.
Cloudfloor
Cloudfloor DNS
9
Cloudfront
Amazon
CrawlProtect
Jean-Denis Brun
DataPower
IBM
DenyALL
Rohde & Schwarz CyberSecurity
Distil
Distil Networks
DOSarrest
DOSarrest Internet Security
DotDefender
Applicure Technologies
DynamicWeb Injection Check
DynamicWeb
Edgecast
Verizon Digital Media
Eisoo Cloud Firewall
Eisoo
Expression Engine
EllisLab
BIG-IP AppSec Manager
F5 Networks
BIG-IP AP Manager
F5 Networks
Fastly
Fastly CDN
FirePass
F5 Networks
FortiWeb
Fortinet
GoDaddy Website Protection
GoDaddy
Greywizard
Grey Wizard
Huawei Cloud Firewall
Huawei
HyperGuard
Art of Defense
Imunify360
CloudLinux
Incapsula
Imperva Inc.
IndusGuard
Indusface
Instart DX
Instart Logic
ISA Server
Microsoft
Janusec Application Gateway
Janusec
10
Jiasule
Jiasule
Kona SiteDefender
Akamai
KS-WAF
KnownSec
KeyCDN
KeyCDN
LimeLight CDN
LimeLight
LiteSpeed
LiteSpeed Technologies
Open-Resty Lua Nginx
FLOSS
Oracle Cloud
Oracle
Malcare
Inactiv
MaxCDN
MaxCDN
Mission Control Shield
Mission Control
ModSecurity
SpiderLabs
NAXSI
NBS Systems
Nemesida
PentestIt
NevisProxy
AdNovum
NetContinuum
Barracuda Networks
NetScaler AppFirewall
Citrix Systems
Newdefend
NewDefend
NexusGuard Firewall
NexusGuard
NinjaFirewall
NinTechNet
NullDDoS Protection
NullDDoS
NSFocus
NSFocus Global Inc.
OnMessage Shield
BlackBaud
Palo Alto Next Gen Firewall
Palo Alto Networks
PerimeterX
PerimeterX
PentaWAF
Global Network Services
11
pkSecurity IDS
pkSec
PT Application Firewall
Positive Technologies
PowerCDN
PowerCDN
Profense
ArmorLogic
Puhui
Puhui
Qcloud
Tencent Cloud
Qiniu
Qiniu CDN
Reblaze
Reblaze
RSFirewall
RSJoomla!
RequestValidationMode
Microsoft
Sabre Firewall
Sabre
Safe3 Web Firewall
Safe3
Safedog
SafeDog
Safeline
Chaitin Tech.
SecKing
SecKing
eEye SecureIIS
BeyondTrust
SecuPress WP Security
SecuPress
SecureSphere
Imperva Inc.
Secure Entry
United Security Providers
SEnginx
Neusoft
ServerDefender VP
Port80 Software
Shield Security
One Dollar Plugin
Shadow Daemon
Zecure
SiteGround
SiteGround
SiteGuard
Sakura Inc.
Sitelock
TrueShield
12
SonicWall
Dell
UTM Web Protection
Sophos
Squarespace
Squarespace
SquidProxy IDS
SquidProxy
StackPath
StackPath
Sucuri CloudProxy
Sucuri Inc.
Tencent Cloud Firewall
Tencent Technologies
Teros
Citrix Systems
Trafficshield
F5 Networks
TransIP Web Firewall
TransIP
URLMaster SecurityCheck
iFinity/DotNetNuke
URLScan
Microsoft
UEWaf
UCloud
Varnish
OWASP
Viettel
Cloudrity
VirusDie
VirusDie LLC
Wallarm
Wallarm Inc.
WatchGuard
WatchGuard Technologies
WebARX
WebARX Security Solutions
WebKnight
AQTRONIX
WebLand
WebLand
RayWAF
WebRay Solutions
WebSEAL
IBM
WebTotem
WebTotem
West263 CDN
West263CDN
Wordfence
Defiant
13
WP Cerber Security
Cerber Tech
WTS-WAF
WTS
360WangZhanBao
360 Technologies
XLabs Security WAF
XLabs
Xuanwudun
Xuanwudun
Yundun
Yundun
Yunsuo
Yunsuo
Yunjiasu
Baidu Cloud Computing
YXLink
YxLink Technologies
Zenedge
Zenedge
ZScaler
Accenture
2. Lịch sử phát triển
WAFW00F được phát hành chính thức v0.9.1 vào ngày 15 tháng 5 năm 2014 cung
cấp các tính năng:
•
•
•
•
Hỗ trợ python3
Phát hiện Cloud Flare (được hỗ trợ từ fingerprint nmap waf nse)
Phát hiện Secure Entry Server (được hỗ trợ từ fingerprint nmap waf nse)
Phát hiện Cisco’s ACE XML Gateway (được hỗ trợ từ fingerprint nmap waf
nse)
• Phát hiện IBM DataPower (nhờ Mathieu Dessus)
v0.9.4 phát hành vào ngày 16 tháng 3 năm 2016 bổ sung:
•
wafw00f hiện có thể được cài đặt bằng cách sử dụng setuptools và pip như
một cơng cụ hệ thống
• Có thể bao gồm hoặc ghi đè các tiêu đề bằng cách chuyển tùy chọn –
headersfile hoặc -H
• Vá và hỗ trợ proxy http nhờ Louis-Philippe Huberdeau
• Hiện đang phát hiện 36 WAF sau (!!) nhờ nhiều đóng góp của akun, Matt
Foster, Brendan Coles và Denis Kolegov:
o Profense
o NetContinuum
14
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
Anquanbao
ChinaCache-CDN
Incapsula WAF
PowerCDN
CloudFlare
NSFocus
Safedog
West263CDN
360WangZhanBao
Mission Control Application Shield
USP Secure Entry Server
Cisco ACE XML Gateway
Barracuda Application Firewall
Art of Defence HyperGuard
BinarySec
Teros WAF
F5 BIG-IP LTM
F5 BIG-IP APM
F5 BIG-IP ASM
F5 FirePass
F5 Trafficshield
InfoGuard Airlock
Citrix NetScaler
Trustwave ModSecurity
IBM Web Application Security
IBM DataPower
DenyALL WAF
Applicure dotDefender
Juniper WebApp Secure
Microsoft URLScan
Aqtronix WebKnight
eEye Digital Security SecureIIS
Imperva SecureSphere
Microsoft ISA Server
• Dọn dẹp bản mã, tái cấu trúc, tối ưu hóa, v.v. được bao gồm trong bản phát
hành này
v0.9.5 phát hành vào ngày 14 tháng 6 năm 2018 tăng số WAF có thể nhận diện lên
47 và fix 1 số lỗi cài đặt.
v0.9.6 phát hành vào ngày 20 tháng 2 năm 2019 tăng số WAF lên 50:
15
•
Nhận diện thêm AWS LB/WAF
•
Nhận diện thêm DOSarrest
•
Thêm XLabs Security WAF
•
Sửa 1 số văn bản
•
pylinting
v1.0.0 phát hành vào ngày 01 tháng 5 năm 2019 bổ sung:
•
Số lượng WAF được phát hiện tăng lên 112 nhờ @ 0xInfect
•
Nhiều plugin WAF hiện có nhiều phương pháp phát hiện
•
Đã khắc phục một số sự cố được báo cáo và lỗi được xác định trong q
trình thử nghiệm và phân tích
•
Cải tiến chung các phương pháp tấn cơng
•
Đã xóa một số check cũ khơng chính xác
•
Ký tự ASCII mới với màu ANSI tuyệt vời
v2.0.0 phát hành vào ngày 13 tháng 12 năm 2019 bổ sung:
•
Tồn bộ cơ sở hạ tầng mã của WAFW00F được tái cấu trúc và viết lại
engine.
•
WAFW00F hiện có thể phát hiện hơn 150 WAF (cơ sở dữ liệu phát hiện lớn
nhất cho đến nay).
•
Mỗi plugin WAF hiện có nhiều phương pháp để fingerprint và phát hiện.
•
Cải tiến các mơ-đun phát hiện WAF chung.
•
Những thay đổi và cải tiến lớn trong fingerprint hiện có.
v2.1.0 phát hành vào ngày 29 tháng 1 năm 2020 bổ sung:
•
Nhập từ các tệp JSON, CSV và TXT để chỉ định URL nào sẽ quét bằng cách
sử dụng cờ -i
•
Xuất ra tệp JSON, CSV, TXT bằng cách sử dụng cờ -o
•
Đầu ra rõ ràng tiêu chuẩn khi chuyển -o -dưới dạng cờ đến wafw00f
•
Bao gồm các phát hiện WAF mới
16
3. Khả năng tương thích
Phiên bản Python: WAFW00F hồn tồn tương thích với cả hai phiên bản Python
2.x cũng như 3.x. Tuy nhiên, hỗ trợ cho các phiên bản Python 2.x sẽ sớm bị loại bỏ
do phiên bản sắp kết thúc.
WAFW00F hiện hồn tồn tương thích / ổn định với các phiên bản Python 3.x (tốt
nhất là> = 3.4) hiện tại.
Hệ điều hành: WAFW00F đã được thử nghiệm trên các bản phân phối Linux
chính (Arch, Debian, Ubuntu), Windows và Mac hoạt động như mong đợi.
Màu sắc: Art ASCII mới đẹp có màu. Trên các hệ thống dựa trên Linux (và Hệ
thống con Linux dành cho Windows), ta sẽ tìm thấy các đầu ra có màu. Tuy nhiên,
Mac & Windows khơng hỗ trợ trình tự thốt ANSI nên đầu ra sẽ khơng có màu trên
Mac & Windows. Tuy nhiên, ta vẫn có thể sử dụng WAFW00F một cách hồn hảo trên
chúng.
Các thư viện: WAFW00F cần một số thư viện để chạy hiệu quả. Ngồi các thư
viện tích hợp sẵn, một số yêu cầu cài đặt thông qua pip.
Sau đây là các phụ thuộc mà cơng cụ WAFW00F u cầu:
•
requests - Để thực hiện các truy vấn HTTP.
•
pluginbase - Một trình phân tích cú pháp plugin cho các dự án dựa trên python.
Phần còn lại của các thư viện Python được WAFW00F sử dụng là các thư viện tiêu
chuẩn được cài đặt sẵn với trình thơng dịch Python 3.x.
4. Cài đặt cơng cụ WAFW00F
Trên Kali Linux: Chương trình được cài đặt sẵn trên Kali Linux. Để cài đặt trong
các bản dựng tối thiểu, sử dụng lệnh:
sudo apt install wafw00f
17
Hình 2. 1 Cài đặt WAFW00F trên Kali Linux
Trên Debian, Linux Mint, Ubuntu:
1.
2.
3.
4.
5.
sudo apt update
sudo apt install git python3-pip
git clone />cd wafw00f
sudo python3 setup.py install
Trên BlackArch: Chương trình được cài đặt sẵn trên BlackArch. Để cài đặt trong
các bản dựng tối thiểu, sử dụng lệnh:
sudo pacman -S wafw00f
5. Cách sử dụng
Hình 2. 2 Cách sử dụng WAFW00F
18
Để sử dụng WAFW00F, ta sử dụng lệnh sau:
wafw00f [OPTIONS] URL1 [URL2 [URL3 ... ]]
Trong đó: - [OPTIONS] là các tùy chọn
- URL là các đường dẫn tới trang Web thực thi
Bảng 2 Danh sách lựa chọn
Tùy chọn
-h, --help
-v, --verbose
-a, --findall
-r, --noredirect
-t TEST, --test=TEST
-o OUTPUT, --output=OUTPUT
-f FORMAT, --format=FORMAT
-i INPUT, --input-file=INPUT
-l, --list
-p PROXY, --proxy=PROXY
-V, --version
-H HEADERS, -headers=HEADERS
Mô tả
Hiển thị thông báo trợ giúp này và thốt
Bật tính chi tiết, các tùy chọn nhiều -v làm
tăng độ chi tiết
Tìm tất cả các WAF phù hợp với các chữ ký,
không ngừng thử nghiệm ở chữ ký đầu tiên
Không tuân theo các chuyển hướng được đưa
ra bởi phản hồi 3xx
Kiểm tra một WAF cụ thể
Ghi đầu ra vào tệp csv, json hoặc tệp văn bản
tùy thuộc vào phần mở rộng tệp. Đối với
stdout, chỉ định - làm tên tệp.
Buộc định dạng đầu ra thành csv, json hoặc
văn bản.
Đọc mục tiêu từ một tệp. Định dạng đầu vào
có thể là csv, json hoặc văn bản. Đối với csv
và json, tên cột hoặc phần tử `url` là bắt buộc.
Liệt kê tất cả các WAF mà WAFW00F có thể
phát hiện
Sử dụng proxy HTTP để thực hiện các yêu
cầu, ví dụ:
http://hostname:8080,socks5://hostname:1080,
http://user:pass@hostname:8080
In phiên bản hiện tại của WafW00f và thoát.
Chuyển các tiêu đề tùy chỉnh qua tệp văn bản
để ghi đè bộ tiêu đề mặc định.
19
Chương 3. Bài LAB
Bài 1: Sử dụng công cụ WAFW00F kiểm tra website sử dụng WAF nào?
-
Kiểm tra 1 URL: Phát hiện WAF của website wise.com
Sử dụng câu lệnh: wafw00f wise.com
Hình 3. 1 Kiểm tra WAF 1 URL
Ta có thể thấy website này được bảo vệ bởi WAF Cloudflare của Cloudflare Inc.
Số lượng requests là 2.
-
Kiểm tra 1 WAF cụ thể:
Thử kiểm tra trang web có được bảo vệ bởi
Edgecast của Verizon Digital Media hay không
Sử dụng câu lệnh: -t 'Edgecast (Verizon Digital
Media)'
20
Hình 3. 2 Kiểm tra 1 WAF cụ thể
Ta có thể thấy trang web này không sử dụng WAF Edgecast của Verizon Digital Media
-
Kiểm tra chi tiết và các WAF phù hợp:
Sử dụng câu lệnh: wafw00f -v -a
Hình 3. 3 Kiểm tra chi tiết và các WAF phù hợp
21