专业建站方案,云服务器做的网站需要备案,温州网站建设方案托管,上海徐汇龙华公司鞋子目录
MVC 架构
CNVD-代码执行1day-lmxcms1.40版本
CNVD-命令执行1day-baijiacms4.1.4版本 知识点#xff1a; 1、PHP审计-MVC开发-RCE代码执行 2、PHP审计-MVC开发-RCE命令执行 3、PHP审计-MVC开发-RCE文件对比 MVC 架构
MVC流程#xff1a;
Controller截…目录
MVC 架构
CNVD-代码执行1day-lmxcms1.40版本
CNVD-命令执行1day-baijiacms4.1.4版本 知识点 1、PHP审计-MVC开发-RCE代码执行 2、PHP审计-MVC开发-RCE命令执行 3、PHP审计-MVC开发-RCE文件对比 MVC 架构
MVC流程
Controller截获用户发出的请求Controller调用Model完成状态的读写操作Controller把数据传递给ViewView渲染最终结果并呈献给用户。 MVC各层职能
控制器Controller层–负责响应用户请求、准备数据及决定如何展示数据。模块Model层–管理业务逻辑和数据库逻辑。提供连接和操作数据库的抽象层。视图View层–负责前端模版渲染数据通过HTML方式呈现给用户。 MVC对审计主要影响
文件代码定位问题一个功能分别在三个文件里负责不同的部分代码过滤分析问题一般会写道MODEL层前端安全发现问题模板注入XSS等 PHP常见漏洞关键字
SQL注入
select insert update mysql_query mysqli等
文件上传
$_FILEStypefile上传move_uploaded_file()等
XSS跨站
print print_r echo sprintf die var_dump var_export等
文件包含
include include_once require require_once等
代码执行
eval assert preg_replace call_user_func call_user_func_array等
命令执行
system exec shell_exec passthru pcntl_exec popen proc_open
变量覆盖
extract() parse_str() importrequestvariables() $$ 等
反序列化
serialize() unserialize() __construct __destruct等
其他漏洞
unlink() file_get_contents() show_source() file() fopen()等
#通用关键字
$_GET,$_POST,$_REQUEST,$_FILES,$_SERVER等 MVC开发审计入口常见方法
搜索法常规或部分MVC模型源码可以采用关键字的搜索挖掘思路功能法框架MVC模型源码一般会采用功能点分析抓包追踪挖掘思路对比法可以通过前后修复版本文件及代码不同特征进行针对挖掘思路特征法数据库监控挖SQL注入文件监控挖上传删除写入等后续补充工具法后续讲到调试法动态调试 一般情况下有经验的人看一下目录就大概知道
这个应该就是控制层接收参数控制执行逻辑 这个多半就是模块层可能过滤以及对数据的处理 这个多半就是视图层负责数据在前端的显示 访问网站的首页 index.php 目录像是这个样子基本上都是MVC 包含了两个文件在 run.inc.php 发现通过URL确定跳转的文件位置
由这里的命名也可以知道哪个是控制层哪个是模块层 index.php控制了交给谁处理的逻辑也就是由哪个文件来处理后续
观察到这里是首页所以应该是先访问控制层的mcontent在控制层文件中应该有一个与它对应的文件。aindex是这个文件中处理的方法 这是一个名为index的公共方法。让我们一起对代码进行解析 第一行创建了一个名为$temModel的parse对象并传递了$this-smarty作为参数。 第二行调用了$temModel对象的contents方法并传递了$this-id、$this-classid和$this-contentModel作为参数。 第三行使用echo语句将$temModel-contents方法的返回值输出到浏览器。
总结一下该index方法实例化了一个名为parse的对象并调用了其contents方法将$this-id、$this-classid和$this-contentModel作为参数传递给该方法并将方法的返回值输出到浏览器。
进入 $temModel-contents($this-id,$this-classid,$this-contentModel);
这里不仅完成了数据的查找并且还把数据渲染到模板里了 调用了Model层的方法查询数据 如何确定视图层
根据页面特征全局搜索搜索公司新闻搜不到可能是存储在数据库里
注意到发布时间 确定 news.html 就是对应的 view 层文件 根据 url 可以确定控制层的文件 对应的处理方法 代码里创建了两个对象都进入看看随后去确定文件 按照前面的方法确定了 product.html 文件就是view层代码
分析调用逻辑基本上是推测猜找特征。 CNVD-代码执行1day-lmxcms1.40版本 搜索法-RCE https://www.cnvd.org.cn/flaw/show/CNVD-2019-05679 /admin.php?mAcquisiashowCjDataid1lid1cid1 根据 RCE 的特点在功能上没有强特征搜索 eval 关键字先看控制层 观察到参数似乎可控 进入 caijiDtaOne 分析
多半是要执行SQL 查询数据表的数据inx_cj_data data被取出来作为 eval 代码执行 如何往data写数据在采集管理中添加后台添加 eval() 绕过通过 注释符完成。 功能法-RCE https://www.cnvd.org.cn/flaw/show/CNVD-2019-05678 TemplateAction.class.php {php} phpinfo();{/php} 从功能点发现的与代码无关数据会被模板渲染数据可能是直接写死的或者从数据库查出来的 后台可以直接修改模板 对比法拿0day-1.41版本 UltraCompare对比 文件对比差异
1、快速找到脆弱点通过对比找到脆弱的地方新版本修复了什么就可能是旧版本的漏洞
2、帮助你快速测试新版本 有无 0day CNVD-命令执行1day-baijiacms4.1.4版本 https://www.cnvd.org.cn/flaw/show/CNVD-2021-12800 搜索法system-common.inc.php-file_save-setting.php 条件 1、$extentiontxt 2、weixin_verify_file有值 3、$settings[image_compress_openscale]1 开启image_compress_openscale1 /index.php?modsiteactmanagerdonetattach 上传weixin_verify_file /index.php?modsiteactweixindosetting 触发weixin_verify_file weixin_verify_file filenamewhoami.txt 搜索关键字 分析第二个参数是否可控来源于函数的第四个参数 这里调用这个函数 看看 $_FILE 参数是否可控 登陆后台 根据参数翻翻项目的目录即可找到URL对应的文件 搜索条件2 搜索关键字在html文件中发现访问对应页面 抓包上传