游客发表
去年冬天,全渗我帮一个朋友看他的全渗小电商站。打开首页,全渗F12,全渗Network面板一刷——用户登录接口直接返回了全部订单数据,全渗包括手机号和地址。全渗他愣了半天,全渗说“这接口前端没用到啊”。全渗问题就在这儿:前端没用到,全渗不代表攻击者不知道。全渗
Web渗透的全渗核心,不是全渗把Nmap、Burp、全渗sqlmap全跑一遍,全渗而是全渗找到那些“本不该存在但确实存在”的信任关系。比如后端信任前端传来的user_id,数据库信任拼凑出来的SQL语句,服务器信任上传文件的Content-Type。每一条信任链,都是一扇虚掩的门。
很多人一上来就dirsearch狂扫目录。我习惯先看robots.txt和sitemap.xml,再翻JS文件。一个真实案例:某后台的main.js里藏着/api/v1/debug?token=,token写死在代码里。直接访问,数据库配置全出来了。这种漏洞扫描器扫不到,因为路径不在字典里。
信息收集的颗粒度决定后续效率。子域名、C段、指纹、历史快照、GitHub泄露——这些老生常谈的东西,真正做全的人不多。我见过一个站,主域名防护严密,但test.xxx.com跑着同样的代码,数据库还是测试库,弱口令admin/123456直接进。
SQL注入被说了二十年,但2024年我还在SRC里挖到过。不是' or 1=1那种,而是order by后面的参数、limit后面的数字、JSON字段里的键名。一个电商筛选接口,sort=price desc,加个逗号报错,extractvalue直接带出数据。WAF只拦了union select,没拦报错函数。
盲注依然好用。时间盲注配合sleep(),布尔盲注看页面长度差异。工具跑得慢?手注substr(database(),1,1)逐字猜,一个库名半小时。但值得——因为自动化工具的特征太明显,手注反而能绕过一些基于频率的拦截。
黑名单禁了.php,那就传.phtml、.php5、.phar。禁了后缀,那就改Content-Type为image/jpeg,再配合文件头GIF89a。还不行?找解析漏洞:Apache的.php.xxx、Nginx的/1.jpg/x.php、IIS的;.php。上传点往往不止一个——头像、附件、导入Excel、甚至日志文件。
有个细节:很多站上传后返回的路径是/upload/2024/xx/xxx.jpg,但实际文件在/upload/2024/xx/xxx.jpg.php。因为后端保存时用了move_uploaded_file,文件名拼接了原始名。这种逻辑漏洞比解析漏洞更常见。
越权、支付篡改、验证码复用、密码重置——这些不需要高深技术,但危害直接。一个投票站,vote.php?id=123,改成id=124就能给对手刷票。一个商城,price=100改成price=0.01,订单照样生成。一个后台,user_id=1改成user_id=2,直接看别人订单。
我挖过最离谱的:密码重置接口,验证码是4位数字,但校验时只比较了前两位。输入1234和1299都能过。这种代码逻辑,扫描器根本发现不了,只能靠手工测。
XSS现在价值不如从前,但postMessage、WebSocket、Service Worker这些新API带来了新面。一个站用postMessage传用户数据,没校验origin,任意页面都能监听。CSRF也没死,只是从表单变成了fetch,配合SameSite=None的Cookie,照样打。
渗透测试的本质是理解业务逻辑,然后找逻辑的裂缝。工具是辅助,思路是核心。你不需要会写0day,只需要比开发者多想一步——他以为用户不会改这个参数,你就改;他以为前端校验够了,你就抓包;他以为内网安全,你就SSRF打进去。
最后说个习惯:每次测完,把请求和响应存下来,写个简单的Markdown笔记。下次遇到类似架构,直接翻笔记。渗透不是一次性买卖,是经验堆出来的直觉。
```友情链接