前言:该漏洞已经提交
知识提要:常用报错注入语句updatexml(1,concat(0x7e,(database()),0x7e),1)
updatexml()参数格式:updatexml(xml_document,xpath_string,new_value)
第一个参数:XML的内容
第二个参数:是需要update的位置XPATH路径
第三个参数:是更新后的内容
updatexml()函数第一个和第三个随便写就行,我们报错注入利用的是第二个参数。0x7e的ascll解码后是符号 ~ 。concat是用来连接字符串。
concat(0x7e,(database()),0x7e)执行后得到:
~数据库名~
由于updatexml第二个参数需要的是Xpath格式的字符串,~数据库名~格式显然不符合。所以就会出现报错。
一次报错注入漏洞挖掘实战
1、来到登录页面,输入账号:1,密码:111111,点击登录,使用burpsuite抓取登录包
2、抓到的数据包如下:然后送到重发器
3、尝试在mobile参数后加单引号 ' ,点击发送数据包
4、看到如下返回包中提示sql语句查询出错,所以判断这里存在sql注入
5、没有回显位,但是有报错信息,所以使用报错注入。
构造语句:1' and updatexml(1,concat(0x7e,(database()),0x7e),1)#
6、点击发送数据包后,可以在响应包中看到爆出数据库名(这里就打码了)
最后,由于提交漏洞只需爆库名证明漏洞存在即可
所以到这里就结束了。