|
打开浏览器,注站输入一个网址,入靶页面弹出一个登录框。场网你随手敲进 SQL 注入靶场网站,注站说白了就是入靶故意留出漏洞的练习环境。它把真实 Web 应用里那些要命的场网注入点,原封不动地搬到一个安全沙箱里,注站让你随便折腾。入靶DVWA、场网sqli-labs、WebGoat、Pikachu,这几个名字搞安全的人基本都熟。其中 sqli-labs 最纯粹,整个站就干一件事:把注入玩出花来。从最简单的联合查询,到布尔盲注、时间盲注、堆叠注入、宽字节注入,几十个关卡排在那儿,像一本习题集。 我第一次搭 sqli-labs 是在一台旧笔记本上。PHP 5.6 加 MySQL,环境配了整整一个下午。Less-1 那关,源码里 靶场的设计逻辑其实很讲究。sqli-labs 的关卡不是随便堆的,它按注入类型和防御手段递进。Less-1 到 Less-4 练联合查询,Less-5 到 Less-6 逼你用盲注,Less-7 玩文件读写,Less-8 之后开始上布尔和时间盲注。到了 Less-11 以后,注入点从 GET 转到 POST,从数字型转到字符型,从单引号转到双引号、括号、反引号。每一关都在告诉你:过滤规则稍微变一点,注入姿势就得跟着换。 DVWA 又是另一种风格。它把难度分成 low、medium、high、impossible 四档。low 档的 SQL 注入页面,输入框里敲 有人觉得靶场里练出来的手艺,到了真实站点根本用不上。WAF、参数化查询、输入白名单,随便一个都能把注入挡在门外。这话对了一半。真实环境确实更复杂,但靶场训练的是思维模式:看到参数就想能不能闭合,看到报错就想能不能报错注入,看到时间延迟就想能不能盲注。这种条件反射式的敏感度,只有在靶场里反复捶打才能形成。 另一个容易被忽略的点是,靶场本身也在进化。早期的 sqli-labs 只跑在 PHP+MySQL 上,现在有人把它移植到 Java、Python、Node.js 环境。Pikachu 靶场甚至集成了 XSS、CSRF、文件包含、反序列化,SQL 注入只是其中一块。这种变化说明一件事:安全学习不再是单点突破,而是体系化对抗。 搭靶场的过程本身也有意思。你得装 Web 服务器、配数据库、调 PHP 版本。Windows 上跑 sqli-labs 经常遇到 最后说个细节。sqli-labs 的 Less-1 页面底部有一行小字:“Welcome Dhakkan”。Dhakkan 在印地语里是“笨蛋”的意思。作者大概是在自嘲,也可能是在提醒每一个来练手的人:别觉得自己聪明,SQL 注入面前,谁都可能是那个笨蛋。 |
