Site updated: 2021-04-10 20:02:51

This commit is contained in:
Cool-Y
2021-04-10 20:03:10 +08:00
parent 10f5186b29
commit c20f97ab14
126 changed files with 2582 additions and 2985 deletions

View File

@ -5,7 +5,7 @@
<html class="theme-next gemini use-motion" lang="zh-Hans">
<html class="theme-next muse use-motion" lang="zh-Hans">
<head><meta name="generator" content="Hexo 3.8.0">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@ -101,9 +101,9 @@
var NexT = window.NexT || {};
var CONFIG = {
root: '/',
scheme: 'Gemini',
scheme: 'Muse',
version: '5.1.4',
sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":false,"onmobile":false},
sidebar: {"position":"left","display":"always","offset":12,"b2t":false,"scrollpercent":false,"onmobile":false},
fancybox: true,
tabs: true,
motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
@ -351,6 +351,16 @@
<span class="post-comments-count">
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-comment-o"></i>
</span>
<a href="/2019/07/01/AFL-first-learn/#comments" itemprop="discussionUrl">
<span class="post-comments-count gitment-comments-count" data-xid="/2019/07/01/AFL-first-learn/" itemprop="commentsCount"></span>
</a>
</span>
@ -447,7 +457,7 @@
<hr>
<h1 id="0x02-AFL快速入门"><a href="#0x02-AFL快速入门" class="headerlink" title="0x02 AFL快速入门"></a>0x02 <a href="http://lcamtuf.coredump.cx/afl/QuickStartGuide.txt" target="_blank" rel="noopener">AFL快速入门</a></h1><p>1<code>make</code>编译AFL。如果构建失败请参阅docs / INSTALL以获取提示。<br>2查找或编写一个相当快速和简单的程序该程序从<strong><em>文件或标准输入</em></strong>中获取数据以一种有价值的方式处理它然后干净地退出。如果测试网络服务请将其修改为在前台运行并从stdin读取。在对使用校验和的格式进行模糊测试时也要注释掉校验和验证码。<br>遇到故障时程序必须正常崩溃。注意自定义SIGSEGV或SIGABRT处理程序和后台进程。有关检测非崩溃缺陷的提示请参阅<code>docs/README</code>中的第11节。<br>3使用afl-gcc编译要模糊的程序/库。一种常见的方法是:<br><figure class="highlight plain"><table><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">$ CC = /path/to/afl-gcc CXX =/path/to/afl-g++ ./configure --disable-shared</span><br><span class="line">$ make clean all</span><br></pre></td></tr></table></figure></p>
<p>如果程序构建失败,请联系 <a href="mailto:&#97;&#102;&#108;&#45;&#117;&#115;&#101;&#x72;&#x73;&#64;&#103;&#111;&#x6f;&#x67;&#x6c;&#101;&#x67;&#x72;&#x6f;&#117;&#112;&#x73;&#46;&#x63;&#111;&#109;" target="_blank" rel="noopener">&#97;&#102;&#108;&#45;&#117;&#115;&#101;&#x72;&#x73;&#64;&#103;&#111;&#x6f;&#x67;&#x6c;&#101;&#x67;&#x72;&#x6f;&#117;&#112;&#x73;&#46;&#x63;&#111;&#109;</a><br>4获取一个对程序有意义的小而有效的输入文件。在模糊详细语法SQLHTTP等也要创建字典<code>dictionaries/README.dictionaries</code>中所述。<br>5如果程序从stdin读取则运行<code>afl-fuzz</code>,如下所示:<br><code>./afl-fuzz -i testcase_dir -o findings_dir -- /path/to/tested/program [... program&#39;s cmdline ...]</code><br> 如果程序从文件中获取输入,则可以在程序的命令行中输入@@; AFL会为您放置一个自动生成的文件名。</p>
<p>如果程序构建失败,请联系 <a href="mailto:&#97;&#x66;&#108;&#x2d;&#117;&#x73;&#101;&#114;&#x73;&#64;&#103;&#111;&#111;&#103;&#108;&#101;&#103;&#114;&#x6f;&#x75;&#x70;&#x73;&#46;&#99;&#111;&#x6d;" target="_blank" rel="noopener">&#97;&#x66;&#108;&#x2d;&#117;&#x73;&#101;&#114;&#x73;&#64;&#103;&#111;&#111;&#103;&#108;&#101;&#103;&#114;&#x6f;&#x75;&#x70;&#x73;&#46;&#99;&#111;&#x6d;</a><br>4获取一个对程序有意义的小而有效的输入文件。在模糊详细语法SQLHTTP等也要创建字典<code>dictionaries/README.dictionaries</code>中所述。<br>5如果程序从stdin读取则运行<code>afl-fuzz</code>,如下所示:<br><code>./afl-fuzz -i testcase_dir -o findings_dir -- /path/to/tested/program [... program&#39;s cmdline ...]</code><br> 如果程序从文件中获取输入,则可以在程序的命令行中输入@@; AFL会为您放置一个自动生成的文件名。</p>
<p><strong>一些参考文档</strong></p>
<blockquote>
<p><a href="http://lcamtuf.coredump.cx/afl/README.txt" target="_blank" rel="noopener">docs/README</a> - AFL的一般介绍<br><a href="https://github.com/mirrorer/afl/blob/master/docs/perf_tips.txt" target="_blank" rel="noopener">docs/perf_tips.txt</a> - 关于如何快速模糊的简单提示,<br><a href="http://lcamtuf.coredump.cx/afl/status_screen.txt" target="_blank" rel="noopener">docs/status_screen.txt</a> - UI中显示的花絮的解释<br><a href="https://github.com/mirrorer/afl/blob/master/docs/parallel_fuzzing.txt" target="_blank" rel="noopener">docs/parallel_fuzzing.txt</a> - 关于在多个核上运行AFL的建议<br><a href="http://lcamtuf.coredump.cx/afl/demo/" target="_blank" rel="noopener">Generated test cases for common image formats</a> - 生成图像文件测试用例的demo<br><a href="http://lcamtuf.coredump.cx/afl/technical_details.txt" target="_blank" rel="noopener">Technical “whitepaper” for afl-fuzz</a> - 技术白皮书</p>
@ -464,10 +474,10 @@
</ol>
<hr>
<h1 id="0x04-AFL-README"><a href="#0x04-AFL-README" class="headerlink" title="0x04 AFL README"></a>0x04 <a href="http://lcamtuf.coredump.cx/afl/README.txt" target="_blank" rel="noopener">AFL README</a></h1><blockquote>
<p>Written and maintained by Michal Zalewski <a href="mailto:&#x6c;&#99;&#x61;&#x6d;&#x74;&#x75;&#x66;&#64;&#103;&#111;&#111;&#x67;&#x6c;&#101;&#46;&#99;&#x6f;&#109;" target="_blank" rel="noopener">&#x6c;&#99;&#x61;&#x6d;&#x74;&#x75;&#x66;&#64;&#103;&#111;&#111;&#x67;&#x6c;&#101;&#46;&#99;&#x6f;&#109;</a></p>
<p>Written and maintained by Michal Zalewski <a href="mailto:&#108;&#99;&#97;&#x6d;&#x74;&#117;&#102;&#x40;&#x67;&#x6f;&#111;&#103;&#108;&#x65;&#46;&#99;&#111;&#x6d;" target="_blank" rel="noopener">&#108;&#99;&#97;&#x6d;&#x74;&#117;&#102;&#x40;&#x67;&#x6f;&#111;&#103;&#108;&#x65;&#46;&#99;&#111;&#x6d;</a></p>
<p> Copyright 2013, 2014, 2015, 2016 Google Inc. All rights reserved.<br> Released under terms and conditions of Apache License, Version 2.0.</p>
<p> For new versions and additional information, check out:<br> <a href="http://lcamtuf.coredump.cx/afl/" target="_blank" rel="noopener">http://lcamtuf.coredump.cx/afl/</a></p>
<p> To compare notes with other users or get notified about major new features,<br> send a mail to <a href="mailto:&#97;&#102;&#108;&#x2d;&#117;&#x73;&#101;&#114;&#115;&#43;&#115;&#117;&#98;&#x73;&#99;&#x72;&#x69;&#x62;&#x65;&#x40;&#x67;&#111;&#x6f;&#x67;&#x6c;&#101;&#x67;&#x72;&#x6f;&#117;&#x70;&#x73;&#46;&#99;&#x6f;&#109;" target="_blank" rel="noopener">&#97;&#102;&#108;&#x2d;&#117;&#x73;&#101;&#114;&#115;&#43;&#115;&#117;&#98;&#x73;&#99;&#x72;&#x69;&#x62;&#x65;&#x40;&#x67;&#111;&#x6f;&#x67;&#x6c;&#101;&#x67;&#x72;&#x6f;&#117;&#x70;&#x73;&#46;&#99;&#x6f;&#109;</a>.</p>
<p> To compare notes with other users or get notified about major new features,<br> send a mail to <a href="mailto:&#x61;&#102;&#x6c;&#45;&#117;&#115;&#101;&#x72;&#x73;&#x2b;&#115;&#x75;&#98;&#115;&#99;&#114;&#105;&#x62;&#x65;&#x40;&#103;&#111;&#111;&#x67;&#108;&#101;&#103;&#x72;&#x6f;&#x75;&#112;&#x73;&#x2e;&#x63;&#x6f;&#x6d;" target="_blank" rel="noopener">&#x61;&#102;&#x6c;&#45;&#117;&#115;&#101;&#x72;&#x73;&#x2b;&#115;&#x75;&#98;&#115;&#99;&#114;&#105;&#x62;&#x65;&#x40;&#103;&#111;&#111;&#x67;&#108;&#101;&#103;&#x72;&#x6f;&#x75;&#112;&#x73;&#x2e;&#x63;&#x6f;&#x6d;</a>.</p>
<p> <strong>See QuickStartGuide.txt if you dont have time to read this file.</strong></p>
</blockquote>
<h2 id="1具有导向性的模糊测试的挑战"><a href="#1具有导向性的模糊测试的挑战" class="headerlink" title="1具有导向性的模糊测试的挑战"></a>1具有导向性的模糊测试的挑战</h2><p>Fuzzing是用于识别真实软件中的安全问题的最强大且经过验证的策略之一;它负责安全关键软件中迄今为止发现的绝大多数远程代码执行和权限提升漏洞。<br>不幸的是,模糊测试也不够有力。盲目的、随机的变异使得它不太可能在测试代码中达到某些代码路径,从而使一些漏洞超出了这种技术的范围。<br>已经有许多尝试来解决这个问题。早期方法之一 - 由Tavis Ormandy开创 - 是一种 <strong>语义库蒸馏corpus distillation</strong> 。网上找到的一些大型语料库中往往包含大量的文件,这时就需要对其精简,该方法依赖于覆盖信号从大量高质量的候选文件语料库中选择有趣种子的子集,然后通过传统方式对其进行模糊处理。该方法非常有效,但需要这样的语料库随时可用。正因为如此,<strong>代码覆盖率</strong> 也只是衡量程序执行状态的一个简单化的度量这种方式并不适合后续引导fuzzing测试的。<br>其他更复杂的研究集中在诸如 <strong>程序流分析“concoic execution”符号执行或静态分析</strong> 等技术上。所有这些方法在实验环境中都非常有前景,但在实际应用中往往会遇到可靠性和性能问题 - 部分高价值的程序都有非常复杂的内部状态和执行路径在这一方面符号执行和concolic技术往往会显得不够健壮如路径爆炸问题所以仍然稍逊于传统的fuzzing技术。</p>
@ -763,6 +773,24 @@
<div>
<ul class="post-copyright">
<li class="post-copyright-author">
<strong>本文作者:</strong>
Cool-Y
</li>
<li class="post-copyright-link">
<strong>本文链接:</strong>
<a href="https://cool-y.github.io/2019/07/01/AFL-first-learn/" title="模糊测试与AFL">https://cool-y.github.io/2019/07/01/AFL-first-learn/</a>
</li>
<li class="post-copyright-license">
<strong>版权声明: </strong>
本博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/" rel="external nofollow" target="_blank">CC BY-NC-SA 3.0</a> 许可协议。转载请注明出处!
</li>
</ul>
</div>
<footer class="post-footer">
@ -938,7 +966,7 @@
<div id="music163player">
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width="330" height="450" src="//music.163.com/outchain/player?type=4&id=334277093&auto=1&height=430"></iframe>
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width="330" height="110" src="//music.163.com/outchain/player?type=4&id=334277093&auto=1&height=90"></iframe>
</div>
@ -1124,13 +1152,6 @@
<script type="text/javascript" src="/js/src/affix.js?v=5.1.4"></script>
<script type="text/javascript" src="/js/src/schemes/pisces.js?v=5.1.4"></script>
<script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.4"></script>
<script type="text/javascript" src="/js/src/post-details.js?v=5.1.4"></script>
@ -1175,8 +1196,8 @@
<!-- LOCAL: You can save these files to your site and update links -->
<link rel="stylesheet" href="https://jjeejj.github.io/css/gitment.css">
<script src="https://jjeejj.github.io/js/gitment.js"></script>
<link rel="stylesheet" href="https://aimingoo.github.io/gitmint/style/default.css">
<script src="https://aimingoo.github.io/gitmint/dist/gitmint.browser.js"></script>
<!-- END LOCAL -->
@ -1185,11 +1206,13 @@
<script type="text/javascript">
function renderGitment(){
var gitment = new Gitment({
var gitment = new Gitmint({
id: window.location.pathname,
owner: 'Cool-Y',
repo: 'gitment-comments',
lang: "" || navigator.language || navigator.systemLanguage || navigator.userLanguage,
oauth: {