我刚看到这个出现在我们的请求日志中.他们想要实现什么目标?
完整的请求字符串是:
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注入的方法.
该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
| 归档时间: |
|
| 查看次数: |
15474 次 |
| 最近记录: |