点击题目链接,发现页面代码,根据最后一行的提示当id=1000时返回flag值,但是前面if判断intval(id)的值不得超过999,故需要对其进行绕过:
需要注意的是intval对字符串的转换成数字是从左边第一位开始,直到遇到非整数的字符。而我们发现过滤条件将取反也过滤掉了。那么我们可以采用其他的方式绕过if判断,如使用其他进制表示1000,在sql查询时当遇到0b 开头的数字将会以二进制的形式进行解析
构造查询语句 ?id=0b001111101000 点击提交,发现获得flag值:
点击题目链接,发现页面代码,根据最后一行的提示当id=1000时返回flag值,但是前面if判断intval(id)的值不得超过999,故需要对其进行绕过:
需要注意的是intval对字符串的转换成数字是从左边第一位开始,直到遇到非整数的字符。而我们发现过滤条件将取反也过滤掉了。那么我们可以采用其他的方式绕过if判断,如使用其他进制表示1000,在sql查询时当遇到0b 开头的数字将会以二进制的形式进行解析
构造查询语句 ?id=0b001111101000 点击提交,发现获得flag值: