MCPcopy Create free account
hub / github.com/VenTheZone/Project-WebHunter / scan_forms

Method scan_forms

src/sql_injection_scanner.rs:253–296  ·  view source on GitHub ↗
(&self, pb: &ProgressBar)

Source from the content-addressed store, hash-verified

251 .await?
252 {
253 vulnerable = true;
254 break;
255 }
256 }
257 if vulnerable {
258 continue;
259 }
260
261 for (true_payload, false_payload) in &self.boolean_based_payloads {
262 if self
263 .test_form_boolean_based(&client, form, true_payload, false_payload, i, pb)
264 .await?
265 {
266 vulnerable = true;
267 break;
268 }
269 }
270 if vulnerable {
271 continue;
272 }
273
274 // Baseline control for the form's original values.
275 let baseline = self.measure_form_time(&client, form).await;
276 for payload in &self.time_based_payloads {
277 if self
278 .test_form_time_based(&client, form, payload, i, baseline, pb)
279 .await?
280 {
281 break;
282 }
283 }
284 }
285 }
286 Ok(())
287 }
288
289 async fn test_form_error_based(
290 &self,
291 client: &reqwest::Client,
292 form: &Form,
293 payload: &str,
294 param_index: usize,
295 pb: &ProgressBar,
296 ) -> Result<bool, reqwest::Error> {
297 let tested_param = form.inputs[param_index].name.clone();
298 let form_data = inject_form_field(form, param_index, |_| payload.to_string());
299

Callers 1

scanMethod · 0.45

Calls 3

test_form_error_basedMethod · 0.80
test_form_time_basedMethod · 0.80

Tested by

no test coverage detected