oin

writeup


cyberpunk

<p>[TOC]</p> <h1>🌓分析</h1> <p>题目给定了一个VxWorks虚拟机 先跑起来看一看 <img src="https://pic.imgdb.cn/item/638c3d7616f2c2beb158a82a.png" alt="Img" /> 键入help看一下有没有帮助信息 <img src="https://pic.imgdb.cn/item/638c3da216f2c2beb158d4dc.png" alt="Img" /> 发现有个特殊指令flag,键入试试 <img src="https://pic.imgdb.cn/item/638c3dc716f2c2beb158fb67.png" alt="Img" /> <img src="https://pic.imgdb.cn/item/638c3dfd16f2c2beb1592f90.png" alt="Img" /> 找到关键信息,flag在系统image同级目录中,而且支持标准C语言,先看一下有哪些设备 <img src="https://pic.imgdb.cn/item/638c3e4516f2c2beb1597b26.png" alt="Img" /> ata0a应该就是系统image的目录,直接用chdir函数进入该目录 <img src="https://pic.imgdb.cn/item/638c3e8416f2c2beb159ca1f.png" alt="Img" /> 找到了flag文件,用open,read来读取</p> <pre><code class="language-c">&gt; f = open("flag") &gt; buf = malloc(0x100) &gt; memset(buf, 0, 0x100) &gt; read(f, buf, 0x100)</code></pre> <p><img src="https://pic.imgdb.cn/item/638c3f2416f2c2beb15adce2.png" alt="Img" /> 这时候已经读取成功了,有83个字节,用xor函数进行处理,然后打印出来</p> <pre><code class="language-c">&gt; printf("%s\n", xor(buf, 83))</code></pre> <p><img src="https://pic.imgdb.cn/item/638c3f7416f2c2beb15b2f65.png" alt="" /> 发现是base64加密</p> <pre><code>ZmxhZ3thZGFtX3NtYXNoZXJfa21sbGVkX2FfdGhvdXNhbmRfdG1tZXNfaXNfbm90X3Rvb19tdWNofQ==</code></pre> <p>解密后得到</p> <pre><code>flag{adam_smasher_kmlled_a_thousand_tmmes_is_not_too_much}</code></pre> <p>输入中间的试试是否正确 <img src="https://pic.imgdb.cn/item/638c3fe916f2c2beb15bafc4.png" alt="Img" /> 可能base64中间有部分出错了,但是VxWorks支持ctrl+D自动补全命令函数 <img src="https://pic.imgdb.cn/item/638c403216f2c2beb15bfb75.png" alt="Img" /></p> <pre><code>adam_smasher_killed_a_thousand_times_is_not_too_much</code></pre> <p><img src="https://pic.imgdb.cn/item/638c404c16f2c2beb15c16e2.png" alt="Img" /> 销毁成功,flag就为</p> <pre><code>flag{adam_smasher_killed_a_thousand_times_is_not_too_much}</code></pre> <h1>🌓附件</h1> <p><a href="https://cowtransfer.com/s/6af7f8e5c25b4d">https://cowtransfer.com/s/6af7f8e5c25b4d</a></p>

页面列表

ITEM_HTML