Skip to content

Commit d85d48e

Browse files
rebuilding site mar 2 gen 2024, 14:35:12, CET
1 parent 4888d45 commit d85d48e

File tree

124 files changed

+4997
-944
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+4997
-944
lines changed

AFLplusplus

Submodule AFLplusplus updated 74 files

LibAFL

Submodule LibAFL updated 322 files

config.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ publishDir = "docs"
1414
ogimage = "ogimage.png"
1515
BookMenuBundle = "/menu"
1616
BookLogo = 'aflpp_logo_256x256_w.png'
17-
ReleaseName = "4.08c"
18-
ReleaseURL = "https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.08c"
17+
ReleaseName = "4.09c"
18+
ReleaseURL = "https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.09c"

content/docs/Changelog.md

+30-3
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,54 @@ type: docs
99
This is the list of all noteworthy changes made in every public
1010
release of the tool. See README.md for the general instruction manual.
1111

12-
### Version ++4.09a (dev)
12+
### Version ++4.10a (dev)
1313
- afl-fuzz:
14+
- default power schedule is now EXPLORE, due a fix in fast schedules
15+
explore is slightly better now.
16+
- fixed minor issues in the mutation engine, thanks to @futhewo for
17+
reporting!
18+
- instrumentation:
19+
- LLVM 18 support, thanks to @devnexen!
20+
- Injection (SQL, LDAP, XSS) feature now available, see
21+
`instrumentation/README.injections.md` how to activate/use/expand.
22+
- compcov/LAF-intel:
23+
- floating point splitting bug fix by @hexcoder
24+
- due a bug in LLVM 17 integer splitting is disabled!
25+
- when splitting floats was selected, integers were always split as well,
26+
fixed to require AFL_LLVM_LAF_SPLIT_COMPARES as it should
27+
28+
29+
### Version ++4.09c (release)
30+
- afl-fuzz:
31+
- fixed the new mutation implementation for two bugs
1432
- added `AFL_FINAL_SYNC` which forces a final fuzzer sync (also for `-F`)
1533
before terminating.
1634
- added AFL_IGNORE_SEED_PROBLEMS to skip over seeds that time out instead
1735
of exiting with an error message
1836
- allow -S/-M naming up to 50 characters (from 24)
37+
- CMPLOG:
38+
- added scale support (-l S)
39+
- skip unhelpful insertions (u8)
40+
- added --version and --help command line parameters
41+
- fixed endless loop when reading malformed dictionaries
42+
- new custom mutator function: post_run - thanks to yangzao!
1943
- afl-whatsup:
2044
- detect instanced that are starting up and show them as such as not dead
2145
- now also shows coverage reached
2246
- option -m shows only very relevant stats
2347
- option -n will not use color in the output
2448
- instrumentation:
2549
- fix for a few string compare transform functions for LAF
50+
- we are instrumenting __cxx internal functions again. this might break
51+
a few targets, please report if so.
2652
- frida_mode:
2753
- fixes support for large map offsets
54+
- support for AFL_FUZZER_LOOPCOUNT for afl.rs and LLVMFuzzerTestOneInput
55+
- afl-cmin/afl-cmin.bash: prevent unneeded file errors
2856
- added new tool afl-addseeds that adds new seeds to a running campaign
29-
- added benchmark/benchmark.sh if you want to see how good your fuzzing
57+
- added benchmark/benchmark.py if you want to see how good your fuzzing
3058
speed is in comparison to other setups.
3159

32-
3360
### Version ++4.08c (release)
3461
- afl-fuzz:
3562
- new mutation engine: mutations that favor discovery more paths are

content/docs/INSTALL.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ You can use the [Dockerfile](https://github.com/AFLplusplus/AFLplusplus/blob/sta
1313
Docker Hub (for x86_64 and arm64):
1414

1515
```shell
16-
docker pull aflplusplus/aflplusplus:
16+
docker pull aflplusplus/aflplusplus:latest
1717
docker run -ti -v /location/of/your/target:/src aflplusplus/aflplusplus
1818
```
1919

content/docs/afl-fuzz_approach.md

+4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ instrumentation-guided genetic algorithm. It uses a modified form of edge
1111
coverage to effortlessly pick up subtle, local-scale changes to program control
1212
flow.
1313

14+
Note: If you are interested in a more current up-to-date deep dive how AFL++
15+
works then we commend this blog post:
16+
[https://blog.ritsec.club/posts/afl-under-hood/](https://blog.ritsec.club/posts/afl-under-hood/)
17+
1418
Simplifying a bit, the overall algorithm can be summed up as:
1519

1620
1) Load user-supplied initial test cases into the queue.

content/docs/custom_mutators.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,9 @@ def deinit(): # optional for Python
131131

132132
- `queue_get` (optional):
133133

134-
This method determines whether the custom fuzzer should fuzz the current
135-
queue entry or not
134+
This method determines whether AFL++ should fuzz the current
135+
queue entry or not: all defined custom mutators as well as
136+
all AFL++'s mutators.
136137

137138
- `fuzz_count` (optional):
138139

@@ -203,7 +204,7 @@ def deinit(): # optional for Python
203204
This method can be used if you want to send data to the target yourself,
204205
e.g. via IPC. This replaces some usage of utils/afl_proxy but requires
205206
that you start the target with afl-fuzz.
206-
Example: [https://github.com/AFLplusplus/AFLplusplus/blob/stable/custom_mutators/examples/custom_send.c](https://github.com/AFLplusplus/AFLplusplus/blob/stable/custom_mutators/examples/custom_send.c)
207+
Example: [custom_mutators/examples/custom_send.c](https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/../custom_mutators/examples/custom_send.c)
207208

208209
- `queue_new_entry` (optional):
209210

@@ -382,4 +383,4 @@ See [example.c](https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/../c
382383
- [bruce30262/libprotobuf-mutator_fuzzing_learning](https://github.com/bruce30262/libprotobuf-mutator_fuzzing_learning/tree/master/4_libprotobuf_aflpp_custom_mutator)
383384
- [thebabush/afl-libprotobuf-mutator](https://github.com/thebabush/afl-libprotobuf-mutator)
384385
- [XML Fuzzing@NullCon 2017](https://www.agarri.fr/docs/XML_Fuzzing-NullCon2017-PUBLIC.pdf)
385-
- [A bug detected by AFL + XML-aware mutators](https://bugs.chromium.org/p/chromium/issues/detail?id=930663)
386+
- [A bug detected by AFL + XML-aware mutators](https://bugs.chromium.org/p/chromium/issues/detail?id=930663)

content/docs/env_variables.md

+19
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,12 @@ subset of the settings discussed in section 1, with the exception of:
141141
- `TMPDIR` and `AFL_KEEP_ASSEMBLY`, since no temporary assembly files are
142142
created.
143143
144+
- LLVM modes compiling C++ will normally set rpath in the binary if LLVM is
145+
not in a usual location (/usr or /lib). Setting `AFL_LLVM_NO_RPATH=1`
146+
disables this behaviour in case it isn't desired. For example, the compiling
147+
toolchain might be in a custom location, but the target machine has LLVM
148+
runtime libs in the search path.
149+
144150
Then there are a few specific features that are only available in
145151
instrumentation mode:
146152
@@ -196,6 +202,19 @@ in the specified file.
196202
For more information, see
197203
[instrumentation/README.instrument_list.md](https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/../instrumentation/README.instrument_list.md).
198204
205+
#### INJECTIONS
206+
207+
This feature is able to find simple injection vulnerabilities in insecure
208+
calls to mysql/mariadb/nosql/postgresql/ldap and XSS in libxml2.
209+
210+
- Setting `AFL_LLVM_INJECTIONS_ALL` will enable all injection hooking
211+
212+
- Setting `AFL_LLVM_INJECTIONS_SQL` will enable SQL injection hooking
213+
214+
- Setting `AFL_LLVM_INJECTIONS_LDAP` will enable LDAP injection hooking
215+
216+
- Setting `AFL_LLVM_INJECTIONS_XSS` will enable XSS injection hooking
217+
199218
#### LAF-INTEL
200219
201220
This great feature will split compares into series of single byte comparisons to

content/docs/fuzzing_binary-only_targets.md

+1-7
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,7 @@ For more information, see
100100

101101
In FRIDA mode, you can fuzz binary-only targets as easily as with QEMU mode.
102102
FRIDA mode is most of the times slightly faster than QEMU mode. It is also
103-
newer, lacks COMPCOV, and has the advantage that it works on MacOS (both intel
104-
and M1).
103+
newer, and has the advantage that it works on MacOS (both intel and M1).
105104

106105
To build FRIDA mode:
107106

@@ -119,10 +118,6 @@ The mode is approximately 2-5x slower than compile-time instrumentation, and is
119118
less conducive to parallelization. But for binary-only fuzzing, it gives a huge
120119
speed improvement if it is possible to use.
121120

122-
If you want to fuzz a binary-only library, then you can fuzz it with frida-gum
123-
via frida_mode/. You will have to write a harness to call the target function in
124-
the library, use afl-frida.c as a template.
125-
126121
You can also perform remote fuzzing with frida, e.g., if you want to fuzz on
127122
iPhone or Android devices, for this you can use
128123
[https://github.com/ttdennis/fpicker/](https://github.com/ttdennis/fpicker/) as
@@ -308,7 +303,6 @@ some are very hard to set up...
308303
* S2E: [https://github.com/S2E](https://github.com/S2E)
309304
* TinyInst:
310305
[https://github.com/googleprojectzero/TinyInst](https://github.com/googleprojectzero/TinyInst)
311-
(Mac/Windows only)
312306
* ... please send me any missing that are good
313307

314308
## Closing words

content/docs/tutorials.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ training, then we can highly recommend the following:
2727

2828
* [https://github.com/antonio-morales/Fuzzing101](https://github.com/antonio-morales/Fuzzing101)
2929

30-
Here is a good forkflow description (and tutorial) for qemu_mode:
30+
Here is a good workflow description (and tutorial) for qemu_mode:
3131

3232
* [https://airbus-seclab.github.io/AFLplusplus-blogpost/](https://airbus-seclab.github.io/AFLplusplus-blogpost/)
3333

@@ -47,6 +47,9 @@ structure is), these links have you covered (some are outdated though):
4747
* Superion for AFL++:
4848
[https://github.com/adrian-rt/superion-mutator](https://github.com/adrian-rt/superion-mutator)
4949

50+
For a very in-depth explanation on how AFL++ works check out:
51+
[https://blog.ritsec.club/posts/afl-under-hood/](https://blog.ritsec.club/posts/afl-under-hood/)
52+
5053
## Video Tutorials
5154

5255
* [Install AFL++ Ubuntu](https://www.youtube.com/watch?v=5dCvhkbi3RA)

docs/37C3_talk_2023.pdf

3.78 MB
Binary file not shown.

docs/404.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333

3434

3535

36-
<link rel="stylesheet" href="/book.min.5f6934428064085210d9b92c20af9b09c67cef71f93fa65ebbc5af315512573d.css" integrity="sha256-X2k0QoBkCFIQ2bksIK&#43;bCcZ873H5P6Zeu8WvMVUSVz0=">
36+
<link rel="stylesheet" href="/book.min.690047aa613e46fbad517188866019d4fcac4dbaa45c6085656a6b8af77ba46b.css" integrity="sha256-aQBHqmE&#43;RvutUXGIhmAZ1PysTbqkXGCFZWprivd7pGs=">
3737

3838

39-
<script defer src="/en.search.min.2121dd144f56093f39999e12ac94e2894ddc6fba97b269735113a9d4958a1a25.js" integrity="sha256-ISHdFE9WCT85mZ4SrJTiiU3cb7qXsmlzUROp1JWKGiU="></script>
39+
<script defer src="/en.search.min.68ec47fd1cbb1cf747325b658b3fa46a968dbe271a29a651694735aa6eaf02f3.js" integrity="sha256-aOxH/Ry7HPdHMltliz&#43;kapaNvicaKaZRaUc1qm6vAvM="></script>
4040

4141
<!--
4242
Made with Book Theme

docs/building/index.html

+8-8
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333

3434

3535

36-
<link rel="stylesheet" href="/book.min.5f6934428064085210d9b92c20af9b09c67cef71f93fa65ebbc5af315512573d.css" integrity="sha256-X2k0QoBkCFIQ2bksIK&#43;bCcZ873H5P6Zeu8WvMVUSVz0=">
36+
<link rel="stylesheet" href="/book.min.690047aa613e46fbad517188866019d4fcac4dbaa45c6085656a6b8af77ba46b.css" integrity="sha256-aQBHqmE&#43;RvutUXGIhmAZ1PysTbqkXGCFZWprivd7pGs=">
3737

3838

39-
<script defer src="/en.search.min.2121dd144f56093f39999e12ac94e2894ddc6fba97b269735113a9d4958a1a25.js" integrity="sha256-ISHdFE9WCT85mZ4SrJTiiU3cb7qXsmlzUROp1JWKGiU="></script>
39+
<script defer src="/en.search.min.68ec47fd1cbb1cf747325b658b3fa46a968dbe271a29a651694735aa6eaf02f3.js" integrity="sha256-aOxH/Ry7HPdHMltliz&#43;kapaNvicaKaZRaUc1qm6vAvM="></script>
4040

4141
<!--
4242
Made with Book Theme
@@ -84,7 +84,7 @@ <h2 class="book-brand">
8484
<ul>
8585
<li><strong>Downloads</strong>
8686
<ul>
87-
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.08c">Release 4.08c</a>
87+
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.09c">Release 4.09c</a>
8888
</li>
8989
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases">All releases</a></li>
9090
<li><a href="https://github.com/AFLplusplus/AFLplusplus/archive/master.zip">Current devel</a></li>
@@ -151,17 +151,17 @@ <h2 class="book-brand">
151151

152152
<article class="markdown"><h1 id="build-and-install-afl">Build and install AFL++</h1>
153153
<p>Download the lastest devel version with:</p>
154-
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ git clone https://github.com/AFLplusplus/AFLplusplus
154+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ git clone https://github.com/AFLplusplus/AFLplusplus
155155
$ cd AFLplusplus
156156
</code></pre></div><p>AFL++ has many build options.
157157
The easiest is to build and install everything:</p>
158-
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ make distrib
158+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ make distrib
159159
$ sudo make install
160160
</code></pre></div><p>Note that &ldquo;make distrib&rdquo; also builds llvm_mode, qemu_mode, unicorn_mode and
161161
more. If you just want plain afl then do &ldquo;make all&rdquo;, however compiling and
162162
using at least llvm_mode is highly recommended for much better results -
163163
hence in this case</p>
164-
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ make source-only
164+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ make source-only
165165
</code></pre></div><p>is what you should choose.</p>
166166
<p>These build options exist:</p>
167167
<ul>
@@ -177,11 +177,11 @@ <h2 class="book-brand">
177177
</ul>
178178
<p><a href="https://developer.apple.com/library/archive/qa/qa1118/_index.html">Unless you are on Mac OS X</a> you can also build statically linked versions of the
179179
AFL++ binaries by passing the STATIC=1 argument to make:</p>
180-
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ make all STATIC<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
180+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ make all STATIC<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
181181
</code></pre></div><p>Note that AFL++ is faster and better the newer the compilers used are.
182182
Hence gcc-9 and especially llvm-9 should be the compilers of choice.
183183
If your distribution does not have them, you can use the Dockerfile:</p>
184-
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ docker build -t aflplusplus
184+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ docker build -t aflplusplus
185185
</code></pre></div></article>
186186

187187

docs/categories/index.html

+4-6
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333

3434

3535

36-
<link rel="stylesheet" href="/book.min.5f6934428064085210d9b92c20af9b09c67cef71f93fa65ebbc5af315512573d.css" integrity="sha256-X2k0QoBkCFIQ2bksIK&#43;bCcZ873H5P6Zeu8WvMVUSVz0=">
36+
<link rel="stylesheet" href="/book.min.690047aa613e46fbad517188866019d4fcac4dbaa45c6085656a6b8af77ba46b.css" integrity="sha256-aQBHqmE&#43;RvutUXGIhmAZ1PysTbqkXGCFZWprivd7pGs=">
3737

3838

39-
<script defer src="/en.search.min.2121dd144f56093f39999e12ac94e2894ddc6fba97b269735113a9d4958a1a25.js" integrity="sha256-ISHdFE9WCT85mZ4SrJTiiU3cb7qXsmlzUROp1JWKGiU="></script>
39+
<script defer src="/en.search.min.68ec47fd1cbb1cf747325b658b3fa46a968dbe271a29a651694735aa6eaf02f3.js" integrity="sha256-aOxH/Ry7HPdHMltliz&#43;kapaNvicaKaZRaUc1qm6vAvM="></script>
4040

4141
<link rel="alternate" type="application/rss+xml" href="https://aflplus.plus/categories/index.xml" title="AFLplusplus" />
4242
<!--
@@ -85,7 +85,7 @@ <h2 class="book-brand">
8585
<ul>
8686
<li><strong>Downloads</strong>
8787
<ul>
88-
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.08c">Release 4.08c</a>
88+
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.09c">Release 4.09c</a>
8989
</li>
9090
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases">All releases</a></li>
9191
<li><a href="https://github.com/AFLplusplus/AFLplusplus/archive/master.zip">Current devel</a></li>
@@ -172,11 +172,9 @@ <h2 class="book-brand">
172172
</header>
173173

174174

175-
<article class="markdown">
176-
<h1>Categories</h1>
177175

178176

179-
</article>
177+
180178

181179

182180
<footer class="book-footer">

docs/categories/index.xml

+2-6
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@
55
<link>https://aflplus.plus/categories/</link>
66
<description>Recent content in Categories on AFLplusplus</description>
77
<generator>Hugo -- gohugo.io</generator>
8-
<language>en-us</language>
9-
10-
<atom:link href="https://aflplus.plus/categories/index.xml" rel="self" type="application/rss+xml" />
11-
12-
8+
<language>en-us</language><atom:link href="https://aflplus.plus/categories/index.xml" rel="self" type="application/rss+xml" />
139
</channel>
14-
</rss>
10+
</rss>

0 commit comments

Comments
 (0)