一、漏洞描述

在CMS安装过程中,由于配置文件过滤不严,导致在安装过程中可以插入配置文件恶意代码,从而执行任意命令,甚至直接获取Webshell

在我的资源中下载::fengcms-含有系统重装漏洞源码包 下载 即可

二、代码审计

该CMS第一次安装系统的时候,是index.php页面,查看index.php内容
图中标记内容的意思是:查看一下是否存在/upload/INSTALL文件是否存在,如果存在(也就是已经成功安装了系统后),就弹窗提示“系统已安装,如需要重新安装,请手工删除upload目录下的INSTALL文件!”,但是仍旧会继续执行下面的内容,也就是switch($_GET[‘step’])。。。。。。。后面的代码

file_exists() 函数检查文件或目录是否存在。
如果指定的文件或目录存在则返回 true,否则返回 false。
在这里插入图片描述
接下来是第一步安装许可、第二步检查安装环境,并且指出了文件位置在/step/step1.php
在这里插入图片描述
安装过程一共是5个接口,查看这5个文件与Install.php文件
在这里插入图片描述
首先分析install.php文件,在文件最后有个一POST方式提交表单的代码
在这里插入图片描述
获取表单提交的内容在如图所示位置,获取到表单内容之后,连接数据库,之后将用户的信息写入config.php文件( f i l e = f o p e n ( files, “w”); ),写入后关闭config.php文件(),但是中间没有添加任何过滤代码。那么,就可以写入一些恶意代码
在这里插入图片描述
打开config.php文件,发现可以写入内容
在这里插入图片描述
运行安装程序
在这里插入图片描述
第二步,检测安装环境
在这里插入图片描述
第三步:写入内容,也就是存在漏洞的位置,经测试发现,只有数据表前缀的位置可以随意写入内容
在这里插入图片描述
在config.php代码中的位置,需要用“‘)”闭合前面的字符 ;号结束,写下一个代码assert($_POST[‘c’]);并且用//注释掉后面的内容
在这里插入图片描述

构造完payload:’);assert($_POST[‘c’]);//后,插入payload
在这里插入图片描述
最后安装成功
在这里插入图片描述
访问网站首页
在这里插入图片描述
测试:恶意代码成功写入,并且执行
在这里插入图片描述
因为在首页index.php中加载了config.php所以在首页输入测试语句,而config.php中已经被插入一句话木马,所以getshell成功
在这里插入图片描述
在这里插入图片描述

三、漏洞修复

因为漏洞产生的原因是系统重装漏洞,且首次安装后,第二次访问,仍旧可以重新安装,那么修复方法,在弹窗后添加exit();函数,让程序执行到这个位置后,下面的代码不执行,就不会有系统重装的问题了,当然也可以添加过滤机制

在这里插入图片描述
更多web安全工具与存在漏洞的网站搭建源码,收集整理在知识星球。
在这里插入图片描述

