1.updatexml+concat
普通mysql数据库如下
现有如下sql查询命令
select username from user where userid=1 and updatexml(123,concat('~',(select database()),'~'),32142144);
执行结果如下
回显了数据库名 homework
这里首先用到了updatexml(目标xml文档,xml路径,更新的内容)函数
这只是一个普通的函数但是 updatexml函数具有查询功能 并且会再xpath处查询 你将语法构造错误 然后它就会将他查询的结果已报错的形式显示出来
然后说到concat函数(字符串1,字符串2,字符串。。。。) 在其中放入可执行函数会被执行,ps:需要用()将其包裹如下
查询了当前数据库名字和当前user的名字 中间加了一个字符2
所以对于刚才的updatexml的利用就解释的通了。updatexml主要的功能就是报错出需要的执行结果 ,concat函数执行主要的payload。