<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Fuzzing on Insinuator.net - Bold Statements</title>
    <link>https://insinuator.net/tags/fuzzing/</link>
    <description>Recent content in Fuzzing on Insinuator.net - Bold Statements</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 15 Mar 2021 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://insinuator.net/tags/fuzzing/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>fpicker: Fuzzing with Frida</title>
      <link>https://insinuator.net/2021/03/fpicker-fuzzing-with-frida/</link>
      <pubDate>Mon, 15 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2021/03/fpicker-fuzzing-with-frida/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;In this post, I will introduce fpicker. Fpicker is a Frida-based&#xA;coverage-guided, mostly in-process, blackbox fuzzing suite. Its most significant&#xA;feature is the AFL++ proxy mode which enables blackbox in-process fuzzing with&#xA;AFL++ on platforms supported by Frida. In practice, this means that fpicker&#xA;enables fuzzing binary-only targets with AFL++ on potentially any system that is&#xA;supported by Frida. For example, it allows fuzzing a user-space application on&#xA;the iOS operating system, such as the Bluetooth daemon bluetoothd – which was&#xA;part of the original motivation to implement fpicker.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Root Cause Analysis of a Heap-Based Buffer Overflow in GNU Readline</title>
      <link>https://insinuator.net/2020/12/root-cause-analysis-of-a-heap-based-buffer-overflow-in-gnu-readline/</link>
      <pubDate>Thu, 17 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2020/12/root-cause-analysis-of-a-heap-based-buffer-overflow-in-gnu-readline/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://insinuator.net/2020/12/how-fuzzers-decide-if-a-crash-is-unique/&#34;&gt;last blog post&lt;/a&gt;, we discussed how fuzzers determine the uniqueness of a crash. In this blog post, we discuss how we can manually triage a crash and determine the root cause. As an example, we use a heap-based buffer overflow I found in GNU readline 8.1 rc2, which has been fixed in the newest release. We use GDB and rr for time-travel debugging to determine the root cause of the bug.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How Fuzzers Decide if a Crash is Unique</title>
      <link>https://insinuator.net/2020/12/how-fuzzers-decide-if-a-crash-is-unique/</link>
      <pubDate>Thu, 03 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2020/12/how-fuzzers-decide-if-a-crash-is-unique/</guid>
      <description>&lt;p&gt;This blogpost sheds some light on how fuzzers handle crash deduplication and what a unique crash is for a fuzzer. For this, we take a look at two contrived examples and compare the unique crashes identified by &lt;a href=&#34;https://github.com/AFLplusplus/AFLplusplus&#34;&gt;AFL++&lt;/a&gt; and &lt;a href=&#34;https://github.com/google/honggfuzz&#34;&gt;honggfuzz&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Both examples are similar. They read from STDIN, check if the first character of the read data is a digit, then call a vulnerable function. The main difference in &lt;a href=&#34;https://gist.github.com/murx-/5c490c14f4ea994dd7e8bf6d49fdb3b2&#34;&gt;test1.c&lt;/a&gt; is that the program crashes directly in the vuln function due to a null pointer dereference. In &lt;a href=&#34;https://gist.github.com/murx-/98adcbf98806dbe237dc0bff6e03ce6c&#34;&gt;test2.c&lt;/a&gt;, a previously allocated buffer is freed; this buffer is again freed at the end of main, resulting in libc identifying the double free and raising a sigabort.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vulnerabilities in GNU Readline Fixed</title>
      <link>https://insinuator.net/2020/10/vulnerabilities-in-gnu-readline-fixed/</link>
      <pubDate>Wed, 07 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2020/10/vulnerabilities-in-gnu-readline-fixed/</guid>
      <description>&lt;p&gt;Recently I discovered some vulnerabilities in &lt;a href=&#34;https://tiswww.case.edu/php/chet/readline/rltop.html&#34;&gt;GNU Readline&lt;/a&gt;. These bugs have been &lt;a href=&#34;https://lists.gnu.org/archive/html/bug-readline/2020-10/msg00002.html&#34;&gt;fixed&lt;/a&gt; in GNU Readline version 8.1.&lt;/p&gt;&#xA;&lt;p&gt;The case of identifying the vulnerabilities was rather interesting. I wanted to fuzz another program and wrote a quick harness to test if my setup works. This test harness used GNU Readline to read input from stdin and passed the data along to the function under test. I left the fuzzer running while I started to improve the harness (which would also mean getting rid of GNU Readline as it is relatively slow for the use-case at hand). However, AFL showed the first crashes and upon inspection, the vulnerabilities where not in the code I actually wanted to fuzz but in my systems GNU Readline.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Offensivecon 2019</title>
      <link>https://insinuator.net/2019/02/offensivecon-2019/</link>
      <pubDate>Wed, 20 Feb 2019 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2019/02/offensivecon-2019/</guid>
      <description>&lt;p&gt;Hi,&lt;/p&gt;&#xA;&lt;p&gt;Last week I had the pleasure to attend &lt;a href=&#34;https://www.offensivecon.org/&#34;&gt;Offensivecon&lt;/a&gt; 2019 in Berlin. The conference was organized very well, and I liked the familial atmosphere which allowed to meet lots of different people. Thanks to the organizers, speakers and everyone else involved for this conference! Andreas posted a &lt;a href=&#34;https://twitter.com/andreasdotorg/status/1096464330915225600&#34;&gt;one tweet tldr&lt;/a&gt; of the first day; fuzzing is still the way to go to find bugs, and mitigations make exploitation harder. Here are some short summaries of the talks I enjoyed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hack.lu 2018: Fuzzing Workshop by René Freingruber</title>
      <link>https://insinuator.net/2018/11/hack.lu-2018-fuzzing-workshop-by-ren%C3%A9-freingruber/</link>
      <pubDate>Tue, 06 Nov 2018 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2018/11/hack.lu-2018-fuzzing-workshop-by-ren%C3%A9-freingruber/</guid>
      <description>&lt;p&gt;I was at the hack.lu conference in Luxembourg this year and attended the fuzzing workshop, held by &lt;a href=&#34;https://twitter.com/renefreingruber&#34;&gt;René Freingruber&lt;/a&gt; from &lt;a href=&#34;https://sec-consult.com/en/&#34;&gt;SEC Consult&lt;/a&gt;. I have been curious about this topic for some years now, but besides doing some manual fuzzing and web-fuzzing, I never looked into the whole topic that much.&lt;/p&gt;&#xA;&lt;p&gt;The workshop lasted for around four hours. Before the workshop started each student got two VMs (Linux/Windows) where everything necessary was already set up. The VMs included 23 exercises, with step-by-step explanations, source code and exploits. René started out with an introduction to fuzzing, listing popular fuzzers and showing an example on how to fuzz with &lt;a href=&#34;http://lcamtuf.coredump.cx/afl/&#34;&gt;afl&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>dizzy version 2.0 released</title>
      <link>https://insinuator.net/2018/08/dizzy-version-2.0-released/</link>
      <pubDate>Fri, 03 Aug 2018 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2018/08/dizzy-version-2.0-released/</guid>
      <description>&lt;p&gt;A new major version of our fuzzing framework &lt;em&gt;dizzy&lt;/em&gt; has been released.&lt;/p&gt;&#xA;&lt;p&gt;This blog post will cover the biggest changes and new features, as well as give you a short introduction into how to use them.&lt;/p&gt;&#xA;&lt;p&gt;You can find the new version on &lt;a href=&#34;https://github.com/ernw/dizzy&#34;&gt;github&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;&#xA;&lt;p&gt;There are two supported ways of installing dizzy:&lt;/p&gt;&#xA;&lt;p&gt;via pypi&lt;br&gt;&#xA;&lt;code&gt;$ pip install dizzy&lt;/code&gt;&lt;br&gt;&#xA;via setup.py&lt;br&gt;&#xA;&lt;code&gt;$ git clone https://https://github.com/ernw/dizzy &amp;amp;&amp;amp; cd dizzy &amp;amp;&amp;amp; python setup.py install&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>TR17 Training: Fuzzing with American Fuzzy Lop, Address Sanitizer and LibFuzzer</title>
      <link>https://insinuator.net/2016/12/tr17-training-fuzzing-with-american-fuzzy-lop-address-sanitizer-and-libfuzzer/</link>
      <pubDate>Thu, 15 Dec 2016 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2016/12/tr17-training-fuzzing-with-american-fuzzy-lop-address-sanitizer-and-libfuzzer/</guid>
      <description>&lt;p&gt;This is a guest blog written by &lt;a href=&#34;https://hboeck.de/&#34;&gt;Hanno Böck&lt;/a&gt; who will be running the &lt;a href=&#34;https://www.troopers.de/events/troopers17/737_fuzzing_with_american_fuzzy_lop_address_sanitizer_and_libfuzzer/&#34;&gt;Fuzzing with American Fuzzy Lop, Address Sanitizer and LibFuzzer&lt;/a&gt; at TROOPERS17.&lt;/p&gt;&#xA;&lt;p&gt;Fuzzing is a very old technique to find bugs and vulnerabilities in software. However it has seen a new push in recent years due to vastly improved tools. The compilers gcc and clang have received Sanitizer tools that allow finding a lot of bugs like use after free errors and out of bounds reads that are otherwise very hard to find.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hackito Ergo Sum 2014</title>
      <link>https://insinuator.net/2014/05/hackito-ergo-sum-2014/</link>
      <pubDate>Fri, 02 May 2014 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2014/05/hackito-ergo-sum-2014/</guid>
      <description>&lt;p&gt;Greetings from Heidelberg to Paris,&lt;/p&gt;&#xA;&lt;p&gt;and thanks for a great time at &lt;a href=&#34;http://2014.hackitoergosum.org/&#34;&gt;HES14&lt;/a&gt;! A nice venue (&lt;a href=&#34;http://www.cite-sciences.fr/fr/accueil/&#34;&gt;a museum&lt;/a&gt;), sweet talks and stacks of spirit carried us through the three day con. It all set off with a keynote byTROOPERs veteran Edmond ‘bigezy’ Rogers, who stuck to a quite simple principle: “People do stupid things” and I guess every single one of you has quite a few examples for that on offer. Next to every speaker referenced that statement at some point during her/his talk. Furthermore we presented an updated version of our talk &lt;a href=&#34;http://2014.hackitoergosum.org/slides/day1_ERNW_LTEvsDarwin_HES.pdf&#34;&gt;LTE vs. Darwin&lt;/a&gt;, covering our research of security in LTE networks and potential upcoming problems.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fresh Meat From the Coding Front</title>
      <link>https://insinuator.net/2014/02/fresh-meat-from-the-coding-front/</link>
      <pubDate>Thu, 20 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2014/02/fresh-meat-from-the-coding-front/</guid>
      <description>&lt;p&gt;Within the last months I had some time to work on my code and today I’m releasing some of that: a new version of dizzy as well as two new loki modules.&lt;/p&gt;&#xA;&lt;h2 id=&#34;new-version-of-dizzy&#34;&gt;New version of dizzy:&lt;/h2&gt;&#xA;&lt;p&gt;Download version 0.8.2 &lt;a href=&#34;http://c0decafe.de/tools/dizzy-0.8.2.tar.bz2&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;usb-target-support&#34;&gt;USB target support&lt;/h3&gt;&#xA;&lt;p&gt;Dizzy is able to use neighbor travis’ &lt;a href=&#34;http://goodfet.sourceforge.net/hardware/facedancer21/&#34; title=&#34;facedancer&#34;&gt;facedancer&lt;/a&gt; to emulate a client device. Two fuzzing modes are available for USB descriptor fuzzing and USB endpoint fuzzing.&lt;/p&gt;&#xA;&lt;p&gt;Here is an example cmd to start usb configuration descriptor fuzzing:&lt;/p&gt;</description>
    </item>
    <item>
      <title>LTE@ShmooCon, a Summary</title>
      <link>https://insinuator.net/2014/01/lte@shmoocon-a-summary/</link>
      <pubDate>Tue, 28 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2014/01/lte@shmoocon-a-summary/</guid>
      <description>&lt;p&gt;Hey guys,&lt;br&gt;&#xA;as some of you may have noticed, just recently at ShmooCon we gave our talk “LTE vs. Darwin” (Slides &lt;a href=&#34;http://www.insinuator.net/wp-content/uploads/2014/01/ERNW_LTEvsDarwin.pdf&#34;&gt;here&lt;/a&gt;). There we presented some results of our research in 4G telco network security. Some of those originate from our research contribution to &lt;a href=&#34;www.asmonia.de&#34;&gt;ASMONIA&lt;/a&gt;, but we expanded the scope and also took a look at the air interface. Both the air interface and the backend links &amp;amp; protocols must be secured appropriately; otherwise communication may be eavesdropped or sensitive information may be compromised. In the following we want to provide an overview of LTE main components and potential attack vectors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fuzzing VMDK files</title>
      <link>https://insinuator.net/2012/05/fuzzing-vmdk-files/</link>
      <pubDate>Wed, 30 May 2012 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2012/05/fuzzing-vmdk-files/</guid>
      <description>&lt;p&gt;As announced at last week’s &lt;a href=&#34;http://conference.hitb.org/hitbsecconf2012ams/&#34;&gt;#HITB2012AMS&lt;/a&gt;, I’ll describe the fuzzing steps which were performed during our initial research. The very first step was the definition of the interfaces we wanted to test. We decided to go with the plain text VMDK file, as this is the main virtual disk description file and in most deployment scenarios user controlled, and the data part of a special kind of VMDK files, the &lt;em&gt;Host Sparse Extends&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Releasing dizzy version 0.6</title>
      <link>https://insinuator.net/2012/05/releasing-dizzy-version-0.6/</link>
      <pubDate>Wed, 23 May 2012 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2012/05/releasing-dizzy-version-0.6/</guid>
      <description>&lt;p&gt;Hi @all,&lt;br&gt;&#xA;today im releasing a new version of our famous fuzzing framework, dizzy. The version counts 0.6 by now and youll get some brand new features!&lt;/p&gt;&#xA;&lt;p&gt;see the CHANGELOG:&lt;br&gt;&#xA;v0.6:&lt;br&gt;&#xA;– ssl support&lt;br&gt;&#xA;– server side fuzzing mode&lt;br&gt;&#xA;– command output&lt;br&gt;&#xA;– new dizz funktions: lambda_length, csum, lambda_csum, lambda2_csum&lt;br&gt;&#xA;– recursive mutation mode&lt;br&gt;&#xA;– new dizz objects: fill&lt;br&gt;&#xA;– new interaction objects: null_dizz&lt;br&gt;&#xA;– reconnect option&lt;br&gt;&#xA;– additional fuzzing values&lt;/p&gt;</description>
    </item>
    <item>
      <title>Week of releases – dizzy</title>
      <link>https://insinuator.net/2011/07/week-of-releases-dizzy/</link>
      <pubDate>Tue, 12 Jul 2011 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2011/07/week-of-releases-dizzy/</guid>
      <description>&lt;p&gt;I’m proud to announce, today a new fuzzing framework will see the light of day. It’s called &lt;em&gt;dizzy&lt;/em&gt; and was written because the tools we used for fuzzing in past didn’t match our requirements. Some (unique) features are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python based&lt;/li&gt;&#xA;&lt;li&gt;Fast!&lt;/li&gt;&#xA;&lt;li&gt;Can send to L2 as well as to upper layers (TCP/UDP/SCTP)&lt;/li&gt;&#xA;&lt;li&gt;Ability to work with odd length packet fields (no need to match byte borders, so even single flags or 7bit long fields can be represented and fuzzed)&lt;/li&gt;&#xA;&lt;li&gt;Very easy protocol definition syntax&lt;/li&gt;&#xA;&lt;li&gt;Ability to do multi packet state-full fuzzing with the ability to use received target data in response.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;We already had a lot of success using it, now you will be able to know the true promises.&lt;/p&gt;</description>
    </item>
    <item>
      <title>update for your fuzzing toolkit</title>
      <link>https://insinuator.net/2011/05/update-for-your-fuzzing-toolkit/</link>
      <pubDate>Mon, 02 May 2011 00:00:00 +0000</pubDate>
      <guid>https://insinuator.net/2011/05/update-for-your-fuzzing-toolkit/</guid>
      <description>&lt;p&gt;As I’m currently developing the ‘next gen’ state-full fuzzing framework @ERNW [called dizzy, to be released soon 😉 ], I will give you an updated set of fuzzing scripts from the ‘old world’.&lt;/p&gt;&#xA;&lt;p&gt;Some of you will remember the 2008 release of sulley_l2, which was a modified version of the sulley fuzzing framework, enhanced with Layer 2 sending capabilities and a hole bunch of (L2) fuzzing scripts. All the blinking, rebooting, mem-corrupting ciscos gave us some attention. Back from then, we continued to write and use the fuzzing scripts, so the hole collection grew.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
