fixed indexing out of bounds w/ extensions/methods on resume

This commit is contained in:
epi
2023-03-11 07:34:17 -06:00
parent c04bf4a703
commit 9f557329eb

View File

@@ -337,7 +337,18 @@ impl ScanHandler {
continue;
}
let list = self.get_wordlist(scan.requests() as usize)?;
let divisor = self.handles.expected_num_requests_multiplier();
let list = if divisor > 1 && scan.requests() > 0 {
// if there were extensions provided and/or more than a single method used, and some
// number of requests have already been sent, we need to adjust the offset into the
// wordlist to ensure we don't index out of bounds
let adjusted = self.handles.wordlist.len() as f64 / divisor as f64 - 1.0;
self.get_wordlist(adjusted as usize)?
} else {
self.get_wordlist(scan.requests() as usize)?
};
log::info!("scan handler received {} - beginning scan", target);