day34WEB 攻防-通用漏洞文件上传黑白盒审计逻辑中间件外部引用

news/2024/7/24 2:40:19 标签: 中间件

目录

一,白盒审计-Finecms-代码常规-处理逻辑

黑盒思路:寻找上传点抓包修改突破获取状态码及地址

审计流程:功能点-代码文件-代码块-抓包调试-验证测试

二,白盒审计-CuppaCms-中间件-.htaccess

三,白盒审计-Metinfo-编辑器引用-第三方安全


配套资源(百度网盘):

链接:https://pan.baidu.com/s/1kl84Z8ttjp_pI4tWskcv-A?pwd=mnkl 
提取码:mnkl
本章知识点:
1 、白盒审计三要素
2 、黑盒审计四要素
3 、白黑测试流程思路
前置知识:
后门代码需要用特定格式后缀解析,不能以图片后缀解析脚本后门代码 ( 解析漏洞除外 )
如: jpg 图片里面有 php 后门代码,不能被触发,所以连接不上后门
如果要图片后缀解析脚本代码,一般会利用包含漏洞或解析漏洞,还 有.user.ini&.htaccess
文件上传:
黑盒:寻找一切存在文件上传的功能应用
1 、个人用户中心是否存在文件上传功能
2 、后台管理系统是否存在文件上传功能
3 、字典目录扫描探针文件上传构造地址
4 、字典目录扫描探针编辑器目录构造地址
白盒:看三点,中间件,编辑器,功能代码
1 中间件直接看语言环境常见搭配
2 、编辑器直接看目录机构或搜索关键字
3 、功能代码直接看源码应用或搜索关键字

一,白盒审计-Finecms-代码常规-处理逻辑

黑盒思路:寻找上传点抓包修改突破获取状态码及地址

进入网站首页,注册登入,进入个人中心上传图片并抓包分析

通过抓包发现,请求数据包并没有看到图片的名称以及类型,这里猜测tk的值就是图片信息,并且进行了base64编码,这里解码tk值看看

解码发现内容和图片16进制内容有相似之处,现在将tk值的jpg替换成php,并将后面的用一句话木马进行替换,注意后面代码也要用base64编码

根据返回信息无法判断有没有上传成功,我们根据上传成功的图片路径访问.php文件看看结果

返回404错误,现在有两种可能,一就是没有上传成功,二就是上传成功但是路径不一样了,或者文件名被改了

审计流程:功能点-代码文件-代码块-抓包调试-验证测试

通过抓包获取基本路径,然后找到对应的php文件,找到对应函数进行分析

源码

 public function upload() {

        // 创建图片存储文件夹
        $dir = SYS_UPLOAD_PATH.'/member/'.$this->uid.'/';
        @dr_dir_delete($dir);
        !is_dir($dir) && dr_mkdirs($dir);

        if ($_POST['tx']) {
            $file = str_replace(' ', '+', $_POST['tx']);
            if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)){
                $new_file = $dir.'0x0.'.$result[2];
                if (!@file_put_contents($new_file, base64_decode(str_replace($result[1], '', $file)))) {
                    exit(dr_json(0, '目录权限不足或磁盘已满'));
                } else {
                    $this->load->library('image_lib');
                    $config['create_thumb'] = TRUE;
                    $config['thumb_marker'] = '';
                    $config['maintain_ratio'] = FALSE;
                    $config['source_image'] = $new_file;
                    foreach (array(30, 45, 90, 180) as $a) {
                        $config['width'] = $config['height'] = $a;
                        $config['new_image'] = $dir.$a.'x'.$a.'.'.$result[2];
                        $this->image_lib->initialize($config);
                        if (!$this->image_lib->resize()) {
                            exit(dr_json(0, '上传错误:'.$this->image_lib->display_errors()));
                            break;
                        }
                    }
                    list($width, $height, $type, $attr) = getimagesize($dir.'45x45.'.$result[2]);
                    !$type && exit(dr_json(0, '图片字符串不规范'));
                }
            } else {

                exit(dr_json(0, '图片字符串不规范'));
            }
        } else {
            exit(dr_json(0, '图片不存在'));
        }

