This commit is contained in:
Pierre HUBERT 2024-08-19 16:05:06 +02:00
commit 6ebf0f1776
4 changed files with 1633 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/target
.idea

1574
Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

11
Cargo.toml Normal file
View File

@ -0,0 +1,11 @@
[package]
name = "victim_client"
version = "0.1.0"
edition = "2021"
[dependencies]
clap = { version = "4.5.16", features = ["derive"] }
log = "0.4.22"
env_logger = "0.11.5"
reqwest = "0.12.5"
tokio = { version = "1", features = ["full"] }

46
src/main.rs Normal file
View File

@ -0,0 +1,46 @@
use clap::Parser;
use std::time::Duration;
/// Victim client
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct Args {
/// Target server address
#[arg(short, long, default_value = "http://localhost:8000")]
target_server: String,
/// Interval of time between two request, in seconds
#[arg(short, long, default_value_t = 3)]
pause_between_requests: usize,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
let args = Args::parse();
let url = format!("{}/confid_req", args.target_server);
loop {
log::info!("Sending a new request to {url}");
let client = reqwest::Client::new();
let res = client
.post(&url)
.body("Top secret body with confidential information")
.send()
.await;
match res {
Err(e) =>
log::error!("Failed to perform request: {e}"),
Ok(res) => {
log::info!("Response status: {}", res.status());
}
}
std::thread::sleep(Duration::from_secs(args.pause_between_requests as u64));
}
}