pub struct MassAssignmentScanner;Expand description
Detects potential mass-assignment vulnerabilities by injecting privileged fields.
§How It Works
- Baseline
GETcaptures currently elevated sensitive fields. - Active probe sends
POSTwith privileged fields. - Confirmation
GETchecks whether reflected fields persisted as newly elevated state.
§Findings
mass_assignment/reflected-fields(MEDIUM): privileged fields reflected in response.mass_assignment/persisted-state-change(HIGH): reflected fields also persisted in state.mass_assignment/dry-run(INFO): scanner configured to report planned probe only.
Implementations§
Trait Implementations§
Source§impl Scanner for MassAssignmentScanner
impl Scanner for MassAssignmentScanner
Source§fn name(&self) -> &'static str
fn name(&self) -> &'static str
Stable scanner identifier used for logging, metrics, and reporting.
Source§fn scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
url: &'life1 str,
client: &'life2 HttpClient,
config: &'life3 Config,
) -> Pin<Box<dyn Future<Output = (Vec<Finding>, Vec<CapturedError>)> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
url: &'life1 str,
client: &'life2 HttpClient,
config: &'life3 Config,
) -> Pin<Box<dyn Future<Output = (Vec<Finding>, Vec<CapturedError>)> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Run this scanner against a single URL.
Auto Trait Implementations§
impl Freeze for MassAssignmentScanner
impl RefUnwindSafe for MassAssignmentScanner
impl Send for MassAssignmentScanner
impl Sync for MassAssignmentScanner
impl Unpin for MassAssignmentScanner
impl UnsafeUnpin for MassAssignmentScanner
impl UnwindSafe for MassAssignmentScanner
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more