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

设计师做兼职的网站有哪些百度互联网营销

设计师做兼职的网站有哪些,百度互联网营销,西安市建设委员会的网站,长沙网页设计目录 一、了解pop链 1、pop链: 2、pop链触发规则: (1)通过普通函数触发: (2)通过魔术方法触发: 3、pop链魔术方法例题: 一、了解pop链 1、pop链: pop链…

目录

一、了解pop链

1、pop链:

2、pop链触发规则:

(1)通过普通函数触发:

(2)通过魔术方法触发:

3、pop链魔术方法例题:


一、了解pop链

1、pop链:

pop链,全称"Property Overwrite Protection",是一种通过反序列化来构造的攻击载荷。

2、pop链触发规则:

(1)通过普通函数触发:

打开靶场,观察源代码:

<?php
highlight_file(__FILE__);
error_reporting(0);
class index {private $test;public function __construct(){$this->test = new normal();}public function __destruct(){$this->test->action();}
}
class normal {public function action(){echo "please attack me";}
}
class evil {var $test2;public function action(){eval($this->test2);}
}
unserialize($_GET['test']);
?> 

观察到eval()函数,说明我们需要利用eval()函数来拿到用户信息,eval()函数是通过 函数action() 来调用的,所以我们去上面找谁能够调用action函数,我们发现 类index中的_destruct()函数能够调用eval()函数,但是调用的是类normal中的action函数,我们只需要构造序列化字符串让_destruct()函数中的test属性调用类evil中的action()函数即可。并将我们的恶意代码赋值给$test2,上传给['test']就可以打到目的。

注意序列化字符串中,由于$test为私有属性,所以要将indextest改写为 %00index%00test。

赋值给['test']并上传:

用户id信息成功显示。

(2)通过魔术方法触发:

打开靶场,观察源代码:

<?php
highlight_file(__FILE__);
error_reporting(0);
class fast {public $source;public function __wakeup(){echo "wakeup is here!!";echo  $this->source;}
}
class sec {var $benben;public function __tostring(){echo "tostring is here!!";}
}
$b = $_GET['benben'];
unserialize($b);
?> 

目标:同时触发_wakeup()和_toString()两个函数:

_wakeup()在反序列化时自动调用。_toString()在将对象作为字符串时自动调用。

对['benben']进行赋值后_wakeup()函数一定会被触发。

对于_toString()函数,我们只需要构造payload,将类sec的实例化对象赋值给类fast的实例化对象,这样就可以触发_toString方法。

构造payload:


 

将payload赋值给['benben'],页面结果如下:


3、pop链魔术方法例题:

<?php
//flag is in flag.php
highlight_file(__FILE__);
error_reporting(0);
class Modifier {private $var;public function append($value){include($value);echo $flag;}public function __invoke(){$this->append($this->var);}
}class Show{public $source;public $str;public function __toString(){return $this->str->source;}public function __wakeup(){echo $this->source;}
}class Test{public $p;public function __construct(){$this->p = array();}public function __get($key){$function = $this->p;return $function();}
}if(isset($_GET['pop'])){unserialize($_GET['pop']);
}
?> 

第一步:根据 flag is in flag.php,应将$value赋值为 flag.php

第二步:触发_invoke()函数来调用append()函数,_invoke函数的触发条件是将对象当作函数来进行使用。

第三步:将类Test中的属性p赋值为类Modifier的实例化对象并将其赋值给$function,凭借return function()来调用_invoke()函数。

第四步:触发_get()函数,_get()函数的调用方法是调用一个类中没有的属性,将类Show中的$str赋值为类Test的实例化对象,Test的实例化对象中不存在属性$source,这样调用类中不存在的属性,就可以_get()函数。

第五步:触发_toString()函数,将类Show的实例化对象show赋值给$source,利用反序列化时调用_wakeup()函数的机会,来触发_toString()函数。

我们通过以上分析来尝试构造payload:

注意:类Modifier中的$var属性为私有属性,我们应该在 Modifier的两边加上 %00 再将其填写到url中去。

可以看到 flag 成功回显。

http://www.yidumall.com/news/82152.html

相关文章:

  • 网站做流量推广的方式淘数据
  • 免费做自荐书的网站seo外链技巧
  • 郑州中原区最新疫情郑州seo优化公司
  • 网站怎么自己优化免费制作永久个人网站
  • 网站建设与推广毕业论文家庭优化大师下载
  • 道教佛像网站怎么做网上推广培训
  • 暴雪国服回归消息今天最新科学新概念seo外链平台
  • 厦门手机网站设计公司百度助手
  • 深圳网站建设忧化淘宝客怎么做推广
  • 怎么在vps上做网站推广普通话手抄报内容资料
  • 商城网站怎么做网络营销的概念及内容
  • 互联网相关行业有哪些seo网站推广排名
  • 深圳本地网站建设网站快速收录软件
  • 整站优化方案即刻搜索引擎入口
  • 网站怎么做安全世界搜索引擎公司排名
  • 网站建设需要租用什么科目网站关键词排名服务
  • 句容做网站温州seo顾问
  • 网站建设 设计 优化 维护网站按天扣费优化推广
  • 查邮箱注册的网站二十条疫情优化措施
  • github怎么导入wordpressseo品牌
  • 网站建设推销拜访客户怎么开头优秀企业网站模板
  • 网站维护一般多久全球搜怎么样
  • 嘉兴市建设派出所网站今日的头条新闻
  • 粘土做龙网站视频怎么去推广自己的网站
  • 抚顺网站建设中国新闻网
  • 重庆做网站的站长工具忘忧草
  • 如何做网站费用多少软文推广代表平台
  • 网站建设维护公司资质怎么优化推广自己的网站
  • 淘宝店招免费做的网站有推广关键词排名方法
  • 网站logo图怎么做企拓客app骗局