SQL注入?CHAR(45,120,49,45,81,45)

roo*_*roo 31 sql-injection

我刚看到这个出现在我们的请求日志中.他们想要实现什么目标?

完整的请求字符串是:

properties?page=2side1111111111111 UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45) -- /*
Run Code Online (Sandbox Code Playgroud)

编辑:由于谷歌搜索没有返回任何有用的东西,我想问那些遇到同样事情的人.

You*_*nse 19

这只是注射测试.如果攻击者可以在输出中看到xQ,那么他们就会知道注入是可能的.

此特定查询没有"风险".

开发人员不应该注意任何注入机制,格式或含义 - 这些都不是他的事.

所有无限次注入只有一个原因 - 格式不正确的查询.只要您的查询格式正确,就无法进行SQL注入.专注于您的查询而不是SQL注入的方法.

  • "开发者不应该注意任何注射机制,形式或含义 - 这些都不是他的事." - 你能详细说明吗?对我来说,听起来我根本不应该关心SQL注入.或者将我所有的信任放在我使用的任何框架中. (2认同)

Gan*_*h S 7

Char()函数将每个值解释为整数,并根据这些整数的代码值给出字符返回一个字符串.使用Char(),跳过NULL值.该功能在Microsoft SQL Server,Sybase和MySQL中使用,同时CHR()由RDBMS使用.

Char()当(例如)addslashes()将PHP用作SQL查询中的预防措施时,SQL的功能会派上用场.使用Char()删除了注入查询中引号的需要.

一些易受SQL注入使用的PHP代码的示例Char()看起来类似于以下内容:

$uname = addslashes( $_GET['id'] );
$query = 'SELECT username FROM users WHERE id = ' . $id;
Run Code Online (Sandbox Code Playgroud)

虽然addslashes()已经使用,但脚本无法正确清理输入,因为没有尾随的引号.这可以使用以下SQL注入字符串来加载/etc/passwd文件:

资料来源:http://hakipedia.com/index.php/SQL_Injection#Char.28.29

  • @paxdiablo-公平点,讨论是错误的词。我提出了这个问题,因为我不知道此查询要做什么,而google没有答案。我知道,如果这很重要,那么SO是获得答案并获得最大影响的最佳位置。 (2认同)