fastjson有漏洞检测工具吗?fastjson如何处理日期?

Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为Java 对象,但是fastjson有漏洞,因为我们需要有检测工具去检测,那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有漏洞检测工具吗?fastjson如何处理日期?.png

如果存在fastjson漏洞的话,会弹出存在漏洞的弹框。

2.漏洞利用

在下载连接里有两个连接地址,第一个是工具,第二个是利用脚本。我们将这两个放在同一目录下。

1.png

然后,按照下面步骤

2.png

在第三步监听后,会创建监听

3.png

然后,执行第四步和第五步之后,点击发送,会执行命令。

4.png

我们去容器中查看命令是否执行成功,可以看到已经创建成功了。

5.png

这里还有远程的使用方法,只要把fastjson_tool.jar放在远程服务器(linux)的root目录下

输入账号密码后,点击测试看是否连接成功。成功后,直接在下面输入攻击地址,再输入版本号,点击发送即可。

fastjson如何处理日期?

fastjson处理日期的API很简单,例如:

JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS")

使用ISO-8601日期格式

JSON.toJSONString(obj, SerializerFeature.UseISO8601DateFormat);

全局修改日期格式

JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);

反序列化能够自动识别如下日期格式:

ISO-8601日期格式

yyyy-MM-dd

yyyy-MM-dd HH:mm:ss

yyyy-MM-dd HH:mm:ss.SSS

毫秒数字

毫秒数字字符串

.NET JSON日期格式

new Date(198293238)

fastjson处理日期的问题还是很简单的,如果遇到日期问题的,我们按照以上的方法就可以解决了,另外,fastjson检测漏洞工具可以参考以上步骤哦!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

java怎么运行代码?java代码运行步骤

资深java面试题有哪些?资深java面试题及答案大全

java有哪些网络编程课程?如何学习java编程?