XXE讀取文件 Geek10th

點開網站:
在這裏插入圖片描述
抓包,修改屬性:
在這裏插入圖片描述
返回了這麼一串:
在這裏插入圖片描述
由於是$name==md5(),由弱類型比較和md5想到了md5碰撞,由於PHP的弱比較造成它會將oe開頭的md5(字符)解析成科學計數法(數字),於是我們開始爆破。
在這裏插入圖片描述
值得注意的是,我們要將引號也包括進去,因爲在json編碼中,"0"爲字符串,0爲數字。
在這裏插入圖片描述
爆破完成,看到了
在這裏插入圖片描述
知道了文件名和位置之後,加上提示的xxe,接下來就是重頭戲了。

在參考了大佬的文章之後,我對XXE有了一點了解,這裏我們使用的是最簡單的一種。
主要在這裏
關鍵在這裏,我們看到,實體被當作了一個變量來調用,我對<user>&xxe;</user>xxe的理解是,它相當於函數的調用,而上面<!ELEMENT xxe "test">相當於函數的定義。於是,我們可以改變“函數”內容來實現對於文件的操作。
就像這樣
這裏,我們不再是xxe替換成test,而是將file:///c:/test.dtd當作系統命令執行,以此來讀取系統中的文件。

在這題裏,我只要把這裏的file協議替換一下就行了,這裏,我們使用php僞協議來讀取文件內容。
在這裏插入圖片描述
將base64解碼就是flag。




第一次認識了XXE,對json也有了一些瞭解,學到很多新知識。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章