iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0
Security

picoCTF系列 第 21

[Day 21] SOAP

  • 分享至 

  • xImage
  •  

題目要求我們從網頁中讀取到 /etc/password 的資訊,並且提示給了我們 XML external entity injection 這個提示。
https://ithelp.ithome.com.tw/upload/images/20240826/20168342IOJrRQY5q8.png
hint 1:XML external entity Injection

那我們就先來看看 XML external entity Injection ( 也稱為 XXE ) 到底是甚麼吧!
在了解 XXE 前,要先了解什麼是 XML。
XML 是一個純文件型態的檔案,將 data 以簡單格式儲存,以供跨平台使用。
其中 XML 有 (1) DTD 和 (2) XML schema 這兩個部分。
DTD ( document type defination ) 又分成 4 個部分:(1) elements (2) attribute (3) entity (4) comments。
XML schema 則是 HTML 的版本。
而 XXE 簡單來說就是透過 XML 增加一些外部 entity, 然後藉此查看到 server 的資料。( 如下圖 )
https://ithelp.ithome.com.tw/upload/images/20240826/20168342FcG2iRh9TR.png

詳情可參考以下網址:
What is XXE ( 圖源來自於此 ) 、 來自外部的威脅- XXE漏洞攻擊成因

回到正題,點擊題目給的網址,會出現以下畫面。
https://ithelp.ithome.com.tw/upload/images/20240826/20168342GQAObXLANl.png

我們打開 burpesuite,發現點擊任一圖片的 detail,會出現以下 request,
https://ithelp.ithome.com.tw/upload/images/20240826/20168342ENsZLWbtBn.png

在 repeater 中送出 request,可以看到 response 如下。
https://ithelp.ithome.com.tw/upload/images/20240826/201683424OMyE90h8D.png

增加 XXE,並且將 ID 設為我們自訂的 entity 名稱,再次 request 後,得到的 response 就會出現 etc/password 的資訊了,並且可以看到 flag 就在 response 中。
https://ithelp.ithome.com.tw/upload/images/20240826/20168342pp22NtPDxj.png

而我們新增的<!DOCTYPE root [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> 這行的意思是將 "file:///etc/passwd" 定義為 xxe 這個變數名稱。之後出現 &xxe; 的地方就代表 "file:///etc/passwd" 的意思。

小結:
了解 XXE 和 XML。


上一篇
[Day 20] Safe Opener 2 & Reverse
下一篇
[Day 22] dont-you-love-banners
系列文
picoCTF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言