源码:
https://cdn.jsdelivr.net/gh/seacms-net/CMS@master/SeaCMS.zip
→点击查看网络安全学习资料·攻略←
1.2000多本网络安全系列电子书
2.网络安全标准题库资料
3.项目源码
4.网络安全基础入门、Linux、web安全、攻防方面的视频
5.网络安全学习路线图
漏洞分析:
打开我们下载的源码
漏洞源头为“图片水印设置”功能,对应的源码文件为admin_config_mark.php
当我们后台使用图片设置功能时
点击提交之后,这里首先调用了admin_config_mark.php文件,而这个文件的开头加载了全局文件
继续跟进config.php,这个文件中又引入了common.php
继续跟进common.php文件
此时我们找到了最终加载的文件,而这个文件的功能是对全局的变量进行过滤防护。
这里最终调用的函数为_FilterAll
将参数传入之后,框架会对每个参数使用addslashes函数进行转义,原本我们传入1’变为了1’,接着来到admin/admin_config_mark.php文件
这里就出现了处理参数的逻辑错误。对全局转义过的参数又进行了一次替换操作,使用了str_replace函数将全部的单引号替换成了空,所以1’就变成了1\,此时字符串进行了拼接。
然后紧着这把字符串写入了配置文件中
此时配置文件中写入的数据如下,这就导致了将原本的单引号转义掉了。此处我们就可以写入任意代码了。
最后
私我获取【网络安全技术学习资料·攻略】