飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2022|回复: 0

突破权限继续挂马

[复制链接]

该用户从未签到

发表于 2008-3-1 11:30:54 | 显示全部楼层 |阅读模式
突破权限继续挂马
写这篇文章的目的主要是因为自己在为刚开的博客刷点流量时遇到了点困难,所以就花了点时间想了下这个问题,既然想了下,所以就干脆梳理出来写成文章,也许对刚刚接触这块的同志们会起到点作用吧。
首先讲一下挂马要挂到哪里。讲到挂马,很多人会不由自主的想到“首页挂马”,一想到首页就想到index.*文件了,当然这不失为一个好办法,首页的浏览量通常是最大的,但是这绝对不是一个最优的办法。也有的人说干脆批量挂马,针对这种思想我无任何话说。我们仔细想一想,哪个东西在网站出现的概率是最大的,呵呵当然是header了(网站的最顶部,通常用于放置logo等),其次便是foot和sidebar了,按照HTML的执行顺序(从上到下),最好的办法就是挂在header里面了,所以挂马时先针对网站的特点,找一个最好的对策来进行挂马。此外像global.*、config.*这类网页文件也是一个好地方,被其他网页调用的概率极大。

解决了挂马地方的问题后我们要着重讨论如何针对管理员设置的权限进行挂马,这些方法很多人应该都在用,我只是针对自己所学的知识进行梳理。一般来说挂马的方式有两种,一种是直接往要挂的网页文件里插入一个iframe标签,还有一种是用js的document.write写入一个iframe标签。我们首先讨论js挂马。js挂马最好的一个优点是隐蔽,因为管理员无法直接通过搜索找到iframe标签,而且我们可以针对插入的js代码进行加密,这样隐藏的效率就更高了。在这篇文章里我们并不是利用js的隐蔽性,而是它的自由性——js可以从任何一个可访问的网站被调用。在我昨天遇到的情况里就是利用这个办法。我想去挂对方的index.php和header.php两个文件,但是发现所以的php脚本文件都被设置了不可改权限,所以直接想改写该文件是不可能了,我只能通过其调用的文件进行挂马。通过阅读源代码,发现程序员调用了很多的js文件,所以我便一个个去找,然后找到两个没有被限定权限的js文件,其中一个文件是站长流量统计的,由于统计代码在整站都是会被调用的,结果改写了仅仅一个js文件,整个网站的所有网页都被挂上去了,而且其它子域的网页也被挂上,当然这几个域的网页是不在这台服务器上的,js的优点瞬间体现了出来。这也是利用了管理员的疏忽——只设定php文件的权限。

联想到我的实例,大家很容易想到类似的方式——css文件。css文件被调用的概率应该说比js还大,一个网站的模型一般只有一个,那么肯定有一个主要的css文件了,而css文件又具有执行js代码的能力,而且这种文件的权限更难被管理员关注到,隐蔽性也非常之好,所以其可行性最高了。css挂马的代码为

body{background:url(javascript:document.write("<iframe></iframe>"))}
代码可以有多种形式,具体大家自己去学习了

但是如果真个目录都被限制了呢,但是我们想到有一个目录一般来说是不会被限制写入权限的——img目录。假如说这个目录里面有flash文件的话,而且这个flash文件又是网站的顶部显示部分,那么我们便可以大喜了。我们可以将flash文件下载下来,然后编辑里面的代码,写入我们的挂马代码,然后替换掉原来的flash文件就行了。具体如何写代码就不讲了。再如果这个网站是一个图片类网站,我们找到某张被下载概率最大的图片,编辑它,插入我们的js代码(当然不是随便插代码就行的,随便插的话图片会无法显示),然后等用户在其它窗口打开图片时我们的js代码就执行了。但是这样的方式并不是很好,一个是窗口存活的时间短,还没等木马被下载窗口已经关闭了,还有一个是被打开的概率不是很大,太被动了。这只是一直思路而已

以上都是js或者类似js挂马的方式,大家还可以针对实际情况进行发散。下面是服务端脚本挂马了。最简单的就是看要挂的文件include了哪几个脚本文件,假如说被inlude的文件没有被设权的话可以插入我们的代码,比如PHP的话这样写

echo "<iframe ></iframe>";
一般来说像global、config这类的文件被其它网页include的概率大,但是像挂这类文件你需要十分小心,因为如果该文件或者include它的文件里面有header或者session操作的话很可能会导致错误,结果被管理员发现了。

但是如果php、asp这类文件像我遇到的情况被设置权限了呢?在php里有一个特性,.htaccess会覆盖apache的php.ini的设置,但是这个需要打开apache的AllowOverride All功能,但是这样对于我们来说太烦了。我们只要在这个网站里面找一下有没有.htaccess文件,如果有的话而且文件夹允许我们上传新的文件,那么我们很可能会成功了。具体的利用如下:

在我们电脑上添加一个.htaccess文件(需要dos下对txt文件重命名)
然后用记事本编辑它,写入如下代码

php_value auto_prepend_file "要include的文件名"
然后将这个文件和”要include的文件名”放到相应的目录下,这样该目录以及子目录都被会include该文件。在”要include的文件名”里可以这样写

<?  
ob_start();//这句话千万不能少,要不很可能会因为head和session而导致错误  
echo "<iframe></iframe>";  
?>




还有一种方法是直接通过数据库insert或者update一个框架。既然我们一般的入侵方式都是从数据库开始的,这种方式当然是很好的,就算管理员再怎么严格的设定硬盘权限,他也挡不住数据库里的内容。我们可以到首页看一下,找到一篇文章ID,然后update进去一个框架,具体如何update那是你自己的事情了呵呵。
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表