扫描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
头部名称和值,用冒号分隔 '名称: 值'(可多次使用)
-insecure
接受不受信任的SSL/TLS证书
-output string
保存结果的目录(默认 "output")
-threads int
线程数(默认 10)
示例配置文件位于 config
LogQueries: 一个标签-属性查询的映射,将在爬取的页面中搜索。例如,"a": "href" 表示记录每个 a 标签的 href 属性。LogNon200Queries: 一个标签-属性查询的映射,将在爬取的页面中搜索,并且仅当它们包含一个不返回 200 状态码的有效URL时才记录。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.json。https://shubs.io/high-frequency-security-bug-hunting-120-days-120-bugs/#secondorder