实验链接
phpok是一套采用PHP+MySQL开发的企业网站系统,其4.8.338及4.9.015版本存在任意文件上传漏洞。通过实验了解phpok任意文件上传漏洞的成因,掌握基本的漏洞利用方法。
链接:http://www.hetianlab.com/expc.do?ce=e987f417-cc29-47ff-a5bf-8aaceadd11b2
实验简介
实验所属系列: Web安全
实验对象: 本科/专科信息安全专业
相关课程及专业: 计算机基础、计算机网络、PHP
实验类别: 实践实验类
预备知识
-
漏洞信息
漏洞名称:phpok任意文件上传
漏洞编号:CVE-2018-12491
漏洞描述:phpok是一套采用PHP+MySQL开发的企业网站系统,其4.8.338及4.9.015版本存在任意文件上传漏洞,攻击者可利用漏洞上传任意文件,获取网站权限。
危害等级:高危
漏洞修复:对上传类型后缀进行过滤;升级phpok为最新版本。
-
文件上传漏洞相关实验:文件上传实战靶场Upload-labs(实验稍后添加)
实验目的
通过实验了解phpok任意文件上传漏洞的成因,掌握基本的漏洞利用方法。
实验环境
-
操作系统:Windows10、ip:10.1.1.79
-
工具:phpStudy、Firefox、sublime text、burpsuite、中国菜刀
实验步骤
步骤一
任务描述:phpok_4.8.338任意文件上传漏洞简单复现及分析。
实验需要事先获取后台管理员权限,可通过**管理员账号等方式,这里不做演示(管理员账号:admin,密码:password)。
确保Apache、MySQL服务正常开启:
为避免出现权限问题,点击【其他选项菜单】—>【phpStudy设置】—>【允许目录列表】,并重启phpStudy:
访问服务器10.1.1.79/phpok_4.8.338/admin.php:
登录:
在phpok后台选择【功能菜单】—>【工具】—>【附件分类管理】:
对【压缩软件】进行编辑操作,在【支持的附件类型】中添加php并提交:
查看修改后结果:
选择左侧的【内容管理】—>【资讯中心】:
点击【行业新闻】后面的+号添加新的文章,点击【选择图片】:
新建php木马文件:
一句话内容:<?php @eval($_POST['upload']);?>
【上传附件】处选择【压缩软件】,上传包含一句话木马的PHP文件test.php:
上传成功后点击【预览】,即可看到上传附件的地址:
利用工具访问上传的PHP文件并执行命令:
注:工具在C:\tools\中国菜刀\文件夹内
在【POST输入框】中填写需要执行的命令并提交:
提交结果:
问题代码出现在\phpok_4.8.338\framework\admin\rescate_control.php:
这里只判断附件类型是否为空,没有限制后缀。导致可以自行添加PHP后缀,上传恶意文件,获取网站shell。
步骤二
任务描述:phpok_4.9.015任意文件上传漏洞简单复现及分析。
压缩刚刚创建的一句话文件test.php:
登录后台/ phpok_4.9.015/admin.php,管理员账号及密码同phpok_4.8.338一致,选择【模块管理】—>【模块导入】:
选择刚刚压缩的文件导入,可以看到文件已经上传到了\phpok_4.9.015\data\cache\目录下:
在菜刀中添加shell,获取目标服务器权限:
菜刀部分操作不会使用的同学可参考我另一篇笔记:FCKeditor 2.4.3文件上传漏洞
问题代码出现在\phpok_4.9.015\framework\admin\module_control.php:
没有做任何过滤,直接把zip原样解压缩到/data/cache/目录下。
步骤三
任务描述:phpok_4.9.015还存在任意文件下载漏洞,进行漏洞简单复现及分析。
选择后台右上方的【功能菜单】—>【设置】—>【风格管理】:
点击【文件管理】:
随便删除一个文件并用burpsuite抓包:
burpsuite不会使用的同学可参考我另一篇笔记:burp进行暴力**
丢到repeater模块中,并修改数据包:
关闭burpsuite的intercept,重新访问http://10.1.1.79/phpok_4.9.015/index.php
可以看到文件已删除,网站主页不存在。
问题代码位于\phpok_4.9.015\framework\admin\tpl_control.php:
$file虽然是由几个参数拼接而成,但是加上…/…/就可以回到任何位置,造成任意文件删除漏洞。