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

目录

一,白盒审计-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 利用验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/351879.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CVE-2024-23897 Jenkins 任意文件读取漏洞

项目介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。Jenkins是开源CI&CD软件领导者, 提供超过1000个插…

guhub访问

问题 访问不了guhub 解决过程 可以正常访问了 总结 此方法参考微软官方的方法,修改dns服务器网址,由原本的自动分配改为指定微软dns服务器网址

深度强化学习(王树森)笔记02

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…

苹果手机突然无服务了,这是怎么回事?

苹果手机无疑是一款备受青睐的智能设备,但有时候我们可能会面临一个令人困扰的情况——苹果手机突然无服务。这种情况可能会在任何时候发生,无论是在使用手机时,刚刚升级系统,或者是突然发现在本应有信号的区域却无法连接到运营商…

Linux——常用命令

1、命令的基本格式 对服务器来讲,图形界面会占用更多的系统资源,而且会安装更多的服务、开放更多的端口,这对服务器的稳定性和安全性都有负面影响。其实,服务器是一个连显示器都没有的家伙,要图形界面干什么&#xff…

Nodejs基础4之fs模块的批量重命名练习、path模块、HTTP协议

Nodejs基础 fs模块fs练习-批量重命名fs练习-批量排序重命名 path模块resolve 解决sep 分隔符parse 方法其他的几个方法 HTTP协议http报文安装fiddler软件配置fiddler使用fiddler 请求报文结构整体请求行请求方法URLHTTP版本号 请求头请求体 响应报文结构整体响应行响应状态码响…

用甘特图有效管理多个项目进度

当公司或组织同时承担多个项目时,合理规划各项目的时间节点与资源分配对确保高效完成至关重要。采用甘特图可以直观地展示多个项目的时间进程、关键里程碑以及资源分配情况,便于从宏观层面全面把控各项目的动态。 在线甘特图软件 zz-plan.com 提供了非常强大的时间轴规划功能,支…

14、Kafka ------ kafka 核心API 之 流API(就是把一个主题的消息 导流 到另一个主题里面去)

目录 kafka 核心API 之 流APIKafka流API的作用:流API的核心API:使用流API编程的大致步骤如下:代码演示 流API 用法MessageStream 流API 代码演示消息从 test1主题 导流到 test2主题演示使用匿名内部类对消息进行处理Topology 拓扑结构 讲解 代…

程序员该懂的一些测试(二)单元测试与集成测试

集成测试才是目的 单元测试只是对每个小模块进行的测试,可以理解成每次提交的一个小功能。 最终系统的良好运行依赖于这些小模块之间良好协作。所以需要有集成测试 集成测试回滚数据,保证测试的可重复性 我们可以把 ApplicationContext 理解成 DI 容器…

Transformer and Pretrain Language Models3-6

Pretrain Language Models预训练语言模型 content: language modeling(语言模型知识) pre-trained langue models(PLMs)(预训练的模型整体的一个分类) fine-tuning approaches GPT and BERT(…

【探索科技 感知未来】文心一言大模型

【探索科技 感知未来】文心大模型 🚩本文介绍 文心一言大模型是由中国科技巨头百度公司研发的一款大规模语言模型,其基于先进的深度学习技术和海量数据训练而成。这款大模型具备强大的自然语言处理能力,可以理解并生成自然语言,为…

JVM-字节码应用

一、字节码的应用远超你的想象 二、ASM介绍与读取字节码实战 用CoreAPI解析和TreeAPI都能做字节码解析,区别,TreeAPI必须读取完整字节码信息,才能做解析。 下面代码,使用CoreAPI做解析: package asm;public class MyM…

leetcode.2846. 边权重均等查询【lca+树形dp】

原题链接:2846. 边权重均等查询 题目描述: 现有一棵由 n 个节点组成的无向树,节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] [ui, vi, wi] 表示树中存在一条位于节点 ui …

微服务-微服务Alibaba-Nacos注册中心实现

1. 系统架构的演变 俗话说, 没有最好的架构,只有最合适的架构。 微服务架构也是随着信息产业的发展而出现的最有普 遍适用性的一套架构模式。通常来说,我们认为架构发展历史经历了这样一个过程:单体架构——> 垂直架构 ——&g…

leetcode 42.接雨水

问题1:怎么算接水量 总的接水量第一列接水量第二列接水量第三列接水量…最后一列接水量 问题2:当前列的接水量怎么计算 当前的接水量min(当前列左边最高的墙x1,当前列右边最高的墙x3)- 当前列x2的高度 问题2图解: …

蓝桥杯-sort排序(上)

sort排序 🎈1.算法说明🎈2.例题🔭2.1例题一🔭2.2例题二🔭2.3例题三🔭2.4例题四🔭2.5例题五🔭2.6例题六 🎈1.算法说明 🔎对于一个数组,通过对数组中…

新版UI界面影视小程序亲测无问题带详细搭建教程

新版UI界面影视小程序亲测无问题带详细搭建教程 环境php7.0 — fileinfo–redis–sg11 mysql5.5 apache2.4 添加站点php7.0—-创建ftp—-上传后端文件《后端文件修改,/maccms/wxapi/config/dbs.php–修改当前数据库》—-设置ssl—-打开数据库安装cms 安装好后管…

如何写出有效的单元测试?

什么是单元测试 《单元测试的艺术》中对单元测试的定义: 一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行校验。 单元测试几乎都是用单元测试框架编写的;只要产品代码…

免费数据恢复软件,帮你轻松恢复丢失数据!

“由于我经常会丢失各种文件,因此非常需要一款实用又有效的数据恢复软件,大家有什么推荐的吗?希望能给我出出主意!” 随着数字技术的不断发展,数据恢复软件在我们的生活中扮演着越来越重要的角色。当我们的硬盘或其他存…

Bluetooth Device Address(BD_ADDR) - 2

蓝牙核心规范:Core v5.3中关于蓝牙地址的其他说明 Vol 3: Host, Part C: Generic Access Profile 3 User interface aspects 3.2 Representation of Bluetooth parameters 3.2.1 Bluetooth Device Address (BD_ADDR) BD_ADDR 是蓝牙设备使用的地址。在设备发现过…