工欲善其事,必先利其器。做渗透测试,工具是必不可少的。但工具只是辅助,关键还是理解原理。这一部分,我们来了解一下Burp Suite等安全测试工具的使用,以及如何结合工具和手工测试,提高测试效率和覆盖率。

Burp Suite是Web渗透测试中最常用的工具,功能强大,是每个渗透测试工程师必须掌握的。它提供了多个核心模块:Proxy代理用于拦截和修改HTTP请求,Repeater用于重放请求测试漏洞,Intruder用于自动化攻击(暴力破解、fuzz等),Scanner用于自动化漏洞扫描,Decoder用于编码解码,Comparer用于对比响应,Extender用于插件扩展。
配置代理是使用Burp Suite的第一步。启动Burp Suite后,默认监听127.0.0.1:8080。在浏览器中配置代理,指向Burp Suite,然后访问http://burpsuite,下载CA证书,安装证书到浏览器。这样浏览器就可以通过Burp Suite代理访问网站,Burp Suite可以拦截和修改所有HTTP请求。
在Proxy → Intercept中,开启拦截功能。当浏览器访问网站时,请求会被拦截,可以查看请求内容,修改参数,然后点击Forward发送请求,或Drop丢弃请求。
实战中,Proxy模块有很多技巧。可以修改请求参数,测试注入漏洞:将参数值改为SQL注入payload,测试是否存在SQL注入;添加新参数,测试功能是否对参数进行验证;删除某些参数,测试哪些参数是必需的。
可以修改请求方法:将GET改成POST,测试系统是否对请求方法进行验证;将POST改成GET,测试系统是否支持GET方法;尝试其他方法(PUT、DELETE等),测试系统是否支持这些方法。
可以修改请求头:修改User-Agent,测试系统是否对User-Agent进行验证;添加自定义Header,测试系统是否处理未知Header;修改Referer、Origin等,测试CSRF防护。
Repeater模块用于重放请求,测试漏洞,验证修复,调试请求。使用场景包括:测试某个参数是否存在注入漏洞,验证修复是否有效,调试请求和响应的关系。
假设在测试登录功能时,怀疑可能存在SQL注入。在Proxy中拦截登录请求,右键发送到Repeater。在Repeater中,可以修改参数,比如将用户名改为admin' OR '1'='1,然后发送请求,查看响应。如果响应异常(比如返回了所有用户信息),就可能存在SQL注入。
Repeater的优势是可以快速修改参数,多次发送请求,观察响应的变化。这对于测试漏洞、验证修复、调试问题都很有用。
Intruder模块用于自动化攻击,包括暴力破解、参数fuzz、批量测试等。
配置步骤:在Proxy或Repeater中,右键发送到Intruder。在Positions中标记要fuzz的位置(用§包围)。在Payloads中配置Payload列表(可以是数字、字符串、从文件加载等)。在Options中配置请求选项(线程数、请求间隔等)。点击Start attack开始攻击。
实战案例:暴力破解登录。拦截登录请求,发送到Intruder,标记密码参数,配置密码字典,开始攻击。攻击过程中,观察响应长度、状态码等,如果某个密码返回成功(状态码200,响应长度不同),说明破解成功。
另一个案例:参数fuzz。假设要测试用户ID是否存在水平越权,可以标记ID参数,配置Payload(数字1-1000或从文件加载),开始攻击。观察响应,分析哪些ID可以访问(返回了用户信息),哪些ID不能访问(返回403或404)。
Scanner模块用于快速发现常见漏洞,辅助手工测试。
使用方法:在Proxy中浏览网站,让Burp Suite记录所有请求。在Scanner中点击Scan开始扫描,等待扫描完成,查看扫描结果。
但需要注意的是,Scanner只能发现已知漏洞模式,对逻辑漏洞、业务漏洞检测不到。Scanner的误报率也较高,需要手工验证每个漏洞。所以Scanner只能作为辅助工具,不能完全依赖。
Burp Suite支持插件扩展,可以安装各种插件来增强功能。
常用插件包括:SQLMap(SQL注入自动化工具,可以自动检测和利用SQL注入),J2EEScan(用于Java应用扫描),Retire.js(检测过时的JavaScript库),Param Miner(用于参数挖掘,发现隐藏参数)。
安装插件:在Extender → Extensions → Add,选择插件类型(Java、Python等),加载插件文件,插件安装后可以使用。

除了Burp Suite,还有很多自动化扫描器可以使用。
OWASP ZAP是免费的开源扫描器,功能类似Burp Suite。它的特点是免费开源,功能强大,社区活跃。适合预算有限的项目,或者需要开源工具的场景。
Nikto是Web服务器扫描器,可以快速扫描Web服务器的常见问题。使用方法:
|nikto -h https://example.com
Nmap是网络扫描器,也可以扫描Web服务。使用方法:
|nmap -sV -sC example.com nmap --script http-enum example.com
扫描器的优点是速度快,能快速发现常见漏洞,覆盖面广,能测试很多点,标准化,结果可重复。
但扫描器也有缺点:只能发现已知漏洞模式,对逻辑漏洞、业务漏洞无效,误报率高,可能被WAF拦截。
选择扫描器需要考虑多个因素:目标类型(不同类型的系统适合不同的扫描器),测试阶段(不同阶段用不同的工具),预算(商业工具功能更强,但需要付费)。
建议是:初期信息收集用Nmap、Nikto,深度测试用Burp Suite,快速扫描用OWASP ZAP。

浏览器开发者工具是手工测试的重要工具,可以分析前端代码,调试JavaScript,查看网络请求,修改DOM。
实战技巧包括:查看源码(在Elements中查看HTML,在Sources中查看JavaScript,在Network中查看网络请求),修改代码(在Console中执行JavaScript,在Sources中修改代码(临时)),分析请求(在Network中查看所有请求,可以修改请求重发)。
命令行工具也是渗透测试的重要工具。
curl可以发送HTTP请求:
|# GET请求 curl https://example.com/api/users # POST请求 curl -X POST https://example.com/api/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"123456"}' # 带Cookie curl -b "sessionid=abc123" https://example.com/profile
wget可以下载文件:
|wget https://example.com/file.txt
除了Burp Suite,还有其他代理工具可以使用。OWASP ZAP是免费开源的工具,功能类似Burp Suite。mitmproxy是命令行代理,适合自动化场景。Charles是商业工具,界面友好,功能强大。
本节我们一起探索了各类Web渗透测试工具的用法。无论是功能强大的Burp Suite,还是高效的自动化扫描器(如OWASP ZAP、Nikto、Nmap),又或者是灵活的手工调试技巧(利用浏览器开发者工具、命令行工具和多种代理工具)——这些都是渗透测试中的好伙伴。 每种工具有各自的专长,自动化工具可以帮你快速扫清常见风险,但手工验证和分析则是发现深层次问题的关键。
在接下来的内容里,我们会进一步探讨如何把自动化和手工测试相结合,让你的测试既高效又细致。其实,灵活运用工具,找到适合自己的方法,远比死记硬背各种功能更重要。
最后想提醒大家,工具只是帮你打开大门的钥匙,真正的本事在于对原理的理解与实践。别把希望都寄托在工具上,多锻炼手工测试和独立思考能力,才能成为优秀的渗透测试工程师。