phpok 4.9.015 任意文件上传

phpok 4.9.015 任意文件上传

phpok 4.8.338及4.9.015 多处存在任意文件上传漏洞,做一个简单的复现笔记。

一、漏洞复现

1、第一个漏洞位置

注意:这里的漏洞都是在后台,所以在复现时要先登录后台。
第一个任意文件上传的位置
工具->附件分类管理->编辑压缩软件

phpok 4.9.015 任意文件上传phpok 4.9.015 任意文件上传
之后在支持的附件类型处添加php
然后我们尝试上传php类型的附件:

phpok 4.9.015 任意文件上传
这里选择图片,然后上传类型要选择压缩软件,之后就可以看到我们添加的php类型了,然后上传本地的php文件也是成功的。
之后在资讯中心找到自己上传的文件并查看缩略图,可以得到该文件的位置

phpok 4.9.015 任意文件上传
然后我们尝试访问该页面:

phpok 4.9.015 任意文件上传

脚本执行成功。

源代码分析:

phpok 4.9.015 任意文件上传
可以看到,这段代码对于我们手动添加的压缩文件的类型并没有进行检测,从而导致了任意文件上传。

2、第二个漏洞位置

模块管理->模块导入->选择本地文件->上传一个压缩好的php文件->导入模块

phpok 4.9.015 任意文件上传
然后我们可以在这个位置找到该文件:

phpok 4.9.015 任意文件上传

然后我们进行访问:

phpok 4.9.015 任意文件上传

脚本执行成功。

贴上漏洞代码:

phpok 4.9.015 任意文件上传
可以看到,中间除了 … 没有做什么过滤,最后一句就直接将其解压了。

3、第三个漏洞是一个任意文件删除

设置->风格管理

phpok 4.9.015 任意文件上传
这里我们直接开启bp抓包,删除一个文件:

phpok 4.9.015 任意文件上传
然后我们尝试修改删除的文件名,尝试删除主页:

phpok 4.9.015 任意文件上传
尝试访问主页:

phpok 4.9.015 任意文件上传
主页成功被删除。

查看源代码:

phpok 4.9.015 任意文件上传
这个是删除文件的一个方法,从上往下经过了很多的判断,但是并没有做什么过滤和检测。

二、参考链接

https://www.hetianlab.com/pages/registerUser/guidebookHtml.jsp?ceid=4d10731a-cdc4-4c73-b2b8-21c3d0f3d66c