ForWork.Net

欢迎参观ForWork.Net,快乐工作·快乐生活!你我的快乐生活:)

« joekoe CMS 4.0 两个漏洞(上传漏洞+注入)爱情衡器的抉择指向—电影《爱情没有顺风车》赏析 »

沸腾展望新闻多媒体系统安全缺陷(通杀目前所有版本)

沸腾展望新闻多媒体系统安全缺陷(通杀目前所有版本)

转载请保留版权标记,谢谢
-------------------------------by 大蝉@http://blog.gsnsg.com/weblog/usual/ QQ:271607603------------------------------------------

为什么说是安全缺陷不说是漏洞?因为不是沸腾展望新闻多媒体系统本身的代码问题,问题出在他们使用的zonGG广告系统上,所有版本都忠心耿耿的使用这个系统,都什么年代了,还用这玩艺,呵呵,不多说了,看代码吧:

zongg/login.asp

----------------------------------------------------------------------------------------------------------

<!--#include file="config.asp"-->
<%
adsconn.open adsdata
dim adssql,adsrs,admname,admpass
admname=trim(request("username"))
admpass=trim(request("password"))
set adsrs=server.createobject("adodb.recordset")
asql="select * from admin where admin='"&admname&"'"
adsrs.open asql,adsconn,1,1
if adsrs.bof and adsrs.eof then
%>
无此管理员!
<%
else
if admpass=adsrs("passwd") then
session("masterlogin")="superadvertadmin"
session("admname")=adsrs("admin")
session("aid")=adsrs("aid")
Response.Redirect "index.asp"
adsrs.close
set adsrs=nothing
adsconn.close
set adsconn=nothing
else
%>
密码错误!
<%
end if
end if
%>

----------------------------------------------------------------------------------------------------------

很明显admname没有做过滤,并且由于对admname是否存在做了判断,返回值不同,所以可以进行注入

这个漏洞只能得到广告系统管理员密码,但是只能登陆广告系统后台,不能登陆沸腾后台,有人会说这有并没有什么危害,事实并非如此,广告后台可以添加广告,而广告是纯JS执行,没有进行任何过滤,写什么JS就执行什么,广告代码在所有页面被调用,这就形成了严重的全站范围的跨站漏洞,拿管理员帐号,改主页,挂马,想做什么做什么,危害大不大?

建议修补方法

修改zongg/login.asp内容为

----------------------------------------------------------------------------------------------------------

<!--#include file="config.asp"-->
<%
adsconn.open adsdata
dim adssql,adsrs,admname,admpass
DeInj_set = "'|;|and|(|)|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare"
DeInj_code = split(DeInj_set,"|")
admname=trim(request("username"))
admpass=trim(request("password"))
For DeInj_no=0 To Ubound(DeInj_code)
       If Instr(LCase(admname),DeInj_code(DeInj_no))<>0 Then
             %>
              非法参数!
             <%
            Response.End
       end if
next
set adsrs=server.createobject("adodb.recordset")
asql="select * from admin where admin='"&admname&"'"
adsrs.open asql,adsconn,1,1
if adsrs.bof and adsrs.eof then
%>
无此管理员!
<%
else
if admpass=adsrs("passwd") then
session("masterlogin")="superadvertadmin"
session("admname")=adsrs("admin")
session("aid")=adsrs("aid")
Response.Redirect "index.asp"
adsrs.close
set adsrs=nothing
adsconn.close
set adsconn=nothing
else
%>
密码错误!
<%
end if
end if
%>

----------------------------------------------------------------------------------------------------------

 利用工具+录象 http://bbs.0kee.com/job.php?action-download-pid-tpc-tid-203-aid-86.html

转载请保留版权标记,谢谢
-------------------------------by 大蝉@http://blog.gsnsg.com/weblog/usual/ QQ:271607603------------------------------------------

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense

Copyright 2006-2008 ForWork.Net 【快乐工作·快乐生活】 Rights Reserved.