復(fù)現(xiàn)地址:https://buuoj.cn/challenges#[RoarCTF%202019]Easy%20Java
- WEB-INF/web.xml泄露
WEB-INF主要包含一下文件或目錄:
/WEB-INF/web.xml:Web應(yīng)用程序配置文件,描述了 servlet 和其他的應(yīng)用組件配置及命名規(guī)則涩馆。
/WEB-INF/classes/:含了站點(diǎn)所有用的 class 文件,包括 servlet class 和非servlet class旁瘫,他們不能包含在 .jar文件中
/WEB-INF/lib/:存放web應(yīng)用需要的各種JAR文件二汛,放置僅在這個(gè)應(yīng)用中要求使用的jar文件,如數(shù)據(jù)庫(kù)驅(qū)動(dòng)jar文件
/WEB-INF/src/:源碼目錄侨糟,按照包名結(jié)構(gòu)放置各個(gè)java文件怠惶。
/WEB-INF/database.properties:數(shù)據(jù)庫(kù)配置文件
漏洞檢測(cè)以及利用方法:通過(guò)找到web.xml文件耀态,推斷class文件的路徑轮傍,最后直接class文件,在通過(guò)反編譯class文件首装,得到網(wǎng)站源碼
- 漏洞成因:
通常一些web應(yīng)用我們會(huì)使用多個(gè)web服務(wù)器搭配使用创夜,解決其中的一個(gè)web服務(wù)器的性能缺陷以及做均衡負(fù)載的優(yōu)點(diǎn)和完成一些分層結(jié)構(gòu)的安全策略等。在使用這種架構(gòu)的時(shí)候仙逻,由于對(duì)靜態(tài)資源的目錄或文件的映射配置不當(dāng)驰吓,可能會(huì)引發(fā)一些的安全問(wèn)題,導(dǎo)致web.xml等文件能夠被讀取系奉。漏洞檢測(cè)以及利用方法:通過(guò)找到web.xml文件檬贰,推斷class文件的路徑,最后直接class文件缺亮,在通過(guò)反編譯class文件偎蘸,得到網(wǎng)站源碼。一般情況瞬内,jsp引擎默認(rèn)都是禁止訪問(wèn)WEB-INF目錄的迷雪,Nginx 配合Tomcat做均衡負(fù)載或集群等情況時(shí),問(wèn)題原因其實(shí)很簡(jiǎn)單虫蝶,Nginx不會(huì)去考慮配置其他類型引擎(Nginx不是jsp引擎)導(dǎo)致的安全問(wèn)題而引入到自身的安全規(guī)范中來(lái)(這樣耦合性太高了)章咧,修改Nginx配置文件禁止訪問(wèn)WEB-INF目錄就好了: location ~ ^/WEB-INF/* { deny all; } 或者return 404; 或者其他!
-
題目WP
image.png
點(diǎn)擊Help進(jìn)行截包
修改Get為post參數(shù)能真,看到FlagController
對(duì)目錄猜解
/Download?filename=WEB-INF/classes/com/wm/ctf/FlagController.class
對(duì)讀取的base64進(jìn)行解密
ZmxhZ3tmNDBmZjliNS01YmEyLTQwN2YtYWQ5Zi0yZDlmY2Y4NTkwMDZ9Cg==