戟星安全实验室
本文约1200字,阅读约需4分钟。
0x00 前言
黑盒的文件上传漏洞测试的挺多,常规安全渗透测试中很少会用到白盒审计的方式去找文件上传漏洞,主要还是想着学习一点原理,这里用存在漏洞的CMS:ATutor,ATutor是一款学习管理系统。
0x01 环境搭建
-
环境准备
源码下载地址:
https://github.com/atutor/ATutor
这里采用phpstudy的方式搭建,网站搭建过程这里不做演示。
-
漏洞复现
这里漏洞存在点为system preferences-->languages-->import,这里除了语言导入功能存在任意文件上传以外,其它类似的功能点也存在一定问题。
这里复现可以自己构造一个简单的phpinfo文件进行上传验证,尝试直接php文件上传会报错。
这里上传文件后缀为zip格式可直接上传
在网站的源文件中可以看到zip被自动解压,且没有对文件的内容后缀进行任何校验。
尝试访问,发现可以达到任意文件上传的效果。
漏洞复现过程比较简单,这个漏洞利用有一定的条件限制,需要管理员权限登录后台,可以尝试简单分析一下源码,了解任意文件上传的原因。
-
漏洞分析
直接使用VsCode进行分析。
根据漏洞批露细节我们可以知道,漏洞存在位置位于语言上传模块中,这里我们直接查看language_import.php
从第35行代码可以看出来有文件上传,且在对上传文件的格式进行过滤,这里是不能上传空文件以及不支持上传的文件,从这里可以得知此处功能点在。
文件上传成功之后进入languageManager
接下来需要看的是languageManager中的import方法,这里是对zip文件进行处理,到这里就可以看出整个的文件上传路线是提交上传文件-->对文件进行简单过滤-->对文件直接进行解压放到网站目录下
对文件进行解压然后放到网站的import目录下
这里可以简单了解一下PclZip这个类,网上介绍这个类是一款功能比较强大的PHP压缩和解压缩类,所有功能细节可以查看pclzip.lib.php。
0x02 总结
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,破军安全实验室及文章作者不为此承担任何责任。
戟星安全实验室拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经破军安全实验室允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
戟星安全实验室
# 长按二维码 关注我们 #
原文始发于微信公众号(戟星安全实验室):入门级的文件上传分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论