先解释一下updatexml参数的用法
updatexml():更新xml文档的函数
语法:updatexml(目标xml文档,xml路径,更新的内容)
第二个参数 xml路径 是可操作的地方,xml文档中路径是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。
正常查询 第二个参数的格式为 /xxx/xx/xx/xx ,即使查询不到也不会报错
在cmd中写的时候,下列图并没有报出我们想要的xml路径错误(这是为什么?)
原因:是因为updatexml(1,database(),1)这种书写的语法格式是正确的,所以不会爆出语法错误,在SQL注入中无法得到想要的库、表、列名(为了得到他们,应该怎样书写呐?)
解决办法:
这样就爆出了数据库名,注意点:updatexml(1,concat(0x7e,database(),0x7e),1;
需要在红色位置写上0x7e(十六进制为字符~)
updatexml只有十六个字节,所以查找时候,需要sbustring()函数,
可以参考下面链接
Sqli-labs Less-6 使用updatexml()函数进行报错注入 - zhengna - 博客园 (cnblogs.com)https://www.cnblogs.com/zhengna/p/12575676.html