<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Crc32 on 知识带给我们自由</title>
    <link>https://yuexuan521.github.io/zh/tags/crc32/</link>
    <description>Recent content in Crc32 on 知识带给我们自由</description>
    <image>
      <title>知识带给我们自由</title>
      <url>https://yuexuan521.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://yuexuan521.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.160.1</generator>
    <language>en-us</language>
    <copyright>See this site&amp;rsquo;s source code here, licensed under GPLv3 ·</copyright>
    <lastBuildDate>Thu, 20 Nov 2025 09:01:00 +0000</lastBuildDate>
    <atom:link href="https://yuexuan521.github.io/zh/tags/crc32/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>BUUCTF zip 1</title>
      <link>https://yuexuan521.github.io/zh/posts/buuctf-zip-1/</link>
      <pubDate>Thu, 20 Nov 2025 09:01:00 +0000</pubDate>
      <guid>https://yuexuan521.github.io/zh/posts/buuctf-zip-1/</guid>
      <description>&lt;p&gt;
&lt;div class=&#34;post-img-view&#34;&gt;
    &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190415529.png&#34;&gt;
        &lt;img src=&#34;https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190415529.png&#34; 
             alt=&#34;&#34; 
              
             loading=&#34;lazy&#34;
        /&gt;
    &lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BUUCTF: &lt;a href=&#34;https://buuoj.cn/challenges&#34;target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://buuoj.cn/challenges&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;相关阅读
&lt;a href=&#34;https://ctf-wiki.org/&#34;target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CTF Wiki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;div class=&#34;post-img-view&#34;&gt;
    &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190417993.png&#34;&gt;
        &lt;img src=&#34;https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190417993.png&#34; 
             alt=&#34;在这里插入图片描述&#34; 
              
             loading=&#34;lazy&#34;
        /&gt;
    &lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;h3 id=&#34;题目描述&#34;&gt;题目描述：&lt;/h3&gt;
&lt;p&gt;拼在一起解下base64就有flag 注意：得到的 flag 请包上 flag{} 提交&lt;/p&gt;
&lt;h3 id=&#34;密文&#34;&gt;密文：&lt;/h3&gt;
&lt;hr&gt;
&lt;h3 id=&#34;解题思路&#34;&gt;解题思路：&lt;/h3&gt;
&lt;p&gt;1、将下载的压缩包解压，得到68个小压缩包，压缩包内部文件4个字节，符合CRC32爆破条件&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190415529.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190415529.png" 
             alt="" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p><strong>BUUCTF: <a href="https://buuoj.cn/challenges"target="_blank" rel="noopener noreferrer">https://buuoj.cn/challenges</a></strong></p>
<hr>
<p>相关阅读
<a href="https://ctf-wiki.org/"target="_blank" rel="noopener noreferrer">CTF Wiki</a></p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190417993.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190417993.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<h3 id="题目描述">题目描述：</h3>
<p>拼在一起解下base64就有flag 注意：得到的 flag 请包上 flag{} 提交</p>
<h3 id="密文">密文：</h3>
<hr>
<h3 id="解题思路">解题思路：</h3>
<p>1、将下载的压缩包解压，得到68个小压缩包，压缩包内部文件4个字节，符合CRC32爆破条件</p>
<blockquote>
<p>注意：一般数据内容小于5Bytes(&lt;=4Bytes)即可尝试通过爆破CRC32穷举数据内容</p>
</blockquote>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190419984.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190419984.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>2、使用CRC32爆破脚本尝试爆破第一个压缩包out0.zip，爆破成功得到文件内容 <code>z5Bz</code> ，根据题目提示，这是base64编码文件的一部分，需要将所有out*.zip压缩包的文件拼接才能拿到完整的文件

