【代码审计】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/update.php 第30-49行:
- switch($tcz['log']){
- case 'start':
- $path=arg('path','post','url');
- $file=arg('file','post','url');
- $md5=arg('md5','post','url');
- $check=arg('check','post','int');
- if($check<1||$check>2)$check=1;
- $zipfull='../'.$path.$file;
- if(!file_exists($zipfull)){
- 10. ajaxreturn(1,'没有找到升级文件,请确定PHP环境是否支持远程 file_get_contents 函数(错误代码:101)');
- 11. }
- 12. if(!function_exists('zip_open')){
- 13. ajaxreturn(1,'不支持zip_open函数,请检查PHP环境是否支持ZZIPlib库(错误代码:102)');
- 14. exit;
- 15. }
- 16. $zipmd5=strtolower(md5_file($zipfull));
- 17. if($md5!=$zipmd5){
- 18. @unlink($zipfull);
- 19. ajaxreturn(1,'升级文件md5较验失败,请稍候再次尝试升级(错误代码:103)');
- 20. }
在这段代码中,path,file,md5,check是可控的变量,其中
$zipmd5=strtolower(md5_file($zipfull));也就是我们外部传入的md5的值。
当$md5!=$zipmd5就会删除文件,我们可以轻易的构造参数去删除任意文件。程序在代码逻辑上存在严重的问题,导致程序存在任意文件删除漏洞,攻击者可通过该漏洞删除任意文件,如删除install.lck进行CMS重装,劫持网站数据库。
0x02 漏洞利用
1、在网站根目录新建一个text.txt,作为任意文件删除漏洞测试文件:

2、构造URL参数链接,成功删除test.txt文件

3、可进一步删除\install\install_lock.php文件,使程序进入系统重装状态,劫持网站数据库。
0x03 修复建议
1、指定文件读取目录,过滤.(点)等可能的恶意字符,防止目录跳转,最为推荐的方法;
2、对于要删除的文件,通过正则判断用户输入的参数的格式,看输入的格式是否合法。
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。

【代码审计】QYKCMS_v4.3.2 任意文件删除漏洞分析的更多相关文章
- 【代码审计】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 ...
- 【代码审计】XYHCMS V3.5任意文件删除漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件删除漏洞分析
0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...
- 【代码审计】iZhanCMS_v2.1 后台任意文件删除漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- 【代码审计】CLTPHP_v5.5.3后台任意文件删除漏洞分析
0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...
- dzzoffice 任意文件删除漏洞分析
dzzofiice 任意文件删除漏洞 \upload\dzz\system\dzzcp.php第199行 elseif($do=='deleteIco'){ $arr=array(); $ ...
- 【代码审计】QYKCMS_v4.3.2 任意文件读取漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
随机推荐
- 线段树 + 区间更新 ----- HDU 4902 : Nice boat
Nice boat Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Tot ...
- 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的 ...
- 《FPGA全程进阶---实战演练》第一章之FPGA介绍
1 什么是FPGA FPGA也即是Field Programmable Gate Array的缩写,翻译成中文就是现场可编程门阵列.FPGA是在PAL.GAL.CPLD等可编程器件的基础上发展起来的新 ...
- ThinkPHP使用memcache缓存服务器
(1)Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件. 服务器装了memcached后想给更改成memecache方式 在Conf/config.p ...
- C++ 查询某个变量的类型
#include <typeinfo> int iii = 100; printf("%s\n",typeid(iii).name());//类型 详见:http:// ...
- tophat-fusion 鉴定融合基因
tophat-fusion 是一款利用RNA_seq 数据鉴定融合基因的工具,官网链接如下: http://ccb.jhu.edu/software/tophat/fusion_index.shtml ...
- Toggle Checkboxes on/off
You can write: $(document).ready(function() { $("#select-all-teammembers").click(function( ...
- sublime text3支持Vue语法高亮显示
1.下载文件链接: 或https://github.com/vuejs/vue-syntax-highlight 解开压缩包vue-syntax-highlight-master,其内所有文件备用. ...
- Java标准I/O流编程一览笔录
I/O是什么 I/O 是Input/Output(输入.输出)的简称,输入流可以理解为向内存输入,输出流是从内存输出. 流 流是一个连续的数据流,可以从流中读取数据,也可以往流中写数据.流与数据源,或 ...
- [linux]Error: failure: repodata/repomd.xml from fedora: [Errno 256] No more mirrors to try.
在使用fedora17 系统的yum源的时候出现了例如以下错误: Error: failure: repodata/repomd.xml from fedora: [Errno 256] No mor ...