Bf3
Jump to navigation
Jump to search
Description
Browser Fuzzer 3 is designed as a hybrid framework/standalone fuzzer. The modules it uses are extendable but also highly integrated into the core. bf3 can be used via command line to set all necessary flags for each fuzzing operation. After initialization, bf3 creates test cases in a numbered system. Fuzzing is automated through the browser using the refresh method. If error is detected, server logs can provide insight to the offending test case. The tools currently supports following features:
- Fuzzes CSS, DOM, HTML, JavaScript and XML
- Attended and Unattended Fuzzing Modes
- 7th Generation Fuzzing Oracle
- Random Data Generator
- Mutation Fuzzing Engine
Installation
$ cd /data/src/ $ wget http://packetstorm.setnine.com/fuzzer/bf3.tar.gz $ mkdir -p /pentest/fuzzers/ $ tar xvzf bf3.tar.gz -C /pentest/fuzzers/
Usage
Basic syntax
./bf3 <-M #> <-A/-U> <-O/-R #> [-Z #] [-X file.ext] [-x extra.html] [-P /www]
Common Options
- -M <num>
- Target module. Use ./bf3 -D. Use ./bf3 to list modules available.
- -A <mode>
- Attended fuzzing mode (dom/js only)
- Use this option to fuzz DOM or JS. Else, use -U option
- -U
- Unattended fuzzing mode
- -O
- Use the fuzzing oracle. Use ./bf3 -T to list Oracle fuzzing modules.
- -R
- Use random generation
- -Z <bytes>
- Max number of bytes (random generation)
- -X <file>
- File to parse for mutation
- -x <file>
- Extra file for mutation (css/xml only)
- -P <path>
- Test case output directory (full path)
Information Options
- -T
- List fuzzing Oracle.
- -D
- List modules available.
Modules Available
Following modules are available:
- Cascading Style Sheets (CSS)
- Document Object Model (DOM)
- HyperText Markup Language (HTML)
- JavaScript (JS)
- Extensible Markup Language (XML)
Oracle Modules
- Overflow: A x 550
- Overflow: A x 1100
- Overflow: A x 2100
- Overflow: A x 4200
- Overflow: A x 8400
- Overflow: A x 16500
- Overflow: A x 33000
- Overflow: A x 65800
- Overflow: A x 131200
- Overflow: A x 262400
- Overflow: A x 525000
- Overflow: A x 1050000
- Format String: %n x 5
- Format String: %p x 5
- Format String: %s x 5
- Format String: %d x 5
- Format String: %x x 5
- Format String: %s%p%x%d
- Format String: %s x 30
- Format String: %.1024d
- Format String: %.1025d
- Format String: %.2048d
- Format String: %.2049d
- Format String: %.4096d
- Format String: %.4097d
- Format String: %99999999999s
- Format String: %0%1%2%3%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%19%20
- Format String: %%20n
- Format String: %%20p
- Format String: %%20s
- Format String: %%20d
- Format String: %%20x
- Format String: %#0123456x%08x%x%s%p%d%n%o%u%c%h%l%q%j%z%Z%t%i%e%g%f%a%C%S%08x%%
- Number: 0
- Number: -0
- Number: 1
- Number: -1
- Number: 32767
- Number: -32768
- Number: 65535
- Number: 65536
- Number: 65537
- Number: 16777215
- Number: 16777216
- Number: 16777217
- Number: 2147483647
- Number: -2147483647
- Number: 2147483648
- Number: -2147483648
- Number: 4294967294
- Number: 4294967295
- Number: 4294967296
- Number: 357913942
- Number: -357913942
- Number: 536870912
- Number: -536870912
- Number: 5e-324
- Number: 1.79769313486231E+308
- Number: 3.39519326559384E-313
- Number: 0xff
- Number: 0x3fffffff
- Number: 0xffffffff
- Number: 0xfffffffe
- Number: 0x3fffffff
- Number: 0x7fffffff
- Number: 0x7ffffffe
- Number: 0x100
- Number: 0x1000
- Number: 0x10000
- Number: 0x100000
- Number: 0x80000000
- Number: -268435455
- Number: 0x99999999
- Number: 99999999999
- Number: -99999999999
- Misc Bug: test|touch /tmp/FU_ZZ_ED|test
- Misc Bug: test`touch /tmp/FU_ZZ_ED`test
- Misc Bug: test'touch /tmp/FU_ZZ_ED'test
- Misc Bug: test;touch /tmp/FU_ZZ_ED;test
- Misc Bug: test&&touch /tmp/FU_ZZ_ED&&test
- Misc Bug: test|C:/WINDOWS/system32/calc.exe|test
- Misc Bug: test`C:/WINDOWS/system32/calc.exe`test
- Misc Bug: test'C:/WINDOWS/system32/calc.exe'test
- Misc Bug: test;C:/WINDOWS/system32/calc.exe;test
- Misc Bug: C:/WINDOWS/system32/calc.exe
- Misc Bug: |/bin/sh|
- Misc Bug: `/bin/sh`
- Misc Bug: %0xa
- Misc Bug: %u000
- Misc Bug: `~!@#$
- Misc Bug: %^&*()
- Misc Bug: -=_+
- Misc Bug: [
- Misc Bug: |;\':
- Misc Bug: ,./<>?
Examples
- Fuzz JavaScript in Unattended Mode with the Fuzzing Oracle and output test cases to /var/www/
$ ./bf3 -M 3 -U -O -P /var/www
- Fuzz DOM in Attended Mode with Random Data up to 10,000 bytes and output 10,000 test cases to /var/www/dom/
$ ./bf3 -M 2 -A -R 10000 -Z 10000 -P /var/www/dom
- Fuzz CSS by mutating /home/linux/bf3/samples/css/style.css with Random Data up to 100,000 bytes (default) and use /home/linux/bf3/samples/css/bmgsec.html to display the data, output to /var/www/css (total number of test cases = 100 x number of characters in /home/linux/bf3/samples/css/style.css
$ ./bf3 -M 1 -U -R 100 -X /home/linux/bf3/samples/css/style.css \ -x /home/linux/bf3/samples/css/bmgsec.html -P /var/www/css
- Fuzz JavaScript in Unattended Mode by generating 1,000,000 random test cases and output to /var/www/js
$ ./bf3 -M 4 -U -R 1000000 -P /var/www/js