为什么说是安全缺陷不说是漏洞?因为不是沸腾展望新闻多媒体系统本身的代码问题,问题出在他们使用的zonGG广告系统上,所有版本都忠心耿耿的使用这个系统,都什么年代了,还用这玩艺,呵呵,不多说了,看代码吧:
zongg/login.asp
----------------------------------------------------------------------------------------------------------
<!--#i nclude 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内容为
----------------------------------------------------------------------------------------------------------
<!--#i nclude 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------------------------------------------ |