
웹 애플리케이션을 크롤링하여 URL을 수집하고 200이 아닌 응답에 대해 구성 가능한 규칙을 매칭함으로써 2차 서브도메인 탈취 취약점을 탐지합니다.
웹 애플리케이션을 크롤링하여 특정 규칙과 일치하거나 특정 방식으로 응답하는 URL(및 기타 데이터)을 수집함으로써 2차 서브도메인 탈취(second-order subdomain takeover)를 검사합니다.
릴리스 페이지에서 미리 빌드된 바이너리를 다운로드하여 압축을 푸세요.
Go 버전 1.17을 권장합니다.
go install -v github.com/mhmdiaa/second-order@latest
docker pull mhmdiaa/second-order
-target string
Target URL
-config string
Configuration file (default "config.json")
-depth int
Depth to crawl (default 1)
-header value
Header name and value separated by a colon 'Name: Value' (can be used more than once)
-insecure
Accept untrusted SSL/TLS certificates
-output string
Directory to save results in (default "output")
-threads int
Number of threads (default 10)
예제 설정 파일은 config 디렉토리에 있습니다.
LogQueries: 크롤링된 페이지에서 검색할 태그-속성 쿼리의 맵입니다. 예를 들어 "a": "href"는 모든 a 태그의 모든 href 속성을 기록한다는 의미입니다.LogNon200Queries: 크롤링된 페이지에서 검색할 태그-속성 쿼리의 맵이며, 유효한 URL을 포함하고 있지만 200 상태 코드를 반환하지 않는 경우에만 기록됩니다.LogInline: 여는 태그와 닫는 태그 사이의 인라인 콘텐츠가 기록될 태그 목록입니다. 예를 들어 title과 script 등이 있습니다.모든 결과는 데이터가 발견된 내용과 위치를 지정하는 JSON 파일로 저장됩니다.
LogQueries의 결과는 attributes.json에 저장됩니다.{
"https://example.com/": {
"input[name]": [
"user",
"id",
"debug"
]
}
}
LogNon200Queries의 결과는 non-200-url-attributes.json에 저장됩니다.{
"https://example.com/": {
"script[src]": [
"https://cdn.old_abandoned_domain.com/app.js",
]
}
}
LogInline의 결과는 inline.json에 저장됩니다.{
"https://example.com/": {
"title": [
"Example - Home"
]
},
"https://example.com/login": {
"title": [
"Example - login"
]
}
}
다음은 Second Order를 사용할 수 있는 팁과 아이디어 목록입니다(반드시 2차 서브도메인 탈취와 관련된 것은 아닙니다).
<input> 이름 수집: parameters.json.https://shubs.io/high-frequency-security-bug-hunting-120-days-120-bugs/#secondorder