如下所示的SQL Injection查询是什么意思?这将是什么答案

时间:2018-07-03 14:19:24

标签: sql sql-injection

 ' AND ascii(substring((SELECT concat(login,0x3a,password) from users limit 0,1),1,1))>96# 

我正在蜜蜂盒机器上工作,并练习盲目SQL注入。我知道ascii和substring的作用,也知道concat的作用,但是为什么我们必须将登录名和密码连接在一起,因为我们必须生成一个ascii字符?为什么最后要有1,1。

2 个答案:

答案 0 :(得分:0)

您可以在此处检查完整的ASCII代码:

https://www.ascii-code.com/

从网上可以看到,ASCII码96是

  

`

此后的任何字符(ASCII数大于96)都是有效的英文字符(小写),无论这些特殊符号如何,这意味着对于安全的登录用户而言,至少它应该是以这些字符开头的人名(小写)。

因此,您使用SUBSTRING(long_string,1,1)来获取连接的登录字符串的第一个字符,该字符串试图验证登录用户的帐户是否以英文字符(小写)开头

答案 1 :(得分:0)

它将尝试从名为“ users”的表的第一行中获取“ user”和“ password”,并在中间用冒号(dave:passw)合并它们,然后采用该字符的第一个字符,并测试第一个字符是小写字母还是字符{| }〜

不知道为什么这些信息对攻击者有用,但是有时候,尽管每项测试都是无关紧要的,但一连串的测试会增加信息。