PHP反序列化题目中对符号|PHP反序列化题目中对符号 “&“ 的记录
【PHP反序列化题目中对符号|PHP反序列化题目中对符号 “&“ 的记录】近日在研习那本《CTF特训营》,发现了一些知识盲区,特此记录
参考:
https://skysec.top/2017/06/20/GCTF的一道php反序列化题目
https://github.com/paul-axe/ctf
PHP因为其和C的密切关系其语言特性和C有十分相似的地方,其中一个就是这个PHP引用(&)
在反序列化题目中通过引用可以达到绕过某些过滤的目的
这里摘抄一个代码片段
文章图片
大体的意思就是需要构造一个不被转义的php tag(即绕过htmlspecialchars()),从renderVars方法中可以看到,返回的$ content在过滤前会被 $ this->view[“content”]赋值。
如果我们能在赋值之前控制$this->view,将其变成字符串而非数组,那么便可以绕过过滤(如图8-7所示),这里需要用到2017 GCTF中的一个方法(见参考)。
这个方法利用的是“&”符,比如“ $ this->vars[“text”]=& $ this->view;
”,此时只要改变 $ text的值,即可达到更改 $ this->view的目的。
需要注意的是有无&符号反序列化的结果当然是不同的,但这个不同在表面是看不出来的
文章图片
这个不同在hex里才能有所体现
文章图片
因此生成payload时应该直接urlencode,防止粘贴来粘贴去的有些应用直接给你去掉了
推荐阅读
- 2018-02-06第三天|2018-02-06第三天 不能再了,反思到位就差改变
- 吃了早餐,反而容易饿(为什么?)
- 父母越不讲道理,孩子反而越优秀!说的是你吗()
- 改变自己,先从自我反思开始
- leetcode|leetcode 92. 反转链表 II
- 那些反串过的艺人-最是美色如醉人
- thinkphp|thinkphp 3.2 如何调用第三方类库
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 反脆弱性(工作越稳定,人生越脆弱!)
- 五一反思