龙空技术网

报错注入

猪口朋也Owen 37

前言:

目前同学们对“mysql单引号报错”可能比较注意,大家都想要剖析一些“mysql单引号报错”的相关知识。那么小编也在网上网罗了一些对于“mysql单引号报错””的相关内容,希望看官们能喜欢,我们一起来了解一下吧!

有时为了方便开发者调试,有的网站会开启错误调试信息,部分代码如sql3.php所示。

此时,只要触发SQL语句的错误,即可在页面上看到错误信息,见图1。这种攻击方式则是因为MySQL会将语句执行后的报错信息输出,故称为报错注入。

图1

通过查阅相关文档可知,updatexml在执行时,第二个参数应该为合法的XPATH路径,否则会在引发报错的同时将传入的参数进行输出,如图2所示。

图2

利用这个特征,针对存在报错显示的例子,将我们想得到的信息传入updatexml函数的第二个参数,在浏览器中尝试访问链接?id=1'or updatexml(1,concat(0x7e,(select pwd from wp_user)),1)%23,结果见图3。

图3

另外,当目标开启多语句执行的时候,可以采用多语句执行的方式修改数据库的任意结构和数据,这种特殊的注入情况被称为堆叠注入。

部分源代码如sql4.php所示。

此时可在闭合单引号后执行任意SQL语句,如在浏览器中尝试访问?id=1%27;delete%20%20from%20wp_files;%23,结果见图4,删除了表wp_files中的所有数据。

图4

根据获取数据的便利性,注入技巧的使用优先级是:UNION注入>报错注入>布尔盲注>时间盲注。

堆叠注入不在排序范围内,因为其通常需要结合其他技巧使用才能获取数据。

标签: #mysql单引号报错