Designing Time Oracle
Theory
No results or error messages displayed - only timing differences.
How It Works
Make server wait different amounts of time based on query outcome:
SELECT ... FROM ... WHERE ... = 'Mozilla...'; IF (q) WAITFOR DELAY '0:0:5'--'q = True
Wait 5 seconds, then respond
q = False
Respond immediately
Testing the Oracle
False Query (1=0)
GET / HTTP/1.1
Host: <TARGET>
User-Agent: ';IF(1=0) WAITFOR DELAY '0:0:5'--Response time: ~9ms (immediate) β
True Query (1=1)
Response time: ~5,071ms (delayed) β
Python Oracle Script
Choosing Delay Value
Trade-offs
1 second
Fast extraction
False positives from slow network
3 seconds
Good balance
Moderate extraction time
5 seconds
Very accurate
Slow extraction
10 seconds
Extremely accurate
Very slow
Recommendation
Network Considerations
Slow VPN: Use higher delay (5-10s)
Fast local: Can use lower delay (1-2s)
Unstable connection: Use higher delay + multiple retries
Example: Extract Database Name
Query Base
Extraction Script
Output
Time Oracle vs Boolean Oracle
Detection
Response content/length
Response time
Speed
Faster
Slower
Accuracy
More reliable
Network dependent
Visibility
Needs visible difference
Works blindly
Common Patterns
Conditional Delay
Payload Templates
Improving Reliability
Multiple Checks
Threshold Buffer
Quick Reference
Oracle Template
Verification
ASCII Ranges
48-57
0-9 (digits)
65-90
A-Z (uppercase)
97-122
a-z (lowercase)
32-126
All printable
Next Steps
Last updated