web5
这道题对于我来说就开始有点难度了,我是参考了评论区的大神评论才找到的思路,首先看题目
这道题需要使用GET方式传入num参数,如果num不是数字,则返回所传参数,如果num传入数字1的话,返回flag,这里需要说一下php的一些特点
PHP一个数字和一个字符串进行比较或者进行运算时,PHP会把字符串转换成数字再进行比较。
PHP转换的规则的是:
若字符串以数字开头,则取开头数字作为转换结果,若无则输出0。
在PHP中,== 会先进行类型转换,再进行对比,而===会先比较类型,如果类型不同直接返回不相等。
所以这道题只需要在数字1后面加入一个非数字的字符串就可以回显出来flag了,因为这既满足了第一个条件“非数字”,也满足了第二个条件“==1”
payload如下:
http://114.67.246.176:18258/?num=1------
**注:萌新第一次写write up,不足之处还请见谅,不对之处欢迎批评指正**