0x00 环境准备

XIAOCMS官网: http://www.xiaocms.com/

网站源码版本:XiaoCms (发布时间:2014-12-29)

程序源码下载:http://www.xiaocms.com/download/XiaoCms_20141229.zip

测试网站首页:

0x01 代码分析

1、漏洞文件位置:/admin/controller/template.php  第79--91行:

  1. public function delAction() {
  2. $dir    = $this->get('dir') ? urldecode($this->get('dir')) : '';
  3. $dir = str_replace(array('..\\', '../', './', '.\\'), '', trim($dir));
  4. $dir    = substr($dir, 0, 1) == '/' ? substr($dir, 1) : $dir;
  5. $dir    = str_replace(array('\\', '//'), DIRECTORY_SEPARATOR, $dir);
  6. $filename  = urldecode($this->get('file'));
  7. $filepath = $this->dir . $dir.$filename;
  8. if (@unlink($filepath))
  9. 10.         $this->show_message('删除成功',1);
  10. 11.         else
  11. 12.         $this->show_message('删除失败',2, url('template', array('dir'=>$dir)));
  12. 13.     }

在这段函数中,首先对dir参数进行处理,然后将file进行路径拼接,然后带入unlink函数进行删除操作。可以看到参数并未进行任何过滤或处理,导致程序在实现上存在任意文件删除漏洞,攻击者可通过该漏洞删除任意文件。如删除install.lock文件,进行CMS重装,劫持网站数据库。

0x02 漏洞利用

1、在网站根目录新建test.txt,作为漏洞测试文件:

2、构造URL参数,可成功删除根目录下的test.txt文件

3、如何进一步利用?

构造参数删除install.lock文件,进入CMS重装界面。

Payload:

http://127.0.0.1/admin/index.php?c=template&a=del&file=..\\..\\..\\data\\install.lock&dir=images\

0x03 修复建议

1、对于要删除的文件,通过正则判断用户输入的参数的格式,看输入的格式是否合法。

最后

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

【代码审计】XIAOCMS_存在任意文件删除漏洞分析的更多相关文章

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

      0x00 环境准备 YzmCMS官网:http://www.yzmcms.com/ 程序源码下载:http://pan.baidu.com/s/1pKA4u99 测试网站首页: 0x01 代码分析 ...

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

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

  3. 【代码审计】TuziCMS_v3.0_任意文件删除漏洞分析

      0x00 环境准备 TuziCMS官网:http://www.tuzicms.com/ 网站源码版本:TuziCMS_v3.0_20161220 程序源码下载:http://www.tuzicms ...

  4. 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件删除漏洞分析

      0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...

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

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

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

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

  7. 【代码审计】CLTPHP_v5.5.3后台任意文件删除漏洞分析

      0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...

  8. dzzoffice 任意文件删除漏洞分析

    dzzofiice 任意文件删除漏洞 \upload\dzz\system\dzzcp.php第199行 elseif($do=='deleteIco'){    $arr=array();    $ ...

  9. 【代码审计】XIAOCMS_后台database.php页面存在任意文件删除漏洞

      0x00 环境准备 XIAOCMS官网: http://www.xiaocms.com/ 网站源码版本:XiaoCms (发布时间:2014-12-29) 程序源码下载:http://www.xi ...

随机推荐

  1. PHP利用CURL_MULTI实现多线程

    PHP中的curl_multi一类函数可以实现同时请求多个url,而不是一个一个依次请求,这就类似一个进程实现了多个线程的功能,因此可以使用PHP利用CURL_MULTI实现完成多线程类的任务,下面就 ...

  2. Java设计模式(6)桥模式(Bridge模式)

    Bridge定义:将抽象和行为划分开来,各自独立,但能动态的结合. 为什么使用桥模式 通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以 ...

  3. 让QtCreator在调试时显示字符串 Qt调试助手 QtDebuggingHelper qtc-debugging-helper

    When starting gdb with application message “Debugging Helper Missing” is displayed [Solved] http://q ...

  4. tomcat部署时war和war exploded区别

    war模式—-将WEB工程以包的形式上传到服务器 war exploded模式—-将WEB工程以当前文件夹的位置关系上传到服务器

  5. pandas 的算术运算和数据对齐

    pandas 还有一个重要的功能,就是他可以对不同索引的对象进行算数运算.对象相加, 如果存在不同的索引对,则结果的索引就是该索引对的并集. 先来个例子 Series In [33]: s1 = Se ...

  6. 【Python】python3实现网页爬虫下载图片

    import re import urllib.request # ------ 获取网页源代码的方法 --- def getHtml(url): page = urllib.request.urlo ...

  7. 第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页

    第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页 逻辑处理函数 计算搜索耗时 在开始搜索前:start_time ...

  8. unity---各种资源对应的格式

    我们打包AssetBundle后,Unity3D会根据文件的后缀名将文件转换为特定的类型对象存储起来,我们后期获取时需要根据这些类型取出打包的数据,这里记录下不同后缀文件打包后的类型. 文本格式 支持 ...

  9. (原)多线程sdl_ttf显示文字

    最近在使用sdl做视频显示,因为需要显示文字,所以就找了sdl的拓展库,sdl_ttf来做文字显示. 这里说明一下:sdl_ttf不支持多线程,官方上面有说明,它不是多线程安全的. 所以当我最初使用s ...

  10. Salt-ssh批量自动安装被控端salt-mini

    Salt-ssh是Saltstack的另外一种管理方式,无需安装minion端,可以运行salt的一切功能,管理和使用方法基本和salt一样.但是,salt-ssh并没有继承原来的ZeroMQ通讯架构 ...