Webアプリケーションをクロールし、特定のルールに一致するか特定の方法で応答するURL(およびその他のデータ)を収集することで、セカンドオーダーサブドメイン乗っ取りをスキャンします。
リリースページからプリビルドバイナリをダウンロードし、解凍してください。
Goバージョン1.17を推奨します。
go install -v github.com/mhmdiaa/second-order@latest
docker pull mhmdiaa/second-order
-target string
ターゲットURL
-config string
設定ファイル(デフォルト "config.json")
-depth int
クロールする深さ(デフォルト 1)
-header value
ヘッダー名と値をコロンで区切って指定 'Name: Value' (複数回使用可能)
-insecure
信頼されていないSSL/TLS証明書を受け入れる
-output string
結果を保存するディレクトリ(デフォルト "output")
-threads int
スレッド数(デフォルト 10)
設定ファイルの例は config にあります
LogQueries: クロールしたページ内で検索するタグ-属性クエリのマップ。例えば、"a": "href" はすべての a タグの href 属性をすべてログに記録することを意味します。LogNon200Queries: クロールしたページ内で検索するタグ-属性クエリのマップ。有効なURLであり、その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 を何に使うかに関するヒントやアイデアのリストです(必ずしもセカンドオーダーサブドメイン乗っ取りに関連するとは限りません)。
<input> 名を収集: parameters.jsonhttps://shubs.io/high-frequency-security-bug-hunting-120-days-120-bugs/#secondorder