Update
This commit is contained in:
commit
6ebf0f1776
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/target
|
||||||
|
.idea
|
1574
Cargo.lock
generated
Normal file
1574
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
11
Cargo.toml
Normal file
11
Cargo.toml
Normal 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
46
src/main.rs
Normal 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));
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user