Open osxtest opened 4 months ago
This is the expected behavior, because when we use EvilPot, it's to confirm the strength of the POC, and to force the POC to add some features when writing the time blinds, or else it's easy to false alarms. Because this one does mimic real behavior, it's really unavoidable for the generic dast plugin.
Hi @Jarcis-cy,
Since we want to "force the POC to add some features when writing the time blinds, or else it's easy to false alarms",
I suggest we simulate common behaviors of time-based SQL injection false positives. For example:
sleep(0)
, the response sleeps for 0 seconds.sleep(5)
, the response sleeps for 5 seconds.sleep(2)
, the response still sleeps for 5 seconds.Then if the POC is still vulnerable, it should add some false positive checks.
Currently, EvilPot accurately sleeps for the exact duration specified in the payload, which is unlikely to generate false positives.
Thanks
Hi,
In the EvilPot system, it goes to sleep if it matches the
sleep
orwaitfor
function.https://github.com/chaitin/xray/blob/e0e361a596566a996f0fb4558900e981f40bbf8f/tests/evilpot/evil/evil.go#L73-L95
However, the sleep action behaves the same as a real-world time-based SQL injection.
How can I modify my plugin to fix this false negative?
Try to perform calculation in the sleep function like
sleep(1+1)
?or try to add another request with payload that will cause sql error like
ssleep(1)
to see if it still sleeps?However, EvilPot can still adapt to the above false positive check,
since in time-based SQL injection, it seems like the sleep time is the only condition we can rely on.
I'm really looking forward to your reply.
Thanks