怎么查网站漏洞
上个月帮朋友查一个商城网站,查网后台登录框居然能直接输SQL语句。站漏我输入' or 查网1=1 --,回车,站漏管理员面板就弹出来了。查网这破洞从2015年挂到现在,站漏中间换了三任运维愣是查网没人发现。查漏洞这事,站漏真不是查网高深技术活,关键看你有没有耐心把每个输入框都当敌人审一遍。站漏
先从最笨的查网地方开始。打开网站,站漏按F12,查网看网络请求。站漏别急着点来点去,查网先看静态资源里有没有奇怪的东西。去年我审计某政府网站,发现他们引了个/backup.zip,直接下载到数据库备份文件。这种低级失误比想象中普遍——很多人以为备份文件放服务器根目录就安全,殊不知搜索引擎早把路径索引了。
登录功能永远是重灾区。别光试弱密码,要观察响应时间。如果输入admin'比输入admin慢0.3秒,基本能断定存在基于时间的盲注。更野的路子:把密码框改成text类型,直接看前端JS有没有限制长度。有些开发图省事,把验证逻辑全写在前端,后端连参数校验都省了。
文件上传接口更要盯紧。拿个图片马改后缀名,先试.php,被拦就试.php5、.phtml,再不行就双写.pphphp。我碰到过最离谱的案例,对方过滤了php字符串,但没过滤大小写,用.pHp就绕过去了。上传成功后别急着访问,先看返回的路径是相对还是绝对,有些系统把文件存在OSS上但没配MIME类型检测,直接当HTML解析。
别忽略那些不起眼的角落。比如忘记密码的验证码逻辑,有些网站验证码存在Cookie里,而且不绑定会话。把Cookie里的验证码值改掉,就能绕过校验。还有搜索功能,试试%和_通配符,如果报错信息里带SQL片段,说明存在注入点。去年挖某电商平台,就是在商品排序参数里加了extractvalue(1,concat(0x7e,database())),报错信息直接吐出版本号。
工具只是辅助,别迷信自动化扫描器。AWVS扫不出逻辑漏洞,比如越权——把URL里的user_id=1001改成1002,看能不能看到别人订单。这种测试必须手动测,而且要换着浏览器试。有些网站对Chrome做了防护,但用Edge访问就门户大开。
查漏洞最忌讳的是心浮气躁。我见过新手用Burp Suite抓包,看到请求头里有Authorization: Bearer就兴奋,结果那是JWT的固定格式。真正的漏洞往往藏在业务逻辑的缝隙里——比如支付流程中,先创建订单获取价格,再修改价格参数提交。这种测试需要你完全理解业务闭环,而不是机械地对着OWASP清单打勾。
最后说句实在话:查漏洞这活儿,七分靠细心,三分靠经验。你不需要成为黑客,但得比开发多想一步——他们偷懒的地方,就是漏洞藏身之处。把每个参数都当变量,把每个响应都当线索,用不了半年,你也能一眼看出哪些网站是纸糊的。
