0x00 环境准备

大米CMS官网:http://www.damicms.com

网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15)

程序源码下载:http://www.damicms.com/downes/dami.rar

测试网站首页:

0x01 代码分析

1、漏洞文件位置:/Admin/Lib/Action/TplAction.class.php  第76-87行中:

  1. public function add()
  2. {
  3. $filename = dami_url_repalce(str_replace('*','.',trim($_GET['id'])));
  4. if (empty($filename))
  5. {
  6. $this->error('模板名称不能为空!');
  7. }
  8. $content = read_file($filename);
  9. $this->assign('filename',$filename);
  10. 10.     $this->assign('content',htmlspecialchars($content));
  11. 11.     $this->display('add');

12. }

这段编辑模板的函数中,首先对获取的参数进行替换,然后判断文件是否为空,接着带入read_file函数中执行,可以看到参数并未进行任何过滤或处理,导致程序在实现上存在任意文件读取漏洞,可以读取网站任意文件,攻击者可利用该漏洞获取敏感信息。

0x02 漏洞利用

1、登录后台, 全局配置路径在\Public\Config\config.ini.php,通过构造URL读取全局配置文件内容。

http://127.0.0.1/admin.php?s=Tpl/Add/id/.\Public\Config\config.ini.php

0x03 修复建议

1、指定文件读取目录,过滤.(点)等可能的恶意字符,防止目录跳转,最为推荐的方法;

2、正则判断用户输入的参数的格式,看输入的格式是否合法:这个方法的匹配最为准确和细致,但是有很大难度,需要大量时间配置规则。

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

【代码审计】大米CMS_V5.5.3 任意文件读取漏洞分析的更多相关文章

  1. 【代码审计】XYHCMS V3.5任意文件读取漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  2. 【代码审计】QYKCMS_v4.3.2 任意文件读取漏洞分析

      0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...

  3. 安全研究 | Jenkins 任意文件读取漏洞分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...

  4. 【代码审计】QYKCMS_v4.3.2 任意文件删除漏洞分析

      0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...

  5. 【代码审计】XYHCMS V3.5任意文件删除漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  6. 【代码审计】iZhanCMS_v2.1 后台任意文件删除漏洞分析

      0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...

  7. FFmpeg任意文件读取漏洞分析

    这次的漏洞实际上与之前曝出的一个 CVE 非常之类似,可以说是旧瓶装新酒,老树开新花. 之前漏洞的一篇分析文章: SSRF 和本地文件泄露(CVE-2016-1897/8)http://static. ...

  8. PHPMailer命令执行及任意文件读取漏洞

    今天在thinkphp官网闲逛,无意下载了一套eduaskcms,查看了一下libs目录中居然存在PHPMailer-5.2.13,想起了之前看到的PHPMailer的漏洞,可惜这套CMS只提供了一个 ...

  9. 代码审计-MetInfo CMS任意文件读取漏洞

    0x01 代码分析 发现在app\system\include\module\old_thumb.class.php疑似有任意文件读取漏洞 public function doshow(){ glob ...

随机推荐

  1. Unity3d之截图方法

    http://blog.csdn.net/highning0007/article/details/37991787 Unity3d之截图方法 分类: Unity3D2013-11-28 17:13  ...

  2. js 获取浏览器/网页宽度高度整理

    网页宽度.高度: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.bo ...

  3. Verilog 加法器和减法器(8)-串行加法器

    如果对速度要求不高,我们也可以使用串行加法器.下面通过状态机来实现串行加法器的功能. 设A=an-1an-2-a0, B=bn-1bn-2-b0,是要相加的两个无符号数,相加的和为:sum=sn-1s ...

  4. Java代码常见的十种错误

    每一个程序员在编写代码的过程中都免不了出现错误或是小的失误,这些小的错误和失误往往使得程序员还得返工.那么,如何才能尽量避免这些错误的发生呢?笔者总结只有在日常的编写代码中总结出经验,在这篇文章中,笔 ...

  5. windows下php7.1安装redis扩展以及redis测试使用全过程(转)

    最近做项目,需要用到redis相关知识.在Linux下,redis扩展安装起来很容易,但windows下还是会出问题的.因此,特此记下自己实践安装的整个过程,以方便后来人. 一,php中redis扩展 ...

  6. open jdk

    http://rednaxelafx.iteye.com/blog/1549577 https://www.jianshu.com/p/f98c3acd8df8 http://download.jav ...

  7. 〖Linux〗Kubuntu 14.04的Eclipse 崩溃解决方法总结

    1. 普通崩溃问题: eclipse/configuration/config.ini在后边添加 org.eclipse.swt.browser.DefaultType=mozilla 2. Kubu ...

  8. SciTe设置

    对于新手来说,如果没有正确的配置,它就不是那么好使,比如选择中文时候出现乱码,缩进也不是你想象中的样子. 由于配置参数不是采用图形界面,而且出看配置代码会比较混乱,所以大家要睁大眼睛好好看咯- 程序中 ...

  9. Vivado开发工具熟悉之工具使用杂记

    这两天基本完成了实验室工程从ISE向vivado的移植,包括了两片FPGA的两个工程,这两个工程还算是比较大的工程,包括了内存,接口,embedded system,算法模块等,在这过程中也很好的熟悉 ...

  10. [k8s]kube-dns/dashboard排错历险记(含sa加载用法/集群搭建)

    kube-dns原理 参考: 组件架构看这个就够了 http://cizixs.com/2017/04/11/kubernetes-intro-kube-dns 设置细节看这个就够了 http://b ...