反序列化漏洞问题研究之php篇
2016-12-31 17:28
483 查看
0x01 简介
php的反序列化反序列化漏洞又称php对象注入(php Object Injection)产生的问题主要分以下两类:
将传来的序列化数据直接unserilize,造成魔术函数的执行。这种情况在一般的应用中依然屡见不鲜。
PHP Session 序列化及反序列化处理器设置不当会带来的安全隐患。(这个在乌云上之前已有文章有比较详细的介绍)
php的反序列化主要是unserialize代码执行,需要满足两个条件
unserialize()的参数用户可以控制,这样就可以构造出需要反序列化的数据结构。
存在__destruct()或者__wakeup()这样的魔术函数,魔术函数实现的逻辑决定了能执行什么样的代码。
关于一些php反序列化的漏洞
Exploiting PHP7 unserialize
https://www.youtube.com/watch?v=LDcaPstAuPk
0x03 防范:
不用使用serialize()和unserialize(),使用json_encode和json_decode()也可以达到相同的目的,如果使用了序列化,那么久不要将用户提交的数据传到unserialize()中去。
0x04 Reference:
1.http://lynahex.com/index.php/archives/PHP-Object-Injection.html
2.http://www.91ri.org/15925.html
3.http://www.venenof.com/index.php/archives/76/
4.http://rickgray.me/2015/11/06/unserialize-attack-with-vbulletin-5-x-x-rce.html
php的反序列化反序列化漏洞又称php对象注入(php Object Injection)产生的问题主要分以下两类:
将传来的序列化数据直接unserilize,造成魔术函数的执行。这种情况在一般的应用中依然屡见不鲜。
PHP Session 序列化及反序列化处理器设置不当会带来的安全隐患。(这个在乌云上之前已有文章有比较详细的介绍)
php的反序列化主要是unserialize代码执行,需要满足两个条件
unserialize()的参数用户可以控制,这样就可以构造出需要反序列化的数据结构。
存在__destruct()或者__wakeup()这样的魔术函数,魔术函数实现的逻辑决定了能执行什么样的代码。
关于一些php反序列化的漏洞
Exploiting PHP7 unserialize
https://www.youtube.com/watch?v=LDcaPstAuPk
0x03 防范:
不用使用serialize()和unserialize(),使用json_encode和json_decode()也可以达到相同的目的,如果使用了序列化,那么久不要将用户提交的数据传到unserialize()中去。
0x04 Reference:
1.http://lynahex.com/index.php/archives/PHP-Object-Injection.html
2.http://www.91ri.org/15925.html
3.http://www.venenof.com/index.php/archives/76/
4.http://rickgray.me/2015/11/06/unserialize-attack-with-vbulletin-5-x-x-rce.html
相关文章推荐
- 深入浅析PHP的session反序列化漏洞问题
- 常见php页面漏洞分析及相关问题解决
- PHP漏洞全解(一)-PHP网页的安全性问题
- LFI & RFI & PHP封装协议之安全问题研究
- PHP教程之PHP调用session_start后页面始终加载的问题研究
- 记录一个问题---php序列化一个数组保存到数据库中,读取之后反序列化出错
- 常见PHP页面漏洞分析及相关问题解决
- Java反序列化漏洞研究
- 转:PHP教程之PHP调用session_start后页面始终加载的问题研究
- php路径问题的研究!
- PHP高性能研究之APC&&zend导致502问题排查
- PHP漏洞全解(一)-PHP网页的安全性问题
- WordPress中的BackupBuddy插件importbuddy.php脚本授权问题漏洞
- PHP漏洞全解(一)-PHP网站的安全性问题
- PHP漏洞全解(一)-PHP网站的安全性问题
- PHP 进程锁定问题分析研究
- PHP中的序列化问题
- PHP漏洞全解(一)-PHP网页的安全性问题
- unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的 问题表现情况如下: emlog缓存的保存方式是将php的数据对象(数组)序列化(serialize)后以文件的形式存放,
- PHP漏洞全解(一)-PHP网站安全性问题