游客发表

Web安全攻防作者

发帖时间:2026-10-17 04:46:01

```html

《Web安全攻防》出版三年,全攻我收到最多的防作读者反馈是:“书里的漏洞复现不出来。”这让我意识到,全攻很多书只教人用现成工具,防作却忘了解释漏洞为什么存在。全攻比如SQL注入,防作工具跑一遍能出结果,全攻但换个环境就失效。防作真正要理解的全攻是,数据库如何解析SQL语句,防作以及应用程序如何拼接用户输入。全攻

写这本书之前,防作我在乙方做渗透测试。全攻有一次客户要求测试一个老旧系统,防作登录框过滤了单引号,全攻但没过滤反斜杠。我输入 admin\ 加空格,后端拼接后变成 admin\ ,转义了空格,绕过了检测。这种细节,工具不会告诉你。书里第4章专门讲了“转义与编码的博弈”,用了17个真实案例,从PHP的addslashes到Java的PreparedStatement,每个都配了可运行的Docker环境。

XSS也一样。很多教程只讲 <script>alert(1)</script>,但现代浏览器早就不执行这种简单payload了。我测试过一个CMS,输入 <img src=x onerror=alert(1)> 被过滤,但换成 <svg/onload=alert(1)> 就成功了。原因在于过滤规则只匹配了img标签,没考虑svg。书里第7章整理了12种绕过WAF的向量,包括大小写混淆、HTML实体编码、以及利用浏览器解析差异。

CSRF更有意思。很多人以为加个token就安全了,但token如果放在URL里,还是会泄露。我见过一个电商网站,token放在GET参数中,结果被Referer头带到了第三方统计脚本。书里第9章讲了一个案例:攻击者通过论坛发帖,诱导用户点击链接,链接里包含用户自己的token——因为token在URL里,用户复制链接分享时就把自己卖了。防御方案不是简单加token,而是用SameSite Cookie加双重提交。

文件上传漏洞,书里第11章开头就写了一个真实故事:某政府网站允许上传图片,但只检查Content-Type。攻击者上传一个 .php 文件,把Content-Type改成 image/jpeg,服务器就放行了。更离谱的是,上传目录还能直接访问。我后来发现,很多开发人员以为前端JS验证就够了,但抓包改一下就能绕过。书里给了三种防御:白名单扩展名、重命名文件、以及把上传目录放到Web根目录之外。

SSRF我花了整整一章。因为云环境普及后,SSRF从“读内网”变成了“读元数据”。比如AWS的 169.254.169.254,能拿到临时凭证。我测试过一个在线PDF生成服务,它接受URL参数,我输入 http://169.254.169.254/latest/meta-data/,直接返回了IAM角色的密钥。书里第14章详细讲了如何用DNS重绑定绕过IP限制,以及为什么用黑名单过滤 127.0.0.1 没用——因为还有 0.0.0.0、127.1、以及十进制IP。

反序列化漏洞,Java和PHP的利用链完全不同。书里第16章没有堆砌 gadget 链,而是从 readObject 方法讲起,解释为什么 InvokerTransformer 能执行命令。我画了一张调用栈图,从 ObjectInputStream 到 Runtime.exec,每一步都标了触发条件。读者反馈说,看完终于明白ysoserial的payload为什么长那样。

最后说防御。书里第18章没有列一堆“最佳实践”,而是讲了一个失败案例:某公司用了WAF、RASP、代码审计,还是被入侵了。原因是运维把测试环境的数据库密码设成了 123456,而测试环境暴露在公网。安全不是堆产品,是理解每个环节的信任边界。我写这本书,就是想让大家少走弯路——工具会过时,但漏洞的原理不会。

```

    热门排行

    友情链接