NỘI DUNG
Tiếp theo nội dung Penetration Testing Step 3 – Chuẩn bị đổ mưa bom, bão đạn lên mục tiêu với Burp Suite Intruder, kỳ này tôi sẽ xúc cho xong cái thằng còn thiếu nợ là Attack options. Như tôi đề cập kỳ trước, phần này sẽ có liên quan đến Attack Results, cụ thể là đọc, phân tích và khai thác kết quả nên sẽ hết sức quan trọng.
Thông thường, tôi sẽ thử làm một cái demo và diễn giải các kết quả tương ứng cho dễ hình dung. Tuy nhiên, vì nội dung liên quan đến Attack options khá dài mà tôi lại muốn nói hết một lần cho xong nên kỳ này sẽ phá lệ để chém gió “chay” mà không có demo.
Lưu ý:
- Bạn có thể hiệu chỉnh các tùy chọn của Attack Options trong giao diện của Intruder trước khi tấn công và một số tùy chọn cũng có thể được hiệu chỉnh trong Attack Window ngay cả khi quá trình tấn công đang diễn ra;
- Đám thông tin Attack options khá rối rắm, nhưng nếu bạn chịu bỏ thời gian ra chiêm nghiệm, thẩm thấu thì nó là trợ thủ đắc lực giúp gia tăng hiệu quả cho các đòn tấn công. Bạn không cần cố gắng hiểu rõ tất cả ngay lập tức, chỉ cần nhớ chỗ để quay lại xem kỹ khi cần là ngon ăn rồi.
#1. Save Options
Cũng như kỳ trước, bạn truy cập vào Intruder tab, sau đó chọn vào tab con tương ứng (ví dụ bên dưới của tôi là tab con “1”).
Với tùy chọn Save attack to project file, bạn sẽ kiểm soát việc quá trình tấn công hiện thời có được lưu vào project file hay không (mặc định là không). Và hiển nhiên bạn cũng nên chọn lọc cái nào hay ho thì hãy lưu chứ không lại mắc công hốt về một đống rác rồi tốn không gian lưu trữ.
#2. Request Headers
Các thiết lập này sẽ giúp bạn kiểm soát việc Intruder có cập nhật các request headers đã được thiết lập (ví dụ từ Payload Positions tab đề cập trong nội dung Penetration Testing Step 3 – Chuẩn bị đổ mưa bom, bão đạn lên mục tiêu với Burp Suite Intruder) trong quá trình tấn công hay không. Các tùy chọn bao gồm:
- Update Content-Length header – Intruder sẽ bổ sung hoặc cập nhật Content-Length header trong mỗi request theo đúng giá trị độ dài của HTTP body. Bạn sẽ cần thằng này khi dùng các dạng tấn công chèn variable-length payload vào HTTP body nhằm bảo đảm mục tiêu không trả về lỗi/ chờ thêm dữ liệu khi có sai khác thông tin trong Content-Length của HTTP body và header ;
- Set Connection: close – Intruder sẽ bổ sung hoặc cập nhật Connection header với giá trị “Close”. Thiết lập này sẽ có thể giúp bạn tăng tốc độ tấn công trong một số tình huống như khi server không tự trả về giá trị đúng của Content-Length hoặc Transfer-Encoding header.
#3. Error Handling
Với thiết lập này, bạn sẽ kiểm soát việc Intruder xử lý network error trong quá trình tấn công. Cụ thể:
- Number of retries on network failure – Nếu có vấn đề với network connection, Burp Suite sẽ cố gắng thử lại theo số lần quy định ở tùy chọn này trước khi rời bỏ cuộc chơi. Thằng này sẽ giúp bạn chống lại tình huống kết nối chập chờn ảnh hưởng đến quá trình tấn công;
- Pause before retry – Khi cố gắng chạy lại request không thành công, Burp Suite sẽ chờ một khoảng thời gian theo quy định ở tùy chọn này (tính theo miliseconds) trước khi thử lại. Thằng này cũng sẽ giúp bạn trong các tình huống kết nối chập chờn hoặc server đang bị quá tải.
#4. Attack Results
Các tùy chọn này sẽ cho phép bạn quyết định xem Intruder sẽ túm thông tin nào trong attack result. Các tùy chọn cụ thể bao gồm:
- Store requests/respone: Nếu chọn tùy chọn này thì Burp Suite sẽ lưu nội dung các request và response tương ứng trong quá trình tấn công. Việc này hiển nhiên sẽ làm tốn chỗ không gian lưu trữ nhưng sẽ giúp bạn nhanh chóng đọc thông tin trong quá trình tấn công cũng như đẩy sang các tool khác của Burp Suite tùy nhu cầu;
- Make unmodified baseline request: Với tùy chọn này, Burp Suite sẽ dùng template request với giá trị gốc chưa chỉnh sửa tại tất cả payload position. Thằng này sẽ đóng vai trò làm base response để bạn so sánh với kết quả của các biến thể tấn công. Dạng request này sẽ được thể hiện là item #0 trong bảng kết quả;
- Use denial-of-service mode: Với tùy chọn này, quá trình tấn công cũng sẽ có request giống như thông thường nhưng nó sẽ không chờ đợi response từ server mà đóng TCP connection ngay sau khi phọt ra request. Chức năng này sẽ hữu ích cho kiểu application-layer denial-of-service attack nhằm làm quá tải server mà không tiêu tốn quá nhiều tài nguyên để giữ kết nối;
- Store full payloads: Với tùy chọn này Burp Suite sẽ lưu nguyên con toàn bộ payload values cho mỗi kết quả. Tất nhiên kiểu này sẽ rất tốn không gian lưu trữ nhưng là yêu cầu bắt buộc nếu bạn muốn thực hiện một số thao tác (ví dụ chỉnh payload grep setttings, chạy lại request với template đã chỉnh sửa) trong quá trình tấn công.
#5. Grep – Match
Các thiết lập này dùng để flag (cắm cờ) các item của kết quả có chứa expression (tạm hiểu là string – chuỗi ký tự) cụ thể trong response. Với mỗi item, Burp Suite sẽ bổ sung thêm một cột kết quả chứa checkbox cho biết item có trong response hay không (bạn có thể sort theo cột này bằng cách click vô column header để nhóm các kết quả cho nhanh). Tùy chọn sẽ rất hữu ích khi bạn muốn phân tích một lượng lớn dữ liệu kết quả để xác định nhanh các item đặc biệt (ví dụ tìm cụm “password incorrect” hoặc “login successful” trong quá trình login, “ODBC” hoặc “error” trong quá trình test SQL injection).
Ngoài việc kiểm tra khớp với expression, bạn có thể sử dụng thêm các tùy chọn sau để tăng độ linh hoạt:
- Match type: Xác định xem expression là string đơn thuần hay regular expression – Regex (tức là kiểu string thông minh, thể hiện theo các quy tắc nào đó);
- Case sensitive match: Quy định expression có phân biệt chữ hoa/chữ thường;
- Exclude HTTP headers: Thiết lập loại trừ HTTP response header trong quá trình kiểm tra.
#6. Grep – Extract
Các thiết lập này sẽ hỗ trợ bạn trích xuất các thông tin hữu ích trong các response của bảng kết quả. Với mỗi item đã thiết lập, Burp Suite sẽ bổ sung thêm 1 cột kết quả chứa string trích xuất từ item (cột bổ sung này cũng cho phép sort bằng cách bấm vô column header).
Tùy chọn này sẽ rất hữu ích trong quá trình đào bới thông tin (ví dụ trích xuất nhanh tiêu đề của các tài liệu để sàng lọc coi thằng nào có giá trị) thu được từ đó ủ mưu cho các đợt tấn công thâm độc hơn. Ví dụ với kèo thơm hơn, nếu tìm được một function (tạm dịch là hàm chức năng) có thể trả về thông tin của các users khác, bạn có thể chạy function với toàn bộ các user ID hiện có để dò các kết quả trả về và tìm các thông tin giá trị cao như account của admin hay thậm chí là password. Ví dụ cụ thể, nếu bạn tìm được “forgotten password” function nhận parameter là username và trả về password hint của user thì bạn có thể chạy function với các username phổ biến rồi dựng lên danh sách các password hint. Sau đó, dựa vào danh sách gợi ý này bạn có thể đánh giá coi password nào dễ đoán mà chấm mút trước.
Trường hợp cùng 1 matching item được add vào nhiều lần liên tiếp thì lúc này, trong mỗi response, Burp Suite sẽ dò tìm việc xuất hiện nhiều lần của expression đó. Đồng thời, đám text xuất hiện ngay sau các expression cũng sẽ được hốt vô luôn. Thứ này sẽ rất hữu ích trong tình huống bạn xử lý bảng HTML chứa các thông tin hay nhưng không có prefix duy nhất để có thể tự động hốt hết đám này.
#7. Grep – Payloads
Các thiết lập này được sử dụng để flag (cắm cờ) các item chứa reflection (tạm dịch là bản sao phản chiếu) của payload đã gửi. Khi kích hoạt, bạn cũng sẽ có thêm một cột kết quả chứa checkbox cho biết giá trị payload đang xem xét có nằm trong response hay không (bạn thiết lập bao nhiêu payload thì sẽ có bấy nhiêu cột kết quả bổ sung). Tính năng này sẽ rất hữu ích trong tình huống xác định các lỗ hổng dạng XSS/response injection với user input chèn application respone dạng động. Các tùy chọn cụ thể như sau:
- Case sensitive match: Quy định quá trình kiểm tra payload có phân biệt chữ hoa/chữ thường hay không;
- Exclude HTTP headers: Thiết lập loại trừ HTTP response header trong quá trình kiểm tra;
- Match against pre-URL-encoded payloads: Thông thường Intruder sẽ thực hiện URL-encode payloads trong các request. Tuy nhiên, đám này thường sẽ được decoded và trả về ở dạng gốc. Bạn có thể dùng tùy chọn này để bắt Burp Suite kiểm tra payload trong response theo dạng pre-encoded.
#8. Redirection during attack
Các thiết lập này sẽ kiểm soát việc Burp Suite xử lý redirection (tạm dịch là chuyển hướng trang truy cập) trong quá trình tấn công. Ví dụ với password guessing attack, kết quả mỗi lần thử có thể chỉ hiển thị sau khi thực hiện redirection. Với fuzzing, các thông tin phản hồi liên quan có thể chỉ xuất hiện trong error message đi sau một redirection response. Các tùy chọn cụ thể bạn có thể xem xét bao gồm:
- Follow redirections: Thiết lập cho phép kiểm soát việc redirection của mục tiêu;
- Process cookies in redirections: Thiết lập cho phép bất kỳ cookies nào thiết lập trong redirection response sẽ được gửi lại khi thực hiện redirection. Cái này sẽ hữu ích trong hình huống bạn muốn brute force dạng login luôn redirection đến một trang kết quả và một session mới sẽ được tạo trong response cho mỗi lần login.
Burp Suite hiện có thể chạy chuỗi redirection tối đa 10 lần. Lúc này trong bảng kết quả sẽ xuất hiện thêm một cột thể hiện có redirection hay không trong từng kết quả (có full request/response trong redirection chain). Các dạng redicrection mà Burp Suite sẽ xử lý (ví dụ 3xx status code, Refresh header) được thiết lập trong redirection options (Thuộc Project options/ HTTP/Redirections như hình bên dưới).
Ngoài ra, liên quan đến vấn đề redirection, bạn cũng cần lưu ý:
- Đôi khi bạn sẽ cần single-threaded attack (tạm dịch là tấn công 1 luồng) khi thực hiện redirection. Tình huống này có thể xuất hiện khi mục tiêu lưu kết quả request ban đầu trong session của bạn và sẽ trích xuất thông tin này khi gửi redirection response;
- Việc tự động redirection đôi khi sẽ gây ra vấn đề cho quá trình tấn công của bạn, ví dụ như khi mục tiêu phản hồi một số request thâm độc với redirection đến trang logout làm mất session hiện hành. Bạn sẽ cần nhớ để có tùy chỉnh phù hợp cho từng tình huống tấn công.
Rồi thôi, đến đây tôi xin tạm dừng phần chém gió “chay”. Kỳ tới tôi sẽ thử demo để làm rõ thêm các nội dung này.
1 thought on “Penetration Testing Step 3 – Xoay chuyển thế trận với Intruder attack options của Burp Suite”