本文阅读大约需要10分钟;
本文整理提炼了一份漏洞赏金技巧清单,旨在为初学者提供参与漏洞赏金项目的实用指南。该清单以 Web 站点渗透测试为基础,循序渐进地介绍了漏洞挖掘的核心步骤和常用工具,并通过提供可操作的命令示例,降低入门门槛,即使是初学者也能轻松上手。清单中涵盖的技术和方法,例如子域名枚举、端口扫描和漏洞扫描等,均源于实战检验,可有效自动化部分漏洞挖掘任务,从而提高效率。该清单面向 Web 安全初学者、漏洞赏金猎人以及所有对漏洞挖掘感兴趣的人员,帮助他们理解漏洞赏金项目的流程和方法,鼓励他们积极参与,为 Web 安全贡献力量。
-
使用 Subfinder 枚举子域名:
subfinder -d target.com -silent | tee subdomains.txt
使用 Subfinder 工具扫描target.com 的子域名,并将结果保存到 subdomains.txt 文件中。(尝试扩大攻击面)
相关技巧:建议使用多个子域名枚举工具,例如Assetfinder、Amass、 OneForAll 等,并结合不同的信息源,例如 DNS 服务器、 证书透明度日志 (CTL) 等,提高子域名的覆盖率。
难点:
-
子域名枚举可能会受到 DNS 服务器的限制,例如,某些 DNS 服务器会限制查询的频率和数量。 -
目标网站可能使用了 CDN (Content Delivery Network),导致一些子域名无法被枚举到。 -
目标网站可能使用了通配符 DNS 记录,导致枚举出大量的无效子域名。 -
某些子域名可能使用了 DNSSEC进行安全防护,增加了枚举的难度。 -
目标网站可能使用了反爬虫机制,例如验证码、IP 地址限制等,需要使用代理或其他技术绕过这些限制。
https://github.com/projectdiscovery/subfinder
2.移除重复的子域名、排序,并确定优先级:
cat subdomains.txt | sort | uniq | tee sorted-subdomains.txt
对 subdomains.txt 文件中的子域名进行排序和去重,并将结果保存到 sorted-subdomains.txt 文件中。
难点:确定子域名的优先级需要综合考虑多个因素,例如子域名的命名规则、业务功能、历史漏洞等信息,以及威胁情报等。
3.使用 httpx 检查哪些子域名是活动的:
cat sorted-subdomains.txt | httpx -silent -threads 50 | tee live-subdomains.txt
使用 httpx 工具检查 sorted-subdomains.txt 文件中的子域名是否处于活动状态,并将结果保存到 live-subdomains.txt 文件中。
难点:
-
某些子域名可能使用了 WAF或其他安全防御措施,导致 httpx 无法正常访问。
-
某些子域名可能使用了重定向,需要使用 -follow-redirects 参数才能正确识别。
-
某些子域名可能需要特定的 HTTP 请求头信息才能访问,需要使用 -H 参数指定请求头信息。
-
目标网站可能使用了反爬虫机制,例如验证码、IP 地址限制等,需要使用代理或其他技术绕过这些限制。
-
httpx 的输出结果可能包含大量的无用信息,需要使用 grep、awk 等命令进行过滤。
https://github.com/projectdiscovery/httpx
4.使用 Nmap 对活动子域名执行端口扫描:
nmap -iL live-subdomains.txt -p 80,443 -oG nmap-results.txt
使用 Nmap 扫描 live-subdomains.txt 文件中列出的所有活动子域名的 80 和 443 端口,并将结果保存到 nmap-results.txt 文件中。
难点:
-
防火墙或 IDS/IPS 可能会拦截 Nmap 的扫描请求,需要使用 Nmap 的各种绕过技术,例如,使用 -f 参数进行分片扫描、使用 -D 参数进行诱饵扫描等。
-
目标网站可能使用了 CDN ,导致扫描结果不准确。
-
目标网站可能使用了端口隐藏技术,导致 Nmap 无法扫描到所有开放的端口。
-
Nmap 的某些扫描模式可能会比较耗时,需要耐心等待扫描结果。
-
Nmap 的扫描结果可能包含大量的无用信息,需要使用 grep、awk 等命令进行过滤。
https://nmap.org/download.html
5.使用 httpx 检查安全头部和配置:
cat live-subdomains.txt | httpx -silent -status-code -follow-redirects -title -web-server -tech-detect -o headers_output.txt
使用 httpx 检查活动子域名的安全头部和配置,例如状态码、标题、Web 服务器类型、技术栈等,并将结果保存到 headers_output.txt 文件中。
-
某些子域名可能使用了 WAF 或其他安全防御措施,导致 httpx 无法正常访问。 -
某些子域名可能使用了重定向,需要使用 -follow-redirects 参数才能正确识别。 -
某些子域名可能需要特定的 HTTP 请求头信息才能访问,需要使用 -H 参数指定请求头信息。 -
目标网站可能使用了反爬虫机制,例如验证码、IP 地址限制等,需要使用代理或其他技术绕过这些限制。 -
httpx 的输出结果可能包含大量的无用信息,需要使用 grep、 awk 等命令进行过滤。
https://github.com/projectdiscovery/httpx
6.使用 Nuclei 对已知 CVE 进行自动化漏洞扫描:
nuclei -l live-subdomains.txt -t cves/ -o nuclei-cves-results.txt
使用 Nuclei 扫描 live-subdomains.txt 中列出的活动子域名是否存在已知的 CVE 漏洞,并将结果保存到 nuclei-cves-results.txt 文件中。
难点:
-
Nuclei 的模板库需要定期更新,才能覆盖最新的漏洞。 -
某些 WAF 可能会拦截 Nuclei 的扫描请求,需要使用绕过技术。 -
Nuclei 的扫描结果可能会包含误报, 需要人工验证。 -
某些漏洞需要特定的条件才能触发,Nuclei 可能无法检测到这些漏洞。 -
对于复杂的 Web 应用程序,Nuclei 的扫描覆盖率可能不够高。
https://github.com/projectdiscovery/nuclei
7.使用 FFUF 对目录进行暴力破解:
cat live-subdomains.txt | xargs -I {} ffuf -w wordlists/onelistforallmicro.txt -u {}/FUZZ -e .php,.html,.js,.txt,.asp,.zip,.gz,.tar -o ffuf-results.txt
使用FFUF对活动子域名的目录进行暴力破解,使用 onelistforallmicro.txt 中的路径字典,并测试常见的文件扩展名,将结果保存到 ffuf-results.txt 文件中。
难点:
WAF 拦截:某些 WAF 可能会拦截 FFUF 的扫描请求,导致扫描结果不准确。 速率限制:某些网站会限制请求速率,需要降低 FFUF 的扫描速度,或者使用代理服务器。 目录结构复杂:如果目标网站的目录结构非常复杂,FFUF 的扫描时间会很长。 扫描结果需要人工分析:FFUF 的扫描结果需要人工分析,才能识别有价值的目录和文件。
https://github.com/ffuf/ffuf
8.使用 Subjack 检查子域名接管:
subjack -w live-subdomains.txt -t 100 -timeout 30 -ssl -o subjack_results.txt -v
使用 Subjack 检查活动子域名是否存在子域名接管漏洞,并将结果保存到 subjack_results.txt 文件中。
难点:
WAF 拦截:某些 WAF 可能会拦截 Subjack 的请求,导致扫描结果不准确。 CDN 影响:CDN可能会缓存 DNS 记录,导致 Subjack 无法获取到最新的 DNS 信息。 一些子域名接管漏洞需要手动验证,例如,需要注册相应的第三方服务,才能验证子域名是否可以被接管。 子域名接管漏洞的利用方法比较复杂,需要一定的技术实践积累。
https://github.com/haccer/subjack
9.在活动子域名上使用 Dalfox 运行 XSS 扫描:
cat live-subdomains.txt | xargs -I {} dalfox url {} -b https://your-Burp-Collaborator -o dalfox-xss-results.txt
使用 Dalfox 扫描活动子域名是否存在 XSS 漏洞,使用 Burp Collaborator 作为 Payload 接收服务器,并将结果保存到 dalfox-xss-results.txt 文件中。
难点:
WAF 拦截:某些 WAF 可能会拦截 Dalfox 的扫描请求,导致扫描结果不准确。 误报:Dalfox 的扫描结果可能会包含一些误报,需要人工验证。 复杂的XSS 漏洞:一些XSS漏洞的利用方法比较复杂,需要手动构造 Payload。 JavaScript 代码混淆:某些网站会对 JavaScript 代码进行混淆,增加 XSS 漏洞的识别难度。
https://github.com/hahwul/dalfox
10.使用 GitDorker 发现内容:
python tools/GitDorker/GitDorker.py -d tools/GitDorker/Dorks/medium_dorks.txt -q site:targetsite.com -o gitdorker_results.txt
使用 GitDorker 搜索目标网站的内容,使用 medium_dorks.txt 作为搜索字典,并将结果保存到 gitdorker_results.txt 文件中。
难点:
速率限制:GitHub 会对 API 请求进行速率限制,需要使用 API 令牌,并控制请求频率。 结果的准确性:GitDorker 的搜索结果可能会包含一些无关的信息,需要人工进行筛选。 GitHub 的高级搜索功能:GitHub 本身提供了一些高级搜索功能,可以帮助我们更精确地查找信息。 代码库的规模:对于大型代码库,扫描可能会比较耗时。
https://github.com/obheda12/GitDorker
11.对活动子域名执行完整端口扫描:
nmap -iL target.subdomains.txt -p- -oG full-port-scan.txt
使用 Nmap 对 target.subdomains.txt 文件中列出的所有活动子域名进行完整的端口扫描,并将结果保存到 full-port-scan.txt 文件中。
难点:
扫描时间长:完整端口扫描非常耗时。 容易被检测:完整端口扫描很容易被目标系统检测到,并触发安全警报。 WAF 拦截:某些 WAF 可能会拦截端口扫描请求。 扫描结果需要人工分析:Nmap 的扫描结果需要人工分析,才能识别潜在的漏洞。
希望以上分析对您有所帮助。在实际的漏洞赏金项目中,需要根据目标网站的具体情况,灵活运用各种工具和技术,并遵守道德规范和法律法规。
如果您觉得文章对您有所帮助,还请您关注我!
原文始发于微信公众号(再说安全):漏洞赏金技巧:初学者指南(2024)#1
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论