<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190421759.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190421759.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>编写Python脚本进行自动化爆破，借鉴其他人的脚本</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1">#python3</span>
</span></span><span class="line"><span class="cl">import zipfile
</span></span><span class="line"><span class="cl">import string
</span></span><span class="line"><span class="cl">import binascii
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">def CrackCrc<span class="o">(</span>crc<span class="o">)</span>:
</span></span><span class="line"><span class="cl">	<span class="k">for</span> i in dic:
</span></span><span class="line"><span class="cl">		<span class="k">for</span> j in dic:
</span></span><span class="line"><span class="cl">			<span class="k">for</span> k in dic:
</span></span><span class="line"><span class="cl">				<span class="k">for</span> h in dic:
</span></span><span class="line"><span class="cl">					<span class="nv">s</span> <span class="o">=</span> i + j + k + h
</span></span><span class="line"><span class="cl">					<span class="k">if</span> <span class="nv">crc</span> <span class="o">==</span> <span class="o">(</span>binascii.crc32<span class="o">(</span>s.encode<span class="o">()))</span>:
</span></span><span class="line"><span class="cl">						f.write<span class="o">(</span>s<span class="o">)</span>
</span></span><span class="line"><span class="cl">						<span class="k">return</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">def CrackZip<span class="o">()</span>:
</span></span><span class="line"><span class="cl">	<span class="k">for</span> i in range<span class="o">(</span>0,68<span class="o">)</span>:
</span></span><span class="line"><span class="cl">		<span class="c1"># 压缩包文件路径</span>
</span></span><span class="line"><span class="cl">		<span class="nv">file</span> <span class="o">=</span> <span class="s1">&#39;out&#39;</span>+str<span class="o">(</span>i<span class="o">)</span>+<span class="s1">&#39;.zip&#39;</span>
</span></span><span class="line"><span class="cl">		<span class="nv">crc</span> <span class="o">=</span> zipfile.ZipFile<span class="o">(</span>file,<span class="s1">&#39;r&#39;</span><span class="o">)</span>.getinfo<span class="o">(</span><span class="s1">&#39;data.txt&#39;</span><span class="o">)</span>.CRC
</span></span><span class="line"><span class="cl">		CrackCrc<span class="o">(</span>crc<span class="o">)</span>
</span></span><span class="line"><span class="cl">		print<span class="o">(</span><span class="s1">&#39;\r&#39;</span>+<span class="s2">&#34;loading：{:%}&#34;</span>.format<span class="o">(</span>float<span class="o">((</span>i+1<span class="o">)</span>/68<span class="o">))</span>,end<span class="o">=</span><span class="s1">&#39;&#39;</span><span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">dic</span> <span class="o">=</span> string.ascii_letters + string.digits + <span class="s1">&#39;+/=&#39;</span>
</span></span><span class="line"><span class="cl"><span class="nv">f</span> <span class="o">=</span> open<span class="o">(</span><span class="s1">&#39;out.txt&#39;</span>,<span class="s1">&#39;w&#39;</span><span class="o">)</span>
</span></span><span class="line"><span class="cl">print<span class="o">(</span><span class="s2">&#34;\nCRC32begin&#34;</span><span class="o">)</span>
</span></span><span class="line"><span class="cl">CrackZip<span class="o">()</span>
</span></span><span class="line"><span class="cl">print<span class="o">(</span><span class="s2">&#34;CRC32finished&#34;</span><span class="o">)</span>
</span></span><span class="line"><span class="cl">f.close<span class="o">()</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>运行脚本，得到out.txt文件</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">z5BzAAANAAAAAAAAAKo+egCAIwBJAAAAVAAAAAKGNKv+a2MdSR0zAwABAAAAQ01UCRUUy91BT5UkSNPoj5hFEVFBRvefHSBCfG0ruGnKnygsMyj8SBaZHxsYHY84LEZ24cXtZ01y3k1K1YJ0vpK9HwqUzb6u9z8igEr3dCCQLQAdAAAAHQAAAAJi0efVT2MdSR0wCAAgAAAAZmxhZy50eHQAsDRpZmZpeCB0aGUgZmlsZSBhbmQgZ2V0IHRoZSBmbGFnxD17AEAHAA<span class="o">==</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190423301.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190423301.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>3、使用在线工具进行解密，看到解出的明文中有如下提示信息：
<a href="https://the-x.cn/encodings/Base64.aspx"target="_blank" rel="noopener noreferrer">Base64 在线解码、编码</a></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flag.txt
</span></span><span class="line"><span class="cl">fix the file and get the flag
</span></span></code></pre></td></tr></table>
</div>
</div><p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190424904.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190424904.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>提示我们修复这个文件，可以拿到flag。文件尾与RAR文件尾一致（ <code>C4 3D 7B 00 40 07 00</code> ），可以确定为rar压缩包，但缺少文件头，需要补上缺失的文件头。

<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190426964.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190426964.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="m">52</span> <span class="m">61</span> <span class="m">72</span> <span class="m">21</span> 1A <span class="m">07</span> <span class="m">00</span>   <span class="c1"># RAR文件头</span>
</span></span><span class="line"><span class="cl">C4 3D 7B <span class="m">00</span> <span class="m">40</span> <span class="m">07</span> <span class="m">00</span>   <span class="c1"># RAR文件尾</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>用010 Editor打开，补上文件头，另存为.rar文件。

<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190429011.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190429011.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>最后在rar压缩包的注释中找到flag。

<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190430981.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228190430981.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<h3 id="flag">flag：</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flag<span class="o">{</span>nev3r_enc0de_t00_sm4ll_fil3_w1th_zip<span class="o">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
  </channel>
</rss>
