mysql报错注入函数

发布时间: 2023-11-21 11:34 阅读: 文章来源:1MUMB1882PS

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

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

图1

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

图2

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

图3

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

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

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

图4

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

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

•••展开全文
相关文章