信安之路
xxe漏洞基礎知識,網上很多。值得一提的是版本號,想要利用 xxe 需要注意 php 的版本號。。其實是libxml的版本號要小於等於 2.8.0。這一點很重要。。復現的環境是使用phpstudy的php5.4版本。一開始使用5.6 版本死活不成功。。怪自己太蠢。。
全域性搜尋關鍵字******xml_load_string就可以找到漏洞點。不難觀察出$postarr值使用偽協議寫入,是我們可控的,因此只要傳入構造好的xml語句即可外帶出資料。而這個漏洞點是不會回顯獲取到的資訊,因此只能構造oob進行資料外帶。
這是乙個很標準的xxe漏洞,使用基礎操作就可以了。
在自己的 vps 上建立乙個oob_poc.dtd,傳送資料報如下:
可以看到自己的伺服器上,日誌裡多了一條請求,即資料經過base64加密外帶到伺服器的記錄。這裡如果檔案過大則會外帶資料失敗。。不知道是什麼原因。。
xml本質是進行資料傳輸,在特定的情況下也許會產生不同的漏洞,比如說此處的 sql 注入。這個sql注入是挖掘上面xxe漏洞後才發現,可以說的上是買一送一了。
上文提到,$postarr變數是由偽協議輸入得來的,而該cms全域性是有對get和post引數進行過濾的,一但輸入單引號等特殊字元,就會被攔截。也正因為是使用偽協議的方式寫入引數,從而繞過了該檢查機制。
只要我們控制了$tousername的值,即可造成一枚sql注入。而$touusername是通過 xml 解析來的,顯然我們可以控制這個解析的串。構造如下payload
msgtype、event等用來控制程式流程,fromusername是注入sql語句的地方。對比如下兩張圖,不難看出如果條件為真,伺服器則會延時一段時間,因此可以判斷出存在 sql 注入。aatousername>
bb' or 1=if(0,sleep(1),0) #fromusername>
cccreatetime>
eventmsgtype>
subscribeevent>
eecontent>
xml>
這裡的 xxe 漏洞也算是碰巧遇見的,主要是傳參的方式變了,一開始沒認出來。
知識點傳送門
這套cms審計下來明顯的sql注入,重灌漏洞等問題挖到四五個點。這是第一次通過審計的方式挖掘到xxe,也算是圓滿了一些。由於審計效率太慢,大部分洞都被大佬們挖走了(留下沒有技術的眼淚.jpg),只好撿撿漏。
審計的時候一定要注意版本!!!不管是 cms 的版本也好,還是環境的版本也好都會對復現產生一定的影響,可能浪費不必要的時間。再有就是審計**耐心很重要,技巧方面就是善用全域性搜尋,定位變數。大概就是這樣了
●編號944,輸入編號直達本文
●輸入m獲取文章目錄
推薦↓↓↓
資料庫開發
WEB XML與XXE漏洞 偽協議
在做unctf時遇到一道web題,是xml的xxe漏洞 do you like xml 當時沒做出來,沒反應過來這個知識點,後來經人指點稍微理解了一些關於這個的漏洞,又在判作業中看到了這個知識點,所以決定記錄下來 xml是用於標記電子檔案使其具有結構性的標記語言,可以用來標記資料 定義資料型別,是一...
php檔案包含 偽協議 檔案上傳漏洞利用例項
1.上傳檔案過濾了字尾名和mime型別,files pic type 是由瀏覽器傳輸的檔案型別決定,但是mime content type 是由php 內建方法判斷檔案型別 2.任意檔案包含 f get f include once sys config.php include f 利用zip或ph...
php檔案包含 偽協議 檔案上傳漏洞相關說明
2.任意檔案包含 f get f include once sys config.php include f 利用zip或phar偽協議讀取壓縮包中的檔案 上傳webshell完成 擴充套件 php偽協議 file 訪問本地檔案系統 訪問 http s ftp 訪問 ftp s urls php 訪...