1 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN 1 Học phần: An toàn mạng Đề tài: Tìm hiểu công cụ hỗ trợ tìm kiếm và khai thác lỗ hổng bảo mật ứng dụng web Burp Su
Trang 11
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
Học phần: An toàn mạng
Đề tài: Tìm hiểu công cụ hỗ trợ tìm kiếm và khai thác lỗ hổng
bảo mật ứng dụng web Burp Suite
Chủ đề: Tính năng Repeater và một số Extensions phổ biến
Trang 2MỤC LỤC
DANH MỤC ẢNH MINH HỌA 3
LỜI MỞ ĐẦU 5
CHƯƠNG 1: GIỚI THIỆU KHÁI QUÁT VỀ CÔNG CỤ BURP SUITE 6
1 Tổng quan về Burp Suite 6
2 Một số tính năng nổi bật của Burpsuite 8
CHƯƠNG 2: CÀI ĐẶT BURP SUITE, SỬ DỤNG TÍNH NĂNG REPEATER VÀ CÁC EXTENSION PHỔ BIẾN 9
1 Cài đặt Burp Suite 9
1.1 Môi trường cài đặt 9
1.2 Cài đặt chức năng proxy 9
2 Tính năng repeater 12
2.1 Sử dụng Burp Repeater với các gói tin HTTP 14
2.2 Gửi HTTP requests 15
2.3 Lịch sử request 15
2.4 Repeater options 16
2.5 Thanh công cụ phân tích gói tin 16
3 Cài đặt và sử dụng một số extension phổ biến 19
2.6 Giới thiệu tính năng extender 19
2.7 Extension Autorize 20
2.8 Extension Param Miner 28
2.9 Burp Bounty 32
CHƯƠNG 3: THỬ NGHIỆM CÔNG CỤ BURPSUITE VỚI TÍNH NĂNG REPEATER VÀ EXTENSION 35
1 Khai thác lỗ hổng Broken Access Control sử dụng extension Autorize kết hợp với tính năng Repeater 35
2 Rà quét lỗ hổng XSS với extension Burp Bounty 41
KẾT LUẬN 47
DANH MỤC TÀI LIỆU THAM KHẢO 48
Trang 33
DANH MỤC ẢNH MINH HỌA
Hình 1 1 Giao diện công cụ Burp Suite 6
Hình 1 2 So sánh phiên bản Enterprise Edition với phiên bản Professional Edition 7
Hình 1 3 request và Respone được bắt bởi công cụ Burp Suite 7
Hình 2 1 Cấu hình proxy trên Browser 10
Hình 2 2 Cấu hình proxy trên Windows 11
Hình 2 3 Thiết lập cấu hình trên BurpSuite 12
Hình 2 4 Trang web download chứng chỉ 12
Hình 2 5 Giao diện chính của trang repeater 13
Hình 2 6 Cấu hình target của repeater 13
Hình 2 7 Gửi request đến repeater 14
Hình 2 8 Request từ repeater và response trả về 15
Hình 2 9 Danh sách lịch sử các request thực hiện bởi Repeater 15
Hình 2 10 Gói tin phản hồi hiển thị dạng Raw 17
Hình 2 11 Gói tin phản hồi hiển thị dạng Pretty 18
Hình 2 12 Gói tin phản hồi hiển thị dạng Hex 18
Hình 2 13 Gói tin phản hồi hiển thị dạng Render 19
Hình 2 14.Giao diện quản lý Extension 19
Hình 2 15.Giao diện PApp Store 20
Hình 2 16 Thiết lập môi trường Python 21
Hình 2 17 Cài đặt Autorize trong Bapp Store 22
Hình 2 18 Giao diện chính extension Autorize 22
Hình 2 19 Các cấu hình cơ bản của extension Autorize 23
Hình 2 20 Trạng thái đang hoạt động 23
Hình 2 21 Thanh cấu hình cookies 24
Hình 2 22 Tạo cookie 24
Hình 2 23 Trạng thái các request 24
Hình 2 24.Bảng phân tích gói tin request 25
Hình 2 25.Bảng phân tích gói tin response 26
Hình 2 26 Chi tiết gói tin request được sửa đổi cookie 27
Hình 2 27.Bảng cấu hình filter 28
Hình 2 28.Cài đặt Param Miner 29
Hình 2 29 Sử dụng Param Miner – Bước 1 29
Hình 2 30 Sử dụng Param Miner – Bước 2 30
Trang 4Hình 2 31 Kết quả 31
Hình 2 32 Cài đặt Burp Bounty 32
Hình 2 33 Giao diện chính Burp Bounty 33
Hình 2 31 Chi tiết engine tìm bug Tomcat_Groovy_CVE-2020-9484 33
Hình 2 32 Chi tiết engine tìm bug Tomcat_Groovy_CVE-2020-9484 34
Hình 3 1 Giao diện sau khi đăng nhập với user thường 35
Hình 3 2 Copy trường cookie 36
Hình 3 3 khởi tạo cookie user thường trong Autorize 36
Hình 3 4 Nâng quyền user carlos lên admin 37
Hình 3 5 Phân tích chưa khai thác được lỗ hổng 37
Hình 3 6 Gửi request gốc vào repeater 38
Hình 3 7 Thao tác trong repeater 39
Hình 3 8 Phân tích Autorize 39
Hình 3 9 Gửi request nâng quyền user wiener 40
Hình 3 10 User wiener được nâng quyền admin thành công 40
Hình 3 11 Thực hiện chức năng tìm kiếm với keyword “test” 41
Hình 3 11 Gửi request vào repeater 41
Hình 3 12 Cấu hình request Burp Bounty 42
Hình 3 13 Cấu hình response Burp Bounty 43
Hình 3 14 Cấu hình Issue Burp Bounty 43
Hình 3 15 Scan request 44
Hình 3 16 Cấu hình chỉ rà quét từ các extension 44
Hình 3 17 Các thông số, chi tiết request ở bên dưới góc phải 45
Hình 3 18 Payload gửi từ request được reflect tại response 45
Hình 3 19 Chèn payload XSS vào cùng vị trí extension tìm được 46
Hình 3 20 Hệ thống thực thi payload vừa gửi lên 46
Trang 55
LỜI MỞ ĐẦU
Thế giới bước vào cuộc Cách mạng công nghiệp lần thứ tư với sự phát triển mạnh mẽ của không gian mạng đã mang lại những lợi ích to lớn trên nhiều lĩnh vực của đời sống xã hội, làm thay đổi diện mạo mới của nhiều quốc gia, đem lại những thành tựu vượt bậc cho nhân loại Tuy nhiên, với tính toàn cầu và khả năng kết nối vô hạn của không gian mạng có thể nói không bị giới hạn bởi không gian, thời gian và bản chất xã hội của không gian mạng cũng đặt ra nhiều thách thức rất lớn đối với an ninh của các quốc gia trên thế giới như: chiến tranh mạng, chiến tranh thông tin, khủng bố mạng, tội phạm mạng…vấn đề phát triển và làm chủ không gian mạng đã trở thành một trong những nhiệm vụ cấp bách được nhiều quốc gia đặc biệt quan tâm
Phát biểu Tổng thống Mỹ Barack Obama: “Đe dọa về an ninh mạng trở thành một trong các thách thức về kinh tế và ANQG nguy hiểm nhất đối với nước Mỹ Internet hiện giờ trở thành vũ khí hủy diệt hàng loạt”
Phát biểu Tổng thống Nga Pustin: “Trong điều kiện hiện nay, sức sát thương của các cuộc tấn công mạng có thể cao hơn bất kỳ loại vũ khí thông thường nào”
Xét đến sự gia tăng nhanh chóng của việc triển khai công nghệ, an toàn, an ninh mạng đã trở thành một nhu cầu thiết yếu toàn cầu trong nỗ lực điều chỉnh các biện pháp bảo vệ, dù là trực tiếp hay gián tiếp, để ngăn chặn các hệ thống khỏi các cuộc tấn công mạng Burp Suite là một trong những công cụ ra đời để đảm bảo an toàn bảo mật cho ứng dụng web Với hơn 40.000 người dùng, Burp Suite là trình quét
lỗ hổng bảo mật trên web được sử dụng rộng rãi nhất trên thế giới Bài báo cáo sau đây sẽ trình bày những thông tin tìm hiểu được về công cụ này Bài báo cáo gồm 3 chương:
CHƯƠNG 1: GIỚI THIỆU KHÁI QUÁT VỀ CÔNG CỤ BURP SUITE
CHƯƠNG 2: CÀI ĐẶT BURP SUITE, SỬ DỤNG TÍNH NĂNG REPEATER
VÀ CÀI ĐẶT CÁC EXTENSION
CHƯƠNG 3: THỬ NGHIỆM TÍNH NĂNG REPEATER VÀ CÁC
EXTENSION
Trang 6CHƯƠNG 1: GIỚI THIỆU KHÁI QUÁT VỀ CÔNG CỤ BURP SUITE
1 Tổng quan về Burp Suite
Năm 2003, Burp Suite được khai sinh bởi Dafydd Stuttard (PortSwigger founder and CEO), và hiện tại Burp Suite vẫn đang được liên tục phát triển bởi PortSwigger Trải qua rất nhiều phiên bản, BurpSuite đã có giao diện bắt mắt hơn, tân tiến hơn ngày xưa và có một diện mạo như bây giờ
Burp Suite là một trong những công cụ kiểm tra thâm nhập và tìm lỗ hổng phổ biến nhất và thường được sử dụng để kiểm tra bảo mật ứng dụng web Là một công cụ dựa trên proxy được sử dụng để đánh giá tính bảo mật của các ứng dụng dựa trên web
và thực hiện kiểm tra thực hành
Hình 1 1 Giao diện công cụ Burp Suite
Burpsuite có 2 phiên bản chính là Community Edition, Professional Edition (mất phí) và Enterprise Edition (dùng cho doanh nghiệp) Bản pro sẽ có thêm chức năng scan web, nhưng với phiên bản miễn phí cũng có thể sử dụng hầu hết các chức năng chính của Burpsuite như: proxy server, web spider, intruder and repeater
Trang 77
Hình 1 2 So sánh phiên bản Enterprise Edition với phiên bản Professional Edition
Burp Suite là một công cụ pentest ứng dụng web Đây không phải là một công
cụ “ăn sẵn” như Acunetix, mà nó chỉ hỗ trợ một số việc cho tester trong quá trình pentest Với một chút cố gắng, bất kỳ ai cũng có thể sử dụng Burp Suite để kiểm thử các ứng dụng web Các tính năng nâng cao của Burp sẽ giúp tester nâng cao kỹ năng
và trình độ của mình hơn nữa Ngoài ra, giao diện của Burp cũng rất trực quan và thân thiện Chúng ta có thể nhìn rõ request được gửi (Request) cũng như phản hồi từ phía server (Respone)
Hình 1 3 request và Respone được bắt bởi công cụ Burp Suite
Trang 82 Một số tính năng nổi bật của Burpsuite
Interception Proxy: được thiết kế để bắt các request từ đó có thể tùy ý sửa đổi
trước khi các request này được gửi lên server
Repeater: cho phép sử dụng một request trước đó và tùy sửa đổi nội dung
request một cách nhanh chóng nhiều lần khác nhau
Intruder: tự động hóa việc gửi hàng loạt các request có chứa các payload
tương tự nhau lên server
Decoder: decode và encode string theo các format khác nhau (URL, Base64,
HTML,…)
Extender: API để mở rộng chức năng của Burp Suite Có thể download các
extensions thông qua Bapp Store
Spider & Discover Content: crawl link có trong ứng dụng web
Scanner (chỉ có trong bản Pro): đây là một mô đun khác mạnh mẽ, nó tự động
quét các lỗ hổng trong ứng dụng web (XSS, SQLi, Command Injection, File Inclusion,…)
Trang 99
CHƯƠNG 2: CÀI ĐẶT BURP SUITE, SỬ DỤNG TÍNH NĂNG
REPEATER VÀ CÁC EXTENSION PHỔ BIẾN
1 Cài đặt Burp Suite
1.1 Môi trường cài đặt
Bước 1: Cần cài đặt java (jre) trước khi cài đặt công cụ này Tải và cài đặt java (jre) Java Jre
Bước 2: Tải và cài đặt Burp Suite Burp Suite Có thể tải bản Community Free hoặc trả phí (Bản free sẽ bị giới hạn một số chức năng)
1.2 Cài đặt chức năng proxy
Để có thể sử dụng Burp Suite cần thiết lập Proxy trên Browser hoặc cấu hình trực tiếp trên Windows
Bước 1: Cài đặt Proxy :
Trang 10Hình 2 1 Cấu hình proxy trên Browser
Trang 1111
Hình 2 2 Cấu hình proxy trên Windows
Bước 2: Thiết lập cấu hình trên BurpSuite:
Tab Proxy -> Option -> Add Address: 127.0.0.1 Port: 8080 (Port giống với port proxy trên browser )
Trang 12Hình 2 3 Thiết lập cấu hình trên BurpSuite
Bước 3: Cài đặt chứng chỉ cho Burp Suite
Để có thể bắt các request website sử dụng giao thức https cần cài đặt và trust chứng chỉ của Burp Suite cho trình duyệt Truy cập vào đường dẫn http://burp trên trình duyệt để tải về chứng chỉ và cài đặt trên máy
Hình 2 4 Trang web download chứng chỉ
2 Tính năng repeater
Burp repeater là một công cụ được sử dụng để sửa đổi thủ công các yêu cầu HTTP và kiểm tra các phản hồi được cung cấp bởi trang Điều này thậm chí có thể dẫn đến việc thăm dò các lỗ hổng trên trang web Về cơ bản, điều này được sử dụng
để phát lại các yêu cầu đến máy chủ
Trang 1313
Đây là tính năng dùng thường xuyên nhất đối với chuyên viên kiểm tra bảo mật Cho phép thay đổi bất cứ phần nào trong request trực tiếp trong raw mode
Hình 2 5 Giao diện chính của trang repeater
Để có thể sử dụng Repeater, trước tiên vào tab repeater có trong Burp Suite, sau đó lựa chọn target ở góc trên bên phải và điền địa chỉ IP hoặc tên miền của mục tiêu vào cổng port tương ứng
Hình 2 6 Cấu hình target của repeater
Trang 14Sau khi chọn mục tiêu, sử dụng cột bên trái điền nội dung các yêu cầu gửi đi,
dữ liệu trả về sẽ có ở cột bên phải
2.1 Sử dụng Burp Repeater với các gói tin HTTP
Có thể chọn một thông điệp HTTP ở bất kỳ đâu trong Burp và chọn Send to Repeater từ menu Thao tác này sẽ tạo một tab request mới trong Repeater và tự động
điền chi tiết target và request
Hình 2 7 Gửi request đến repeater
Trang 1515
2.2 Gửi HTTP requests
Sau khi đã gửi đến Repeater, có thể chỉnh sửa chi tiết các thông tin để tạo thành Request mới, sau đó gửi lên hệ thống mục tiêu, response trả về là response của request gần nhất
Hình 2 8 Request từ repeater và response trả về
Trang 162.4 Repeater options
Cập nhật Content-Length - Tùy chọn này kiểm soát việc Burp có tự động cập
nhật tiêu đề Độ dài Nội dung của yêu cầu khi cần thiết hay không Việc sử dụng tùy chọn này thường là cần thiết khi thông báo yêu cầu chứa nội dung
Unpack GZIP / deflate - Tùy chọn này kiểm soát việc Burp có tự động giải
nén nội dung GZIP- và deflate-nén nhận được trong phản hồi hay không
Theo dõi chuyển hướng - Cài đặt này cho phép các response tự động chuyển
hướng Nếu Repeater nhận được phản hồi chuyển hướng mà nó không được cấu hình
để tự động chuyển hướng, nó sẽ hiển thị nút Chuyển hướng ở phía trên giao diện
người dùng Điều này cho phép thực hiện theo cách thủ công chuyển hướng sau khi xem response Tính năng này rất hữu ích để xem qua từng yêu cầu và phản hồi theo trình tự chuyển hướng Các cookie mới sẽ được xử lý trong các chuyển hướng thủ công này nếu tùy chọn này đã được đặt trong tùy chọn Quy trình cookie trong chuyển hướng được mô tả bên dưới
Chuẩn hóa phần cuối dòng HTTP / 1 - Theo mặc định, Repeater sẽ chuẩn
hóa phần cuối dòng HTTP / 1 bằng cách tự động thêm một ký tự dòng mới (\ n) vào bất kỳ dòng nào kết thúc bằng ký tự xuống dòng độc lập (\ r) Điều này làm giảm nguy
cơ vô tình gửi một request không hợp lệ
2.5 Thanh công cụ phân tích gói tin
Ở đầu mỗi yêu cầu hoặc phản hồi, có một thanh công cụ cung cấp một loạt các tính năng để giúp bạn phân tích các loại thông báo khác nhau Có thể luân phiên giữa các chế độ xem khác nhau để kiểm soát cách hiển thị nội dung của thông báo, thực hiện nhiều thao tác phổ biến và kết hợp các tiện ích mở rộng tùy chỉnh để giúp phân tích gói tin
• Raw
Trong dạng xem này, các thông tin của gói tin được hiển thị toàn bộ ở dạng thô Bao gồm các chức năng hữu ích khác nhau bao gồm phân tích cú pháp, phím
Trang 1717
nóng và tìm kiếm theo ký tự Có thể sử dụng nút \ n để chuyển đổi xem các ký tự
ẩn có được hiển thị hay không
Hình 2 10 Gói tin phản hồi hiển thị dạng Raw
• Pretty
Trong dạng xem này, có thể truy cập tất cả các chức năng giống như trong
dạng xem Raw Sự khác biệt chính là tính năng in đẹp của trình soạn thảo văn bản
được kích hoạt Điều này cải thiện đáng kể khả năng đọc dữ liệu, đánh dấu và đọc
code trong thông điệp HTTP bằng cách hiển thị chúng với thụt lề và ngắt dòng
được tiêu chuẩn hóa
Trang 18Hình 2 11 Gói tin phản hồi hiển thị dạng Pretty
• Hex
Chế độ xem này hiển thị gói tin ở dạng thô trong trình chỉnh sửa hệ thập lục
phân Nó hiển thị các thông báo được sắp xếp thành các dòng 16 byte và hiển thị
giá trị hex của mỗi byte
Hình 2 12 Gói tin phản hồi hiển thị dạng Hex
Trang 1919
• Render
Áp dụng cho các phản hồi HTTP có chứa nội dung HTML hoặc hình ảnh Nó
cố gắng hiển thị nội dung của nội dung gói tin ở dạng xuất hiện khi hiển thị trong trình duyệt
Hình 2 13 Gói tin phản hồi hiển thị dạng Render
3 Cài đặt và sử dụng một số extension phổ biến
3.1 Giới thiệu tính năng extender
Điều đầu tiên cần biết là Burp Extender cho phép sử dụng các extensions của Burp suite để mở rộng các tính năng bằng mã nguồn của riêng mình hoặc bên thứ ba Qua đó có thể tải và quản lý các extension, xem chi tiết các extension đã cài đặt, cài đặt extension từ BApp Store, xem API Burp Extender hiện tại và cấu hình các tùy chọn về cách xử lý tiện ích mở rộng
Hình 2 14.Giao diện quản lý Extension
Trang 20Thực hiện install các extension trong tab PApp Store, ở đây có hiển thị tên extensions, trạng thái cài đặt, mức độ phổ biến, mức độ đánh giá, ngày update gần nhất,…
Phía bên phải hiển thị thêm thông tin chi tiết của extension, tác giả, phiên bản, source
Đối với mỗi Request thực hiện, extension này sẽ thực hiện thêm 2 request nữa,
1 là có sử dụng Cookie của tài khoản thứ 2 mà mình config, 2 là request không sử dụng Cookie, tức là người dùng chưa thực hiện đăng nhập
Ta có thể sử dụng 2 tài khoản:
- Người dùng A: Quản trị viên
- Người dùng B: Người dùng bình thường
Trang 2121
Duyệt ứng dụng web với người dùng A và thêm cookie của người dùng B trong
chế độ tự động của Autorize
A Cài đặt
Vì Autorize được code bằng python nên bước đầu cần thiết lập môn trường
python trên Burp Suite
Bước 1: tải xuống Jython JAR độc lập tại link:
http://www.jython.org/download.html
Bước 2: Mở các danh mục Burp Suite theo thứ tự:
Extender -> Options -> Python Environment -> Select File
Sau đó chọn đến file jython.jar nằm trong folder vừa download
Hình 2 16 Thiết lập môi trường Python
Trang 22Bước 4: Tìm đến tool Autorize trong Bapp Store, sau đó click nút install
Hình 2 17 Cài đặt Autorize trong Bapp Store
Sau khi cài đặt thành công sẽ hiển thị tab Autorize bên trên thanh công cụ
Hình 2 18 Giao diện chính extension Autorize
Trang 2323
B Sử dụng
Đầu tiên, khởi động bằng cách nhấn vào nút Autorize is off
Hình 2 19 Các cấu hình cơ bản của extension Autorize
Hình 2 20 Trạng thái đang hoạt động
Ở đây cho phép các option:
- Bỏ qua các request gửi lên và nhận về response trạng thái 304/204 để tráng tình trạng false positive
- Chặn trạng thái 304 not modified
- Chặn cả những request từ Repeater
- Check cả với user trạng thái unauthenticated
- Thay đổi giá trị các parametors
Ngoài ra phía bên dưới cho phép xóa tất cả nội dung cũ, hoặc tự động cuộn hỗ trợ cho việc dễ dàng phân tích và thao tác
Trang 24Tiếp theo đến phần cấu hình cookie, ở đây nhập cookie của người dùng khác hoặc người dùng với quyền thấp hơn, sau đó Autorize sẽ gửi thêm một request với cookie vừa nhập
Hình 2 21 Thanh cấu hình cookies
Sau khi nhập cookie, nhấn add và nhập tên cookie để khởi tạo
Hình 2 22 Tạo cookie
Ở thanh hiển thị bên trái hiển thị các thông tin của từng request
Hình 2 23 Trạng thái các request
Đầu tiên là các thông tin cơ bản như URL, content-length với từng loại request:
- Request gốc, request đã chỉnh sửa, request không xác thực