任务15: PHP 代码审计 之变量盖 漏洞 mp4 任务14 PHP 代码审计 之任意文件读取及删除 漏洞 mp4 任务13: PHP 代码审计 之目录穿越及文件包含 漏洞 mp4 任务12: PHP 代码审计 之文件上传 漏洞 mp4 任务11: 代码审计 之CSRF 漏洞 mp4 任务10: 代码审计 之XSS 漏洞 mp4 任务9: 代码审计 之命令执行 漏洞 mp4 任务8: 代码审计 之代码执行 漏洞 mp4 任务7: PHP 代码审计 宽字节注入及二次注入mp4 任务6: PHP 代码审计 SQL注入 漏洞 mp4 任务5:审计涉及的超全局变量mp4 任务4:代码调试及 Xdebug的配置使用mp4 任务3: PHP 核心配置详解mp4 任务2: 代码审计 的思路及流程mp4 任务1:环境配置及审计工具介绍mp4
开始练习【红日团队】的 PHP -Audit-Labs 代码审计 Day10 链接:https://github.com/hongriSec/ PHP -Audit-Labs 感兴趣的同学可以去练习练习 预备知识: 内容题目均来自 PHP SECURITY CALENDAR 2017 Day 10 - Anticipation代码如下: extract($_POST); function goAway...
sql文件静态分析模块 php arser树形处理,json返回处理结果 sql显示image模块 graphviz生成pdf文件,并根据 漏洞 规则找到 漏洞 所在位置标红 sql正向反向分析模块 并根据 漏洞 规则找到 漏洞 所在位置标红 xss文件静态分析模块 php arser树形处理,json返回处理结果 xss显示image模块 graphviz生成pdf文件,并根据 漏洞 规则找到 漏洞 所在位置标红 xss正向反向分析模块 并根据 漏洞 规则找到 漏洞 所在位置标红 密码修改模块 1、新增阿里云xss安全插件,提升 Feng CMS 系统安全 2、核心增加过滤,提升系统安全。 3、新增动态缩略图函数。可根据大图动态生成缩略图于内存中,可大幅减少流量占用,提高网站打开速度(但会占用CPU资源,劣质虚拟主机慎用)。 函数使用方法 {thumb(原始图片地址,缩略图宽度,缩略图高度)} 示例:{thumb($v['img'],120,80)} 4、新增 web.config 文件,用于 windows 2008 以及以上系统的伪静态配置(需要服务器支持)我们建议系统运行于linux服务器上。 Feng Cms 系统介绍 Feng Cms 系统是由地方网络工作室倾力打造的一套 PHP MYSQL的 CMS ,和其他小型 CMS 不同,我们的 CMS 是完全自主开发的核心(由开源核心开发的 CMS 程序很大程度上受到核心的限制,在安全问题,以及代码臃肿等方面有先天缺陷)。当然,由于我们是自主开发的核心,因此,我们和其他 cms 有很大的不同。 由此, Feng Cms 官方制作了视频教程和模版标签白皮书,方便诸君能够迅速理解并使用 Feng Cms 网站内容管理系统。 当然,这还远远不够。因此我们会倍加努力,写更多的教程,不断的完善我们的程序,以期为诸君提供更加优质的服务! Feng Cms 是一套纯粹为展示内容而生的 cms 系统。因此, Feng Cms 不包含任何交互模块(除自带的留言,且默认不显示)。我们是为纯粹为展示内容而生的,是纯展示类型网站的最佳伴侣。 Feng Cms 自带非常强大的模型系统,利用模型系统,可以自由搭建任意需要的模型。不再收到任何限制。甚至,你新建的模型可以连栏目都没有,你爱咋滴咋滴。 Feng Cms 的万能L标签功能,可以对数据库内的任意数据表进行任意调用,支持原生 PHP 函数,支持循环套循环,判断套判断。 更为强大的是。 Feng Cms 的后台,其实和前台一样,是用一样的代码写出来的。因此, Feng Cms 有无与伦比的二次开发潜力。其中的好处,需要诸君慢慢品评! Feng Cms 系统可以用来制作企业网站,文章网站,图片网站,电影网站,导航站等等等等不需要交互系统的各种类型的网站。 Feng Cms 开发团队石峰在开发一套大的项目,总监刘峰目前就职于青海某旅游公司。因此, Feng Cms 项目进展有所放缓。但是, Feng Cms 团队始终对 Feng Cms 不离不弃。我们一定会坚持开发下去的。请大家放心。 如果使用新增的下载函数不能下载,而是打开一个乱码的网页,则请检查 php .ini配置文件中的 output_buffering 选项是否在 Off ,请改成 On 或者 4096 Feng Cms 安全说明 1、修改后台密码。在后台右上角点击“修改密码”进行修改。 2、修改后台认证码。在 /config. php 配置文件中修改。 3、修改后台路径。直接修改 admin 目录名即可。 Linux 权限配置777 PS:安装在linux服务器下要注意给以下目录文件夹和其下的子文件777权限。 /admin/app/dbbackup 数据库备份目录 /admin/app/cache 后台缓存文件 /app/cache 前台缓存文件 /template 模版目录 /css 样式目录 /upload/ 上传目录 /config. php 配置文件 新L标签写法 老的万能标签写法: {loop M("module")->l("article"…… 新的万能标签写法: {loop l("article"…… 也就是说,省略调了“ M("module")-> ” 原先写的模版没有必要修改,因为兼容老的写法。 Feng Cms 前台页面: Feng Cms 后台管理:  后台地址:/admin/login. php 用户名:admin 密码:123456 认证码:8888  后台页面: 同类推荐: CMS 系统
Feng Cms ——由地方网络工作室基于 PHP +MYSQL开发。是一款开源的网站内容管理系统。系统支持自由订制模型,你完全可以用 Feng Cms 打造一个你想要的任意展示模型。模版和程序分离、自由标签系统,让 Feng Cms 灵活无比。拥有 Feng Cms ,你可以完成国内95%的网站制作需要! 经过一年多的准备工作以及半年的紧张开发, Feng Cms 终于拨开红纱,正式面世了。初次出阁,颇为娇羞,请各位朋友爱怜轻拍! Feng Cms 不含会员系统,评论系统(用新浪微博评论墙和腾讯微博评论墙代替),没有商城系统等等。 Feng Cms 是一款纯粹为展示内容而生的 cms 系统。 Feng Cms 含有灵活多变的模块系统,你可以自定义出来任意你想要的模型(有点小吹,由于是第一个版本,所以还有所欠缺,不过我们会努力的。) Feng Cms 系统可以用来制作企业网站,文章网站,图片网站,电影网站,导航站等等等等不需要交互系统的各种类型的网站。 Feng Cms 系统建好网站之后,网站的管理极其便利,会让任何编辑爱上我们的 cms 系统的!细节之处,提现用心! 系统安装路径:/install/index. php 后台路径:/admin/login.
Feng Cms 由地方网络工作室基于 PHP MYSQL开发。是一款开源的网站内容管理系统。系统支持自由订制模型,你完全可以用 Feng Cms 打造一个你想要的任意展示模型。模版和程序分离、自由标签系统,让 Feng Cms 灵活无比。拥有 Feng Cms ,你可以完成国内95%的网站制作需要! Feng Cms 内容管理系统 1.32 更新日志:2015-10-12 1、新增阿里云xss安全插件,提升 Feng CMS 系统安全2、核心增加过滤,提升系统安全。3、新增动态缩略图函数。可根据大图动态生成缩略图于内存中,可大幅减少流量占用,提高网站打开速度(但会占用CPU资源,劣质虚拟主机慎用)。函数使用方法 {thumb(原始图片地址,缩略图宽度,缩略图高度)}4、新增 web.config 文件,用于 windows 2008 以及以上系统的伪静态配置(需要服务器支持)我们建议系统运行于linux服务器上。 模型极度灵活 自由搭建任意模型,万能AJAX验证,胜任任何变态需要! 稳定压倒一切 基于 PHP MYSQL构建,稳定坚若磐石! 易用无与伦比 每一处细节,都倍感贴心,让编辑从此不再厌恶后台! 速度超越极限 每一处细节,都倍感贴心,让编辑从此不再厌恶后台!
第15课: PHP 代码审计 之变量盖 漏洞 mp4 第14课 PHP 代码审计 之任意文件读取及删除 漏洞 mp4 第13课: PHP 代码审计 之目录穿越及文件包含 漏洞 mp4 第12课: PHP 代码审计 之文件上传 漏洞 mp4 第11课: 代码审计 之CSRF 漏洞 mp4 第10课: 代码审计 之XSS 漏洞 mp4 第9课: 代码审计 之命令执行 漏洞 mp4 第8课: 代码审计 之代码执行 漏洞 mp4 第7课: PHP 代码审计 宽字节注入及二次注入mp4 第6课: PHP 代码审计 SQL注入 漏洞 mp4 第5课:审计涉及的超全局变量mp4 第4课:代码调试及 Xdebug的配置使用mp4 第3课: PHP 核心配置详解mp4 第2课: 代码审计 的思路及流程mp4 第1课:环境配置及审计工具介绍mp4
Feng Cms Beta 1.28 更新说明: 本次更新给栏目增加了图片字段,以后可以给每个栏目单独指定一张栏目图片,便于大家更加灵活的制作网站。 另,前段时间由于爆发了N多的安全 漏洞 ,为了更加安全,我们给全站增加了XSS过滤,导致后台一些功能受到限制,甚至出错。 为了解决这个问题,我们在1.28版本中,去掉了全站过滤,而仅仅保留了前台过滤。这样大家在使用时会更加灵活方便。 1、栏目表新增图片字段 2、去除了后台的XSS过滤。 虽然 Feng Cms 是一款免费、开源、且就 Feng Cms 本身是不寻求商业模式的这样一套自由的 CMS 系统。但是出于对乌云上这些朋友给予我们的热心帮助,开发团队决定采购一批小礼品。随后将邮寄给大家! 希望各位白帽子可以继续为 Feng Cms 挖掘 漏洞 。我相信,我们一定可以做得更好! 另外 Feng Cms 2.0 公开版本将推迟发布。我们从1.0被挖掘出来的 漏洞 和问题,我们将进一步的去完善2.0。不定期的会在 Feng Cms 交流群中发布内测版本。希望大家可以关注QQ群 ,群号是53667986! ============== Feng Cms 安全说明 ============================= 1、修改后台密码。在后台右上角点击“修改密码”进行修改。 2、修改后台认证码。在 /config. php 配置文件中修改。 3、修改后台路径。直接修改 admin 目录名即可。 4、随时关注官方网站 www. feng cms .com 以获得最新的升级补丁。 ============== Linux 权限配置777 ============================ PS:安装在linux服务器下要注意给以下目录文件夹和其下的子文件777权限。 /admin/app/dbbackup 数据库备份目录 /admin/app/cache 后台缓存文件 /app/cache 前台缓存文件 /template 模版目录 /css 样式目录 /upload/ 上传目录 /config. php 配置文件 更多目录信息,请查阅目录说明.txt文件 =============== 新L标签写法 ================================= 老的万能标签写法: {loop M("module")->l("article"…… 新的万能标签写法: {loop l("article"…… 也就是说,省略调了“ M("module")-> ” 原先写的模版没有必要修改,因为兼容老的写法。 ============================================================= 后台地址:/admin/login. php 用户名:admin 密码:123456 认证码:8888 ======================== Feng Cms 系统是由地方网络工作室倾力打造的一套 PHP +MYSQL的 CMS ,和其他小型 CMS 不同,我们的 CMS 是完全自主开发的核心(由开源核心开发的 CMS 程序很大程度上受到核心的限制,在安全问题,以及代码臃肿等方面有先天缺陷)。当然,由于我们是自主开发的核心,因此,我们和其他 cms 有很大的不同。 由此, Feng Cms 官方制作了视频教程和模版标签白皮书,方便诸君能够迅速理解并使用 Feng Cms 网站内容管理系统。 当然,这还远远不够。因此我们会倍加努力,写更多的教程,不断的完善我们的程序,以期为诸君提供更加优质的服务! Feng Cms 是一套纯粹为展示内容而生的 cms 系统。因此, Feng Cms 不包含任何交互模块(除自带的留言,且默认不显示)。我们是为纯粹为展示内容而生的,是纯展示类型网站的最佳伴侣。 Feng Cms 自带非常强大的模型系统,利用模型系统,可以自由搭建任意需要的模型。不再收到任何限制。甚至,你新建的模型可以连栏目都没有,你爱咋滴咋滴。 Feng Cms 的万能L标签功能,可以对数据库内的任意数据表进行任意调用,支持原生 PHP 函数,支持循环套循环,判断套判断。 更为强大的是。 Feng Cms 的后台,其实和前台一样,是用一样的代码写出来的。因此, Feng Cms 有无与伦比的二次开发潜力。其中的好处,需要诸君慢慢品评! Feng Cms 系统可以用来制作企业网站,文章网站,图片网站,电影网站,导航站等等等等不需要交互系统的各种类型的网站。 Feng Cms 开发团队石峰在开发一套大的项目,总监刘峰目前就职于青海某旅游公司。因此, Feng Cms 项目进展有所放缓。但是, Feng Cms 团队始终对 Feng Cms 不离不弃。我们一定会坚持开发下去的。请大家放心。 如果使用新增的下载函数不能下载,而是打开一个乱码的网
https://www. php fans.net/xz/108401.html 一些 php 编写的网站在安装完成之后会在install目录下生成一个类似于install.lock文件来判断网站是否已经安装过了防止再次安装,但是由于逻辑上的问题只是判断了文件是否存在并没有退出导致了重装而且有的时候在安装过程中会把一些配置文件的信息通过post方式传输并保存在配置文件中如果没有对这些信息进行过滤我们就可以把恶意代码插进去 看一下安装的代码 install/index. php define("TPL_IN 为什么要写 Feng Focus ? 自从开始学习 jQuery 我就深深的被它给吸引了。虽然年岁有点大了。但是止不住想要学习的冲动。 根据我个人的学习经验,我认为实战是唯一提升自己的途径。所以我自己写了一些 jQuery 插件。 去年自己写的第一个焦点图插件,命名为 Feng Focus 1. $content = "This is my first blog."; $user_id = 1; $sql = "INSERT INTO blogs (title, content, user_id) VALUES ('$title', '$content', $user_id)"; $conn->query($sql); 3. 查询数据,例如查询所有博客: ``` php $sql = "SELECT * FROM blogs"; $result = $conn->query($sql); while ($row = $result->fetch_assoc()) { echo $row["title"] . "<br>"; 4. 更新数据,例如更新一条博客记录: ``` php $id = 1; $title = "Hello World 2"; $content = "This is my second blog."; $sql = "UPDATE blogs SET title='$title', content='$content' WHERE id=$id"; $conn->query($sql); 5. 删除数据,例如删除一条博客记录: ``` php $id = 1; $sql = "DELETE FROM blogs WHERE id=$id"; $conn->query($sql); 以上是一个简单的博客系统的实现方法,但在实际开发中还需要考虑安全性、性能等问题。