-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathlibrary_scan_skip_validation.rs
More file actions
41 lines (37 loc) · 1.32 KB
/
Copy pathlibrary_scan_skip_validation.rs
File metadata and controls
41 lines (37 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use std::error::Error;
use pathbuster::runner::{Options, PayloadSource, Runner, WordlistSource};
use pathbuster::utils::{SmartJoinCase, SmartJoinSpec, WordlistManipulation};
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let runner = Runner::new(Options {
urls: vec!["https://example.com/app/".to_string()],
payloads: PayloadSource::Inline(vec!["../".to_string()]),
skip_validation: true,
skip_brute: false,
wordlist: Some(WordlistSource::Inline(vec![
"AdminPanel".to_string(),
"admin-panel".to_string(),
"admin_panel".to_string(),
"login".to_string(),
])),
wordlist_manipulation: WordlistManipulation {
sort: true,
unique: true,
smart_join: Some(SmartJoinSpec {
case: SmartJoinCase::Lower,
separator: "_".to_string(),
}),
..WordlistManipulation::default()
},
rate: 10,
concurrency: 10,
timeout_seconds: 5,
max_depth: 2,
..Options::default()
})?;
let result = runner.run().await?;
println!("Targets: {}", result.fingerprints.len());
println!("Matches: {}", result.matches.len());
println!("Discovered routes: {}", result.discovered_routes.len());
Ok(())
}