xx型(未知型)
xx型(未知型)
类似于黑盒测试
这完全取决于写代码那个程序员的个人习惯。
-
普通写法: 大部分教程或简单的代码里,程序员喜欢直接写
username = '$name'。所以用'就能闭合。 -
强迫症/规范写法: 有些程序员(或者某些框架自动生成的代码)觉得给变量加个括号包裹起来更“稳重”或者更好看,于是写成了
username = ('$name')。- 这就好比:有人送礼物直接用纸包(
'$name'),有人喜欢在纸包外面再套个盒子(('$name'))。 - 不管他包了几层,都要一层一层拆开。如果是纸包的,就撕纸(
');如果是盒子装的,就先撕纸再拆盒('))。
- 这就好比:有人送礼物直接用纸包(
“xx型”和“字符型”的本质区别,仅仅就是后台代码多裹了一层括号,导致你需要多一把剪刀(那个右括号 ))来修剪它。
所以后续的测试就只需要在前面加一个能完成闭合的东西就行,比如:
-1') or '1'='1' --

所以后面实战就是要做一个黑盒测试:
需要建立自己的“探针字典” (Fuzzing List)
既然是黑盒,就不能只试一个单引号 ' 就放弃。在实战中,大家都有一套自己的“探测连招”。
当遇到一个输入框,脑子里要瞬间弹出这张清单:
- 常规探测:
' (单引号),"(双引号) - 括号探测:
),)),'),"),')),")) - 逻辑探测:
and 1=1,and 1=2,or 1=1 - 注释探测:
--+,#,%23,;%00 - 特殊编码: 宽字节
%df', URL 编码%27
在 Pikachu 里学到的“xx型”其实就是模拟了实战的第一阶段。
-
阶段一:Fuzzing (模糊测试/探测)
- 动作: 把上面那张清单里的符号轮流输进去。
- 目的: 找出闭合符。比如你输
x') 报错了,输x') --正常了,你就知道:“哈!原来你是单引号加括号闭合!”
-
阶段二:Bypass (绕过防御)
- 动作: 你刚输了
union select,结果被 WAF (防火墙) 拦截了。 - 目的: 你得把空格换成
/**/,把union 换成uNion,通过“变形”来绕过安检。
- 动作: 你刚输了
-
阶段三:Exploit (利用)
- 动作: 既然探明了路,防御也绕过了,最后就是把
select user()发送过去拿数据。
- 动作: 既然探明了路,防御也绕过了,最后就是把
那么什么又是白盒测试呢?
- 黑盒测试: 你是玩家。你不知道机关怎么运作,只能这里点一下,那里踩一下,看门会不会开。
- 白盒测试: 你是开发者(或者拿到了开发者的图纸)。你直接看游戏的代码,发现第 10 行写着:“如果玩家同时按下 A 和 B,大门打开”。
定义: 白盒测试是指测试者完全知道系统的内部结构、算法逻辑和源代码。你不再关注“输入后输出了什么”,而是关注“代码在内部是怎么跑的”。
举个栗子:用白盒视角看刚才的“xx型注入”
刚才在做 Pikachu 的“xx型注入”时,为了试出那个括号 (',试了 x'、x")、x') 等好几次才蒙对。
如果是白盒测试,过程是这样的:
-
拿到源码: 你直接打开了
sqli_x.php这个文件。 -
定位代码: 一眼就看到了这一行核心代码:
$username =$
_GET['name'];
// 程序员写道:为了安全,我要给名字加个括号!
$sql = "select id, email from member where username = ('$username')"; -
瞬间秒杀: 看到
('$username')的瞬间,你不用测试也不用猜,大脑里直接生成 Payload:“哦,用了单引号和括号包围,那我直接输入
x') 闭合,后面加--注释就行了。”
这就是白盒测试的威力:精准打击,一击必杀。
“代码那么多,我怎么看?” 白盒测试不是让你当小说从第一行读到最后一行,而是通过 “追踪数据流” 。
我们有一个核心公式:Source (输入点) + Sink (危险函数) = 漏洞
-
Source(污点源): 任何黑客能控制输入的地方。
- 比如:
$_GET,$_POST,$_COOKIE。
- 比如:
-
Sink(汇聚点/危险函数): 会执行坏操作的地方。
- 比如 SQL 里的
mysql_query(),命令执行里的system()。
- 比如 SQL 里的
-
审计过程:
- 我看到代码里接了一个参数
$id = $_GET['id'](Source)。 - 我追踪这个
$id变量去了哪里。 - 我看它中间有没有被“清洗”(比如有没有被
intval()强转成数字,或者被防火墙过滤)。 - 如果它“干干净净”地流到了
mysql_query($id)(Sink),那么恭喜你,发现一个 SQL 注入漏洞!
- 我看到代码里接了一个参数

浙公网安备 33010602011771号