关于Second Order
Second Order是一款功能强大的子域名接管漏洞安全扫描工具,该工具可以通过网络爬虫爬取App,并收集匹配特定规则或以特定形式响应数据的URL地址以及其他数据,以期帮助广大研究人员扫描Web应用程序并发现其中潜在的二级子域名接管问题。
工具安装
(1) 直接使用
广大研究人员可以直接从该项目的【Releases页面】下载预构建好的工具代码,然后解压之后便可直接使用。
(2) 源码安装
该工具基于Go语言开发,因此广大研究人员在使用该工具之前还需要安装并配置好Go语言环境,我们建议使用Go v1.17版本。安装命令如下:
go install -v github.com/mhmdiaa/second-order@latest
(3) Docker安装
docker pull mhmdiaa/second-order
工具使用
(1) 命令行选项
-target string
设置目标URL地址
-config string
配置文件 (默认为"config.json")
-depth int
爬取深度 (默认为1)
-header value
Header名称和值,中间用分号隔开,例如'Name: Value'
-insecure
接受不受信任的SSL /TLS证书
-output string
存储输出结果的目录 (默认为"output")
-threads int
运行线程数量 (默认为10)
(2) 配置文件
该工具已在项目的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"
]
}
}
工具使用建议
- 检测二级子域名接管:takeover.json;
- 收集标签内容以及导入的JS代码:javascript.json;
- 查找目标主机托管的静态文件:cdn.json;
- 收集的name属性并构建定制的暴力破解字典参数:parameters.json;
项目地址
Second Order:【GitHub传送门】