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

公司网络组建方案专注于上海seo做网站建设

公司网络组建方案,专注于上海seo做网站建设,redis 缓存 wordpress,网站降权查询工具前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理反序列化漏洞的一些成因原理 建议学习反序列化之前 先对php基础语法与面向对象有个大体的了解 (我觉得我整理的比较细致#xff0c;了解这俩是个啥就行) 漏洞实战情况 这个漏洞黑盒几乎不会被发现了解这俩是个啥就行) 漏洞实战情况 这个漏洞黑盒几乎不会被发现除非极少数个别特别奇葩离谱少见或者有内鬼作祟明摆着告诉你这里有个漏洞你来打我的情况。 大多数是白盒审计得出。 序列化与反序列化概念 需求分析 这里假设我们有一个类对象我们想要引用可以直接用文件导入。 但是假设我们想要传输这个类对象给其他主机。 我们不可能把整个类的代码都给复制然后发送。 这个时候就需要把他们转化为一种更能方便传输的形式。 这个过程成为序列化。 反序列化则是把序列的产物重新变为类对象 序列化 函数: serialize() 序列化后的产物模式: 代码演示 ?php class student{public $namejoker;private $age11;public function sayhello(){echo hellohello;} }$anew student(); $bserialize($a); echo $b; ? 结果如下: 反序列化 函数: unserialize() 他就是反过来能够把序列化的字符串转化为类对象可供使用。 代码演示 ?php class student{public $namejoker;private $age11;public function sayhello(){echo hellohello;} }$anew student(); $bserialize($a); $cunserialize($b); $c-sayhello(); ? 结果如下: 反序列化漏洞的成因与复现 原理分析 目标执行类中本不能执行的eval等危险函数。 反序列化可以覆盖原本的变量值所以可以帮住我们运行本不应该被运行的区域。 自拟案例演示 以下为一串代码。 ?php class student{public $namejoker;public $age11;public function runeval(){echo $this-age; //输出为19if ($this-age 18){system(ipconfig); //原本不能执行的区域被执行}} }$b$_GET[x]; $cunserialize($b); $c-runeval(); ? 代码解析 get传递一个x参数然后把他反序列化之后运行runeval方法。 类中有nameage属性以及一个方法。 方法输出age的值并且当age18的时候就会执行 system 而朋友system是个高危函数这里是固定的ipconfig如果这个参数可控那么就是一个大漏洞。 但是age明显固定是11啊根本不会执行system。这里就轮到反序列化漏洞登场。 漏洞利用过程 我们新建一个php文件 把上面类的php代码全复制过来。 ?php class student{public $namejoker;public $age11;public function runeval(){echo $this-age; //输出为19if ($this-age 18){system(ipconfig); //原本不能执行的区域被执行}} }$bnew student;$cserialize($b);echo $c; ? 接下来删减代码仅保留我们要更改的地方 要尽量的减少对原代码运行的影响防止功能错乱。 这里我们只需要改一个age属性值让他能过检查即可那么把age留下其余的全部删除 ?php class student{public $age19; }$bnew student;$cserialize($b);echo $c; ? 然后下面给他序列化输出一下。 把这串序列化字符串作为x传入原先的地方。 这里对比一下源代码 ?php class student{public $namejoker;public $age11;public function runeval(){echo $this-age; //输出为19if ($this-age 18){system(ipconfig); //原本不能执行的区域被执行}} }$b$_GET[x]; $cunserialize($b); $c-runeval(); ? runeval函数中输出age的地方输出了19 也就是说我们覆盖了原先的11 并且过了检查执行了system。 现在我们试想一下真实场景。 假如这个age是判断你是不是vlp呢 这样能不能绕过 对吧这个就是反序列化漏洞的一个基础的攻击形式。 反序列化进阶操作 在开发中几乎一定会用一些构造方法类中实例化其他类对象的操作。 而这些操作让我们有更大的操作空间让这个实例化跟打内网一样在类中各种横向移动建立隧道。 构造方法玩法 开发中几乎类都会执行一些构造方法。 构造方法的特点就是实例化的时候直接执行!!!! 没错直接执行!!! 具体的魔术方法以及作用参考我的这篇文章(太多了。。。) (有php面向对象基础的可以直接看下面没有的话先仔细看这个魔术方法不然看不懂下面是啥) php反序列化常见魔术方法整理-CSDN博客 看我们之前的代码  ?php class student{public $namejoker;public $age11;public function runeval(){echo $this-age; //输出为19if ($this-age 18){system(ipconfig); //原本不能执行的区域被执行}} }$b$_GET[x]; $cunserialize($b); $c-runeval(); ? 看下面类对象的实例化。 我们是直接传入然后手动执行了runeval。 但是如果不执行的话那不就是一点办法没有了嘛。 所以如果他有构造方法构造方法就会在反序列化的时候自动执行。 大大提升了我们的可玩性!! 看这个代码 ?php class student{public $namejoker;public $age11;public function __destruct(){echo aa;echo $this-age; //输出为19if ($this-age 18){system(ipconfig); //原本不能执行的区域被执行}}}$b$_GET[x]; $cunserialize($b); ? 仅仅进行了反序列化并没有执行方法但是类中有一个构造方法。 这个方法会在类结束的时候自动执行所以不好意思上一个payload依旧秒掉。 (注意一下实例化加个()我上面给忘了。。。) ?php class student{public $age19; }$bnew student();$cserialize($b);echo $c; ? pop链类跳跃 看下面代码 ?php class student1{public $namejoker;public $age11;public function getip(){echo system(ipconfig);} }class student2{public $name;public $age;public function __toString(){echo runing;$this-name-{$this-age}(); } }$b$_GET[x]; $cunserialize($b); echo $c; ? 这里有两个类仅仅靠源代码他们毫无关联。 很明显system在student1中 然而getip方法显然是没有被执行的。 student2有toString的方法如果类对象被当做字符串处理则会执行。 而下面那个echo明显作为了字符串所以能够执行toString。 然后里面的 $this-name-{$this-age}(); 两个属性值都能够被反序列化恶意更改让他实例化为student1并执行函数。 所以 ?php class student1{ }class student2{public $name;public $agegetip; }$cnew student2();$znew student1();$c-name$z;$dserialize($c);echo $d; ? 结语 看到这应该就会了解php反序列化漏洞的一个工作原理了。 但还是老规矩绕过策略与特殊玩法写在别的博客中。 别问我为毛老说写一个完整体系结果又写别的去了。。。 因为我写的过程中遇到一个点攻不破我就想摆烂了。
http://www.w-s-a.com/news/617127/

相关文章:

  • 东莞网站建设咨询公江西网站建设平台
  • 什么是网站功能源码下载站
  • 石家庄制作网站的公司双柏县住房和城乡建设局网站
  • 影视vip网站建设教程ppt模板免费下载 素材红色
  • 内蒙古城乡建设部网站首页平台网站建设ppt
  • 集约化网站建设项目官方网站建设
  • 原创先锋 北京网站建设网站开发电脑内存要多少
  • 婚恋网站建设项目创业计划书网站建设 食品
  • 免费建网站代码查询做导员的网站
  • 做网站的软件电子可以看女人不易做网站
  • 学校响应式网站模板下载仙居住房和城乡建设规划局网站
  • 推广网站的方法有拍卖网站建设
  • 网站建设网站排名优化中国网站服务器哪个好
  • asp网站应用程序网站建设需要提供的资料
  • 网站开发与设计.net微信小程序设计制作
  • 怎样做网站排名优化展馆设计费取费标准一览表
  • 网站建设去哪可接单网站建设与设计大作业
  • 休闲咖啡厅网站开发目标韩国小清新网站模板
  • 做微景观的网站制作网页模板适应不同分辨率
  • 最简单的网站系统昨天军事新闻最新消息
  • 做ps网页设计的网站有哪些wordpress内容付费
  • 有没有免费注册域名的网站科技小制作 手工 简单
  • 网站支付端口win10优化大师怎么样
  • 怎么做云购网站吗网站流量监测
  • 网站被恶意刷流量可以翻外墙的浏览器
  • 网站做直链下载存储解决方案怎么把网站设置为主页面
  • 西安做网站招聘深圳网站见
  • 网站怎么做优化百度能搜索到wordpress 子分类
  • 六安网站建设培训制作网站需要多少时间
  • 电子商务专业网站建设什么软件可以做动画视频网站