上周IT小张在给公司打印机升级固件时,发现后台管理页面居然能用默认密码 admin/admin 直接登录——这明显是个风险点。但他没急着发告警邮件,而是先做了三件事:确认路径可访问、尝试基础命令执行、抓包看有没有明文传参。最后才截图留证,找厂商要补丁。这种不盲信、不跳步的验证方式,才是办公网络日常运维里最管用的安全漏洞验证方法。
别一看到报错就喊“中招了”
很多同事扫完Nessus或绿盟报告,看到“Apache Tomcat AJP文件读取漏洞(CVE-2020-1938)”就以为服务器肯定被黑了。其实得动手试:用curl发个特定AJP包,看响应里会不会吐出web.xml源码。光靠扫描器打钩是不算数的。
验证第一步,永远是复现。比如某次收到“OA系统登录页存在SQL注入”的提示,直接在用户名框输:' OR '1'='1,如果页面跳转到首页或弹出数据库错误,再换' AND SLEEP(3)--测响应延迟——有延时,基本坐实。
几个办公场景里常用的验证动作
查弱口令:不用爆破工具,先试试常见组合。财务系统后台地址是 /admin/login.jsp?试试 user/password、admin/123456、guest/guest。能进就记下,别继续点菜单,截图关掉。
验文件上传:上传一张改后缀的图片,比如把 shell.php 改成 shell.jpg,上传成功后,手动拼URL访问 /upload/shell.jpg。如果返回PHP代码执行结果(比如 phpinfo()),说明校验没做严。
测接口越权:用自己的账号调用员工信息接口 /api/v1/user/1024,拿到数据后,把ID改成1001再请求一次。如果返回了别人手机号和身份证号前四位,就是典型的水平越权漏洞。
简单但关键的验证技巧
用浏览器开发者工具的Network面板,刷新一个可疑页面,重点看XHR请求里有没有带敏感参数,比如 ?token=xxx&role=admin。把role改成superadmin重发,看返回是否不同。
遇到JS加密的登录请求,别硬啃算法。打开Console,搜 password 或 encrypt,常能定位到加密函数,打断点后把明文密码打印出来,再拿去Postman里手动构造请求。
有些漏洞得绕过前端限制。比如导出Excel按钮灰掉了,F12删掉按钮上的 disabled 属性,或者直接在Console里执行:
document.getElementById("exportBtn").click();看后台是否真做了权限拦截。验证不是为了炫技,是让问题说得清、改得准。你拍下的那个返回403的截图,比十行扫描报告更有说服力。