Interactive
The interactive mode allows you to edit options on the fly and manipulate the results with the rhai scripting language.
Commands
Eval Mode
You can get into the eval mode by executing the eval (duh) command without any argument.
rwalk> eval
rwalk (eval)> 1 + 1 // \(˚☐˚”)/ scary computation
2
If you just want to do a one-time exec, pass your expression directly to eval.
rwalk> eval 1 / 0 // will it explode ?
⨯ Error: Division by zero: 1 / 0
Note that scope is maintained accross executions, so you can store stuff and use it later:
rwalk (eval)> let a = "Hello"
[^C
rwalk> eval
rwalk (eval)> print(`${a}, World!`)
Hello, World!
To evaluate a script, just prepend @ before your file name:
rwalk> eval @path/to/script.rhai
Hello, World!
rwalk (eval)> @path/to/script.rhai
Hello, World!
Manipulating Options
Let's start out by listing the current options:
rwalk> list
bell ············ = false
config ·········· = null
depth ··········· = 0
filters ········· = []
force ··········· = false
force_recursion · = false
headers ········· = []
http1 ··········· = false
http2 ··········· = false
list ············ = null
method ·········· = "GET"
mode ············ = "recursive"
no_save ········· = false
output ·········· = null
resume ·········· = false
retries ········· = 3
retry_codes ····· = []
show ············ = []
threads ········· = 55
throttle ········ = null
transforms ······ = []
url ············· = null
wordlist_filter · = null
wordlists ······· = []
We can set the target URL for our fuzz:
rwalk> set url ffuf.me/cd/basic
And append a wordlist:
rwalk> append wordlists common.txt
Run it!
rwalk> run
ℹ Press Ctrl+C to save and exit the scan
↷ 200 http://ffuf.me/cd/basic/development.log 29.99ms (not a directory)
↷ 200 http://ffuf.me/cd/basic/class 32.85ms (not a directory)
http://ffuf.me
└─ ✓ 200 /cd/basic
├─ ✓ 200 /class
└─ ✓ 200 /development.log
✓ Done in 3s with an average of 1516 req/s