0x5E5B7D7E的SQL意义是什么?

时间:2010-10-20 02:17:53

标签: sql security sql-injection

查看一些apache日志,我会多次遇到以下模式(URL解码):

GET /foo.php?id=1 and union select 0x5E5B7D7E,0x5E5B7D7E,0x5E5B7D7E,... --

显然这是一次SQL注入尝试。但为什么上面显示的常数?我看不出它有多么特别重要,虽然看起来很频繁。

对于它的值,上面的常量映射到以下ASCII字符:“^[}~”或“~}[^”如果您反转字节顺序。十进制值为1,583,054,206,八进制为013626676576。代码似乎没有映射到有用的x86指令序列。

谷歌搜索这个数字只是揭示了在其他网站上使用相同的SQL注入攻击的残余尝试 - 没有关于攻击本身的信息。

任何人都有见解?

1 个答案:

答案 0 :(得分:8)

此值是唯一标识符。如果页面上出现值“^[}~”,那么机器人知道你很容易受到sql注入的攻击,就好像值“0x5E5B7D7”一样,那么你的sql server就没有解释它。这个SQL注入测试可能只用一个0x5E5B7D7E开始,然后继续预定义的数量。这是因为使用union选择union必须返回与要附加的select相同数量的列,并且bot必须强制使用此值。

请注意,此测试不适用于盲sql注入,因为值“^[}~”将不可见。 mysql的blind sql injection test会向sleep(30)BENCHMARK(5000000,md5(1337))注入一个电话。这将导致页面加载几秒钟,从而表示正在执行此sql代码。