去年我帮朋友看一个刚上线的何查电商站,首页加载挺快,找网站漏界面也干净。何查但顺手在URL后面加了个单引号,找网站漏页面直接返回了500错误,何查还带出了半截SQL语句。找网站漏这就是何查典型的SQL注入点,前后不到十秒。找网站漏很多漏洞根本不需要什么高深工具,何查关键是找网站漏你得知道往哪儿戳。
查找漏洞的何查第一步,是找网站漏搞清楚网站有哪些“入口”。别一上来就想着扫端口、何查跑字典,找网站漏那效率太低。何查打开浏览器,按F12,看网络请求。每个表单、每个URL参数、每个Cookie,都是潜在入口。比如一个登录框,用户名和密码字段,你试试输入 admin' -- 或者 ' or 1=1 --,看看返回什么。如果报错信息里出现数据库关键字,基本就有戏。我见过一个站,登录失败时提示“用户名不存在”,但输入 admin' 却变成“数据库错误”,这等于告诉你注入点就在用户名上。
手动测试比自动化工具靠谱。工具像sqlmap、Burp Suite确实能省事,但它们会发大量请求,容易触发WAF或者把服务器搞挂。我习惯先用浏览器插件,比如HackBar,快速改参数。比如一个商品页,URL是 product.php?id=10,你改成 id=10 and 1=1 和 id=10 and 1=2,看页面返回是否不同。如果不同,说明id参数没过滤。接着试 id=10 union select 1,2,3--,看回显位置。这一步别急,慢慢调列数,直到页面正常显示数字,那就是注入点。
XSS(跨站脚本)更简单。找个搜索框,输入 <script>alert(1)</script>,如果弹窗,说明存在反射型XSS。别小看这个,去年某政府站就被我用这招测出来,后来他们修复了。存储型XSS要稍微绕一下,比如在评论里提交 <img src=x onerror=alert(1)>,然后刷新页面看是否执行。有些站会过滤 script 标签,但 onerror 这种事件属性经常漏掉。
文件上传漏洞也常见。找个上传头像的地方,传个 .php 文件,如果直接返回路径且能访问,那就是大问题。但很多站会检查后缀,这时候试试 .php.jpg 或者 .phtml,或者改Content-Type为 image/jpeg。我遇过一个站,前端校验后缀,后端只检查MIME类型,把 shell.php 的Content-Type改成 image/png 就绕过了。上传成功后用菜刀连上去,整个服务器就归你了。
逻辑漏洞容易被忽略,但危害不小。比如密码重置功能,正常流程是发邮件带token。你抓包看看token是不是可预测,或者能不能直接改用户ID。有次我测试一个站,重置密码时把 user_id=123 改成 user_id=124,结果直接重置了别人的密码。还有支付漏洞,把商品数量改成负数,或者把价格改成0.01,看订单是否成立。这些不需要任何技术工具,纯靠观察和推理。
别忘了目录遍历和敏感文件。在URL后面加 /../ 试试,或者直接访问 /.git/config、/backup.zip、/phpinfo.php。我见过一个站,根目录下放着 www.zip,下载下来全是源码,数据库密码就在配置文件里。还有 robots.txt,里面经常写着 Disallow: /admin/,等于告诉你后台地址。
最后说一句,别拿别人的站练手。找个自己搭的靶场,比如DVWA、Pikachu,或者用Docker跑个Vulhub。真实站点测试前,务必拿到书面授权。否则,你查漏洞的行为本身,就是违法。
```