Vvveb 1.0.5 | User account bruteforce

Basic Information

Software Type Web App
Software Name Vvveb
Affected Version 1.0.5
Software Vendor Vvveb
Software Link https://github.com/givanz/Vvveb
Severity Medium
CVSS Score 6.3
Affected Assets 100+
Date of Discovery Jan 3rd, 2025

Description

The user login endpoint located at /user/login is vulnerable to bruteforce because there is no rate limiting protection.

Reproduce

To reproduce the issue, register an account for testing at /user/signup and then use your email and password to sign in.
Submit a correct email with an incorrect email:


POST /user/login HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: multipart/form-data; boundary=---------------------------26162393051061393382488967706
Content-Length: 548
Referer: http://127.0.0.1/user/login
Origin: http://127.0.0.1
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Connection: keep-alive
Cookie: _ga_90PNJH7CQ5=GS1.1.1735826854.1.1.1735826858.0.0.0; _ga=GA1.1.305814098.1735826855; PHPSESSID=EzuO8BB8K7BLfydEIx%2C1De1mJA3ONYvZBOIhjeXt-syZFn0%2C
Priority: u=0, i

-----------------------------26162393051061393382488967706
Content-Disposition: form-data; name="csrf"

9viWf6BOwWSbYYxl
-----------------------------26162393051061393382488967706
Content-Disposition: form-data; name="email"

[email protected]
-----------------------------26162393051061393382488967706
Content-Disposition: form-data; name="password"

redshark1231
-----------------------------26162393051061393382488967706
Content-Disposition: form-data; name="redirect"


-----------------------------26162393051061393382488967706--


As a result, you get the following response:
Authentication failed, wrong email or password!
For a correct set of credentials, you get redirected to /user and following the direction, you get the following response: This is your user dashboard

With this in mind, we can craft an exploit to perform password bruteforce, here is my exploit:
https://gist.github.com/0xHamy/30a305e01e97a02ada381439237b04b5

Proof of Concept (PoC) Video

PoC Exploit

https://gist.github.com/0xHamy/30a305e01e97a02ada381439237b04b5

Mitigation

Add rate limiting and captcha.

Patch

Vvveb added a failed logins table with an hourly count of failed attempts, the account is locked after 10 attempts for the current hour.



Posted on: January 10, 2025 09:25 PM