关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客
0x01:考点速览
本题考察的是 PHP 代码审计,需要用到一些 PHP 的语言特性:
-
PHP == 弱类型比较:
-
在低版本的 PHP 中,当一个字符串和一个数字使用
==
进行比较时,PHP 会尝试将字符串转换为数字(如果字符串以数字开头的话),所以会出现纯字符串 == 0
与123你好 == 123
的情况。
-
0x02:Write UP
if($a==0 and $a)
,我们就可以使用字符串进行绕过(这里字符串为任意都可以,只要不以数字开头):
?a=hacker
if(is numeric($b))
和$b > 1234
,可以使用下面的语句进行绕过:
- // 9999h 在低版本 PHP 后端中会变为 9999 和 1234 比较,但 '9999h' 其本质又是字符串。
- ?b=9999h
所以结合上面的分析,我们最终的 Payload 为:
?a=hacker&b=9999h
评论记录:
回复评论: