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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

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

完整的请求字符串是:

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) -- /*
提问于
用户回答回答于

这仅仅是针对注射的测试。如果攻击者可以在输出中看到xQs,那么他们会知道注入是可能的。

这个特定查询没有“风险”。

开发人员不应该注意任何注入机制,格式或含义 - 这些与他无关。

所有无限数量的注入只有一个原因 - 格式不正确的查询。只要你的查询格式正确,那么SQL注入是不可能的。专注于你的查询而不是SQL注入的方法。

用户回答回答于

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;

虽然addslashes()已被使用,但脚本无法正确清理输入,因为没有尾随引号。

扫码关注云+社区