游客发表
Acunetix 的扫描扫描结果里,最容易被忽略的扫描是“已确认”和“待验证”之间的灰色地带。上周帮一个客户看他们电商后台的扫描扫描报告,高危漏洞列了 17 个,扫描SQL 注入占 6 个。扫描点开详情,扫描有 4 个的扫描 payload 里带着 ' OR 1=1--,但响应时间只有 12ms,扫描返回页面大小和正常请求一模一样。扫描这种八成是扫描误报——WAF 把请求拦了,Acunetix 却把拦截页面的扫描特征当成了注入成功的证据。
Acunetix 的扫描爬虫机制决定了它扫得深不深。默认配置下,扫描它只跟 <a href> 和 <form action>,扫描对 JavaScript 动态生成的扫描链接基本不碰。我见过一个用 Vue 写的后台,菜单全是 router.push 跳转,Acunetix 扫了 40 分钟只爬到 3 个页面,报告里干净得很。后来手动把 sitemap 导进去,漏洞数量翻了四倍。所以拿到扫描任务先别急着点“开始”,去 Target Settings 里把“Scanning Mode”调成“Heuristic”,再把“Crawl”里的“Maximum crawl depth”从默认的 5 改成 10,能多挖出不少东西。
认证扫描是个坑。很多站点登录后有 CSRF token 或者动态 session,Acunetix 的“Login Sequence Recorder”录一遍不一定管用。有个客户用短信验证码登录,录了三次都失败,最后只能把扫描器 IP 加进白名单,临时关掉验证码。更稳的办法是抓一个已登录的 Cookie,在“HTTP Authentication”里填进去,但得注意 Cookie 过期时间——Acunetix 扫大站可能跑两三个小时,中途 session 失效了,后面扫的全是登录页,报告里一堆“Authentication required”的误报。
关于漏洞验证,别全信“High”标签。Acunetix 对 XSS 的判定有时候过于敏感。比如它往搜索框里塞 <script>alert(1)</script>,页面原样返回了,但 Content-Type 是 application/json,浏览器根本不会执行。这种在报告里标成“High”,实际风险为零。反过来,有些“Medium”的漏洞才要命——比如目录遍历,Acunetix 只试了 ../../etc/passwd,没试 URL 编码变体,你手动补一个 %2e%2e%2f 可能就真读出来了。
扫描速度别拉满。Acunetix 默认并发 20 个线程,小站直接被打挂。有次扫一个政府网站,刚跑 5 分钟运维电话就来了,说服务器负载飙到 80。后来把“Scan Speed”调成“Slow”,同时把“Maximum concurrent requests”降到 5,虽然多花了一倍时间,但至少没影响业务。另外记得在“Scan Schedule”里避开业务高峰,凌晨 3 点跑最稳妥。
最后说报告。Acunetix 生成的 PDF 花里胡哨,但给开发看的应该是“Developer”格式的 XML 或者 CSV。里面每一条漏洞都带 affects_url 和 request 字段,直接导入 Jira 或者禅道,省得人工复制。有个小技巧:在“Report”里勾选“Generate reports for all scan types”,把“Scan”和“Development”两份都导出来,前者给管理层看趋势,后者给开发修代码。别指望一个报告走天下。
友情链接