Fastjson是Alibaba开发的,Java语言编写的高性能Json库,号称Java语言中最快的Json库,但就是这么好用的Json库也存在着漏洞,那fastjson漏洞测利用工具有哪些?下面来我们就来给大家讲解一下。
有的时候,我们在渗透测试发现fastjson资产情况下,找不到利用工具,这里推荐一款图形化的工具
1.下载地址
https://github.com/nex121/FastjsonEXP
2.利用工具实现Fastjson 1.2.47 远程命令执行漏洞
靶场:Vulhub靶场,docker启动。
vulhub/fastjson/1.2.47-rce
docker-compose up -d
1.检测漏洞是否存在
这里我们在输入目标地址的时候,要输入http,否则可能不能解析。
如果存在fastjson漏洞的话,会弹出存在漏洞的弹框。
2.漏洞利用
在下载连接里有两个连接地址,第一个是工具,第二个是利用脚本。我们将这两个放在同一目录下。
然后,按照下面步骤
在第三步监听后,会创建监听
然后,执行第四步和第五步之后,点击发送,会执行命令。
我们去容器中查看命令是否执行成功,可以看到已经创建成功了。
这里还有远程的使用方法,只要把fastjson_tool.jar放在远程服务器(linux)的root目录下
输入账号密码后,点击测试看是否连接成功。成功后,直接在下面输入攻击地址,再输入版本号,点击发送即可。
fastjson反序列化原理是什么?
反序列化原理:
Fastjson反序列化,即在代码中调用JSON.parse(jsonstr)、JSON.parseObject(jsonstr)等方法的时候,实现将json格式的字符转换为一个Java对象的过程。在进行反序列化的时候会根据json中的字段自动调用对象的set和get方法,当方法中存在可利用点的时候就会造成安全漏洞。具体分析原理分析网上已经很多了,这里不做太多阐述。
分析:
在大多数应用场景中,Fastjson仅仅作为第三方依赖嵌入到项目中,这种形式导致了Poc无法控制Web容器的Response对象(当然针对特定容器可以,使用TemplatesImpl加载字节码,这个poc比较老了,基本都补了)实现命令执行结果回显输出。目前网上公开的Poc基本都是利用JNDI注入,使用JNDI注入实现代码执行的Poc都有一个弱点,就是需要目标服务器能够出互联网。
fastjson漏洞测利用工具我们可以按照以上的方法去检测,虽说fastjson一直有漏洞,但我们也是可以避免的。最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: