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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 30 additions & 3 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 4 additions & 0 deletions
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

Lines changed: 5 additions & 4 deletions
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

Lines changed: 19 additions & 0 deletions
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

Lines changed: 1 addition & 7 deletions
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

Lines changed: 4 additions & 1 deletion
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)

0 commit comments

Comments
 (0)