題目鏈接:http://web.jarvisoj.com:9882/
目的很明確獲取/home/ctf/flag.txt的內容
一般讀取目標機的本地文件都會用到file協議。
思路:
那么思路一:文件包含;
思路二:ssrf漏洞,這個成功率不大;
思路三:xxe漏洞,再沒看源碼的情況下試了一下,發現可以。
驗證:
訪問題目鏈接
隨便輸入,輸入url發現都沒有什么回顯或者跳轉
那么直接burp抓包
我們把content-type改成application/xml的類型,然后下方就可以寫入xml代碼,先用dtd內部注入看一下能執行不
發現可以成功執行,外部實體注入的話這里沒有服務器,不能夠測試,那么直接外部注入看是否成功
發現可以讀取文件,那么直接讀取home/ctf/flag.txt內容
flag讀取成功!
也可進行源碼分析
發現是AJAX異步傳送數據
在一般的異步網站都會有異步數據與服務器的交互,一般傳送數據為json但如果將傳送的數據格式改為xml。有很大的可能服務器會解析你異步上傳的xml腳本執行想要干的事。