Xác định tất cả tham số

Một phần của tài liệu Pentest Methodology part 1 (Trang 44 - 48)

7. Kiểm tra lỗ hổng xuất hiện dựa trên dữ liệu đầu vào

7.1. Xác định tất cả tham số

Xem lại kết quả lập sơ đồ chức năng ứng dụng, xác định các request có chứa tham số được client gửi cho server xử lý. Các tham số cần kiểm tra gồm các mục trong chuỗi truy vấn URL, các tham số trong request và cookie HTTP. Ngoài ra, còn có các tham số khác ảnh hưởng đến hành vi của ứng dụng, chẳng hạn Referer header hay User-Agent header.

Để xác định tất cả tham số, có thể sử dụng tập lênh hoặc sử dụng các công cụ fuzzing có sẵn như Burp Intruder. Chặn request

bằng Burp Proxy chọn Send to Intruder hoặc click phải vào một mục trong Burp Proxy history để chọn. Cấu hình nội dung request trong Burp Intruder rồi gửi đến máy chủ. Ngoài ra, chức năng này còn có thể sử dụng để tự động đánh dấu các giá trị của các tham số dưới dạng payload để thực hiện fuzzing.

Sử dụng tab payload, cấu hình một tập hợp payload phù hợp để thăm dò các lỗ hổng trong ứng dụng. Có thể nhập trọng tải theo cách thủ công, tải chúng từ tệp hoặc chọn một trong các danh sách. Fuzzing mọi tham số yêu cầu trong ứng dụng thường đòi hỏi phải đưa ra một số lượng lớn các yêu cầu và xem xét các kết quả để tìm các điểm bất thường. Nếu tập hợp tải trọng quá lớn, điều này có thể phản tác dụng khiến mất thời gian do số lượng đầu ra quá lớn. Do đó, một cách tiếp cận hợp lý là nhắm mục tiêu một loạt các lỗ hổng phổ biến thường có thể dễ dàng được phát hiện trong các phản hồi đối với các đầu vào cụ thể và chúng thường tự xuất hiện ở bất kỳ đâu trong ứng dụng chứ không phải trong các chức năng cụ thể. Dưới đây là một bộ payload có thể sử dụng để kiểm tra một số loại lỗ hổng phổ biến:

SQL Injection ‘ ‘--

‘; waitfor delay ‘0:30:0’-- 1; waitfor delay ‘0:30:0’-- XSS and Header Injection

xsstest

“><script>alert(‘xss’)</script> OS Command Injection

|| ping -i 30 127.0.0.1 ; x || ping -n 30 127.0.0.1 & | ping –i 30 127.0.0.1 |

| ping –n 30 127.0.0.1 | & ping –i 30 127.0.0.1 &

& ping –n 30 127.0.0.1 & ; ping 127.0.0.1 ;

%0a ping –i 30 127.0.0.1 %0a ` ping 127.0.0.1 ` Path Traversal ../../../../../../../../../../etc/passwd ../../../../../../../../../../boot.ini ..\..\..\..\..\..\..\..\..\..\etc\passwd ..\..\..\..\..\..\..\..\..\..\boot.ini Script Injection ;echo 111111 echo 111111 response.write 111111 :response.write 111111 File Inclusion

http://<your server name>/

http://<nonexistent IP address>/

Tất cả payload trên được hiển thị dưới dạng chữ. Các ký tự “?”, “;”, “&”, “+”, “=” và dấu cách phải được encode vì chúng có ý nghĩa đặc biệt trong các HTTP request. Theo mặc định, Burp Intruder thực hiện encode cần thiết nếu chưa bị tắt. (Để khôi phục tất cả các tùy chọn về mặc định sau khi tùy chỉnh trước đó, hãy chọn Khôi phục mặc định.)

Trong hàm Grep của Burp Intruder, hãy định cấu hình một tập hợp các chuỗi phù hợp để xử lý một số thông báo lỗi phổ biến trong các phản hồi. Ví dụ: error exception illegal invalid fail stack access directory file not found

varchar ODBC SQL SELECT 111111

Chuỗi 111111 được dùng để kiểm tra script injection thành công.

Cũng chọn tùy chọn Payload Grep để gắn cờ các response có chứa payload, chứng minh XSS tiềm ẩn hoặc lỗ hổng header injection.

Thiết lập máy chủ web hoặc netcat listener trên máy chủ lưu trữ để giám sát các kết nối nhận được từ máy chủ do tấn công bao gồm tệp từ xa thành công.

Bắt đầu tấn công. Sau khi hoàn tất quá trình, kiểm tra kết quả để xác định sự bất thường – dấu hiệu của lỗ hổng. Kiểm tra HTTP status code, độ dài phản hồi, thời gian phản hồi, sự xuất hiện của biểu thức được thiết lập và sự xuất hiện của tải trọng. Click vào từng tiêu đề cột trong bảng kết quả để sắp xếp kết quả theo giá trị trong cột đó (và nhấn Shift-click để sắp xếp ngược lại kết quả). Điều này cho phép xác định sự bất thường để từ đó xác định lỗ hổng.

Đối với mỗi lỗ hổng tiềm ẩn từ kết quả fuzzing, tham khảo các phần sau của phương pháp này. Chúng mô tả các bước chi tiết thực hiện liên quan đến từng loại vấn đề để xác minh sự tồn tại của lỗ hổng và khai thác thành công.

Sau khi đã cấu hình Burp Intruder để thực hiện fuzzing một request, lặp lại kiểm tra tương tự đối với các request khác trong ứng dụng. Thể thực hiện đồng thời nhiều cuộc tấn công một lúc và kiểm tra thủ công khi kết thúc kiểm tra tự động.

Nếu hoạt động lập bản đồ chức năng ứng dụng phát hiện các kênh ngoài băng tần, đầu vào của người dùng được đưa vào quá trình xử lý của ứng dụng, cần thực hiện kiểm tra đối với các đầu vào này. Gửi các dữ liệu tạo thủ công khác nhau để kích hoạt các lỗ hổng phổ biến khi xử lý trong ứng dụng web. Tùy thuộc vào bản chất của kênh đầu vào, có thể cần tạo một tập lệnh tùy chỉnh hoặc cách khai thác khác cho mục đích này.

Ngoài việc fuzzing, nếu có quyền truy cập vào một ứng dụng scanner, bạn nên chạy nó trên ứng dụng đích để tạo cơ sở so sánh với các lỗi được phát hiện.

Một phần của tài liệu Pentest Methodology part 1 (Trang 44 - 48)

Tải bản đầy đủ (DOCX)

(52 trang)
w