通过对代码的阅读发现,并没有都文件进行过滤,但是将文件前缀改成了0x0,现在我们尝试将名称改为0x0再次访问

发现执行成功,说明我们刚刚上传的php文件上传成功了,只是名称被改了

二,白盒审计-CuppaCms-中间件-.htaccess

黑盒思路:存在文件管理上传改名突破,访问后在突破

无法上传php文件,但是通过修改名称抓包,将后缀改掉可以成功将文件后缀该成.php,但是.php文件并不能执行,没有执行权限,因为同目录下有.htaccess文件,限制了php文件的权限。可以通过删除.htaccess文件使php文件拥有权限,也可以在修改名称的时候将文件放到上一级目录。

审计流程:功能点-代码文件-代码块-抓包调试-验证测试

三,白盒审计-Metinfo-编辑器引用-第三方安全

黑盒思路:探针目录利用编辑器漏洞验证测试

用目录扫描器扫描发现存在fckeditor编辑器,通过版本路径获取版本,根据版本查找有没有exp

审计流程:目录结构 - 引用编辑器 - 编辑器安全查询 -EXP 利用验证

http://www.niftyadmin.cn/n/5349826.html

相关文章

HCS-华为云Stack-FusionSphere

HCS-华为云Stack-FusionSphere FusionSphere是华为面向多行业客户推出的云操作系统解决方案。 FusionSphere基于开放的OpenStack架构,并针对企业云计算数据中心场景进行设计和优化,提供了强大的虚拟化功能和资源池管理能力、丰富的云基础服务组件和工具…

力扣hot100 最小栈 变种栈

Problem: 155. 最小栈 文章目录 思路💖 Stack 自定义 Node🍻 Code 思路 👩‍🏫 甜姨 💖 Stack 自定义 Node 时间复杂度: O ( 1 ) O(1) O(1) 空间复杂度: O ( n ) O(n) O(n) 🍻 Code class MinS…

mac配置L2TP连接公司内网

1. 打开系统设置 2. 打开网络 3. 点击网络页面其他服务右下角三个点,添加VPN配置中的L2TP 4. 配置VPN,服务器填写公司的服务器ip,共享密钥没有可以随便填写 5. 打开终端编辑文件 sudo vim /etc/ppp/opt…

Vue组件化开发基础-脚手架

一、Vue组件化开发思想 1.人处理问题的方式 人面对复杂问题的处理方式: 任何一个人处理信息的逻辑能力都是有限的所以,当面对一个非常复杂的问题时,我们不太可能一次性搞定一大堆的内容。但是,我们人有一种天生的能力&#xff…

muduo源码阅读笔记(11、TcpClient)

muduo源码阅读笔记(11、TcpClient) Muduo源码笔记系列: muduo源码阅读笔记(0、下载编译muduo) muduo源码阅读笔记(1、同步日志) muduo源码阅读笔记(2、对C语言原生的线程安全以及…

【线性代数与矩阵论】矩阵的酉相似

矩阵的酉相似(合同变换) 2023年11月7日 #algebra 文章目录 矩阵的酉相似(合同变换)1. 酉矩阵2. 酉相似3. Schur分解定理4. 正规矩阵5. 酉相似对角化6. Hermit矩阵,反Hermit矩阵及酉矩阵的特性7. Hermit矩阵的正定性下…

UE4 CustomDepthMobile流程小记

原生UE opaque材质中获取CustomDepth/CustomStencil会报错 在其Compile中调用的函数中没有看到报错逻辑 材质节点的逻辑都没有什么问题,所以看一下报错 在HLSLMaterialTranslator::Translate中 修改之后 mobile流程的不透明材质可以直接获取SceneTexture::customd…

React中文官网已经搬迁了,原网址内容将不再更新

注意1:React中文官网已经搬迁至-React 官方中文文档,原网址内容将不再更新 注意2:React官网已经将React的定义由“用于构建用户界面的 JavaScript 库”更改为“用于构建 Web 和原生交互界面的库”。