0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

最近key佬發現了用友NC的ssrf漏洞,現在我們來看看這個漏洞的發現過程

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

用友UAP系統存在SSRF漏漏洞洞,該漏漏洞洞為回顯型別,可以直接檢視內網的Web資訊,並可以藉助此漏漏洞洞將伺服器 作為HTTP攻擊跳板。

漏洞挖掘過程

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

在做專案的時候遇到了這個系統,系統版本較新,所以以前的漏洞都沒辦法去使 用。探測 網站 目錄發現了了 /uapws/ , 二次探測發現了了 service ,訪問 /uapws/service 即可獲取到 一堆WSDL接 口:

隨便便找 一個接 口 /uapws/service/nc。itf。bd。crm。ICurrtypeExportToCrmService?wsdl 進 入:

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

發現 一個接 口帶有 xsd 引數: /uapws/service/nc。itf。bd。crm。ICurrtypeExportToCrmService? xsd=/nc/vo/pub/BusinessException。xsd

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

根據其引數值 /nc/vo/pub/BusinessException。xsd ,初步判斷為 檔案讀取,去測試發現並不存在檔案讀取的問題:

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

file:///etc/passwd

。。/。。/。。/。。/。。/。。/etc/passwd

302 redirect

換個思路,將 xsd 引數的值設為URL,是否能成功呢?來測試下,將 xsd 引數的值設為 burp

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

collaborator 的地址去請求:

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

目標伺服器 請求成功並返回了了請求的響應主體, burp collaborator 也成功收到了了請求,猜想驗證成功: 可作為HTTP請求攻擊跳板

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

經過測試是可以探測內 網主機的,並且在這里該點會跟蹤302跳轉(基於PoCBox平臺):

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

PoC 程式碼

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

· -*- coding:utf-8 -*-

· Author: Vulkey_Chen

· Email: gh0stkey@hi-ourlife。com

· Team: Defense Team of Mystery Security

· Website: www。hi-ourlife。com

· About: YongYou NC UAPWS SSRF

· Usage: python ssrf。py target_url

0day挖掘經驗--用友NC UAPWS SSRF 0day的發現過程

import requests,sys

def attack(url):

poc_uri = “/uapws/service”

url = url + poc_uri

r = requests。get(url)

if (r。status_code == 200) and (“wsdl” in r。text):

print “Vulnerable: {0}”。format(url)

if __name__ == ‘__main__’:

attack(sys。argv[1])

漏洞利用難點

這個點主要用於獲取XSD文件內容的,所以很多返回的 非XSD 文件的內容就會有500的錯誤,導致有很多攻擊只能盲打而無法去獲取實際返回內容。

可以看到,這個漏洞屬於webservice API介面漏洞中的ssrf漏洞,本質上是透過wsdl介面,判斷檔案是否存在,從而造成SSRF

我們在挖掘這類漏洞的時候可以利用以下工具:

· Soap UI PRO,滲透測試流程的發起,通訊報文的解析、集合payload之後通訊報文的重新組裝等,14天試用,可以做自動化測試。

· SoapUI Free,手工測試

· SOAPSonar,SOAP UI 的替代。

· Burp Suite,代理攔截,跟蹤通訊過程和結果,對通訊進行重放和二次處理等。

· WSSAT

· WS-Attacker

測試的漏洞除了ssrf還有

· Fuzzing

· XSS /SQLi/ Malformed XML

· File Upload

· Xpath Injection

· XML Bomb (DoS)

· Authentication based attacks

· Replay attacks

· Session fixation

· XML Signature wrapping

· Session timeout

· Host Cipher Support/ Valid Certificate/ Protocol Support

· Hashing Algorithm Support

總之key佬還是很細心的