iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 20
0
Security

資安補漏洞,越補越大洞系列 第 20

[Day 20] 來玩WebGoat!之8:XXE Injection 2

今天來解看看挑戰題吧,首先是第3步的題目,題目希望我們可以用XXE的方式列出root目錄下的資料夾。首先先在留言欄輸入test試試看,利用ZAP來攔截訊息,發現瀏覽器是利用XML架構將我們輸入的文字傳送出去。

https://ithelp.ithome.com.tw/upload/images/20181104/20107304Fvu6ACo9pt.png

https://ithelp.ithome.com.tw/upload/images/20181104/20107304dTquFsxaG7.png

既然如此,我們就可以利用XXE的原理讓伺服器做點事情。首先我們先在欄位裡隨便輸入個東西並用ZAP攔截,接著對於攔截的內容進行修改,我們讓text標籤裡的內容改為一個叫做「&xxe;」的實體,並自己寫一段描述,讓這個實體的內容顯示出的會是系統的資料夾列表。

<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE comment [
  <!ELEMENT comment (#PCDATA)>
  <!ENTITY xxe SYSTEM "file:///">
]>
<comment>  <text>&xxe;</text></comment>

https://ithelp.ithome.com.tw/upload/images/20181104/20107304c6uMZMQ4X6.png

接著我們就發現root底下的資料夾被列出來啦~這一題也就如此成功過關了!

https://ithelp.ithome.com.tw/upload/images/20181104/20107304utR51d63Ck.png

如果跟我一樣對於XML結構算是初學者或不大熟的話,可以參考下列網址,學習XML DTD的相關內容,以及Elements及Entities等是如何使用的:https://www.w3schools.com/xml/xml_dtd_intro.asp 。這次多花了一點時間學習XML的架構,雖然導致文章寫得很慢,不過很有收穫呢!


上一篇
[Day 19] 來玩WebGoat!之7:XXE Injection
下一篇
[Day 21] 來玩WebGoat!之9:XXE Injection 3
系列文
資安補漏洞,越補越大洞30

尚未有邦友留言

立即登入留言