Interactive

The interactive mode allows you to edit options on the fly and manipulate the results with the rhai scripting language.

rwalk -i # --interactive

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