
前言概述
漏洞挖掘程序中,經常會碰到一些利用場景相對困難且危害十分有限的漏洞,
還有就是有一定危害性,但是普遍被定為低危的反射型XSS漏洞,在測驗程序中碰到這類漏洞真的是內心復雜,提交平臺就是低危,不交吧漏洞又確實存在安全風險,
那么如何把這些“雞肋漏洞”的危害提升一個檔呢?
接下來,就是變廢為寶的操作,
1. 反射型XSS:
反射型XSS一般存在于可直接將外部輸入在瀏覽器輸出的功能之中,例如搜索、文章分類、選擇時間等引數直接輸出在URL中,
一般來說小廠商對反射型XSS的關注并不多,早些年反射XSS很多平臺都是不收的,只有一些大廠商對反射XSS還有一定關注度,但是因為反射XSS需要用戶配合點擊構造后的URL才可以實作攻擊,利用手法上和危害都有限,所以一般都是按低危處理,反射XSS被用的最多的基本就是獲取cookie,通過cookie欺騙登錄受害者賬號,一般也都是拿來釣魚,
另外配合也是比較常見的組合拳打法,漏洞危害同樣不小,
2. CORS漏洞
2.1 原理分析
CORS,跨域資源共享(Cross-origin resource sharing),是H5提供的一種機制,WEB應用程式可以通過在HTTP增加欄位來告訴瀏覽器,哪些不同來源的服務器是有權訪問本站資源的,當不同域的請求發生時,就出現了跨域的現象,
CORS漏洞存在的原因主要在于Access-Control-Allow-Origin引數配置失誤,允許非同域站點訪問本站資源,
2.2 漏洞特征
利用burpsuite可以很方便的幫助我們測驗網站是否可能存在CORS跨域漏洞,
a.為每個請求自動加上Origin頭,
重放后可以看到靶機回傳Access-Control-Allow-Origin: foo.example.org,且成功獲取到資料,則證明存在CORS跨域,
b.在HTTP history中篩選可能存在CORS跨域的請求,
只需在過濾條件中輸入:Access-Control-Allow-Origin: foo.example.org
Access-Control-Allow-Credentials: true
另外需要注意的是如果服務器配置為:Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
不能證明漏洞存在,因為瀏覽器會自動攔截掉非認證域的請求,
2.22 漏洞利用
假設用戶在網站foo.com處于登錄狀態,同時用戶又點擊了我們配置好的鏈接evil.com,
evil.com的網站向foo.com這個網站發起請求獲取敏感資料,那么瀏覽器能否獲取到foo.com中的敏感資料完全取決于foo.com配置,
如果foo.com配置了Access-Control-Allow-Origin為允許接受跨域請求,則我們的evil.com就能獲取到敏感資料,否則瀏覽器會因為同源策略接收不到敏感資料,
關于CORS漏洞,可使用開源工具CrossSiteContentHijacking驗證,
- 雞肋XSS和CORS組合拳
以KEY師傅的Dorabox靶場模擬漏洞利用,首先驗證反射型XSS存在,
然后CORS也同時存在,假設傳遞了敏感引數,
因為CORS跨域資源獲取漏洞存在,那么我們可以通過讓用戶點擊我們自己服務器上搭建的payload環境,獲取到敏感資料,但是很明顯這樣的漏洞利用姿勢成功的概率太小,這年頭隔壁賣烤紅薯的大爺都知道不要點陌生鏈接了,所以我們需要反射XSS的配合,
首先我們構造能夠通過CORS跨域獲取到敏感資料的JavaScript代碼,類似于這樣:
```
function cors() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.status == 200) {
alert(this.responseText);
document.body.innerHTML = this.responseText;
}
};+WX:machinegunjoe666 免費獲取資料
xhttp.open("GET", "http://localhost:801/DoraBox/csrf/userinfo.php", true);
xhttp.withCredentials = true;
xhttp.send();
}
cors();
```
簡單分析一下,首先創建了一個cors()函式,這個函式首先判斷當前的訪問狀態,如果是正常訪問(即狀態碼為200),則獲取http://localhost:801/DoraBox/csrf/userinfo.php檔案的body下的全部內容(也可以根據ID獲取)并彈框展示出來,
現在我們只需要把反射XSS的payload替換為利用CORS跨域獲取敏感資訊的payload即可:
程式成功執行,
結語
至此,反射XSS和CORS配合成功獲取到用戶敏感資料,雖然同樣需要用戶點擊才能觸發,但是漏洞危害足夠大,如果是一些大廠的有敏感資訊的站點,一般都會給高危,其實漏洞挖掘的樂趣就在于不斷的發掘有趣的利用姿勢,在遇到一些看似“雞肋”的漏洞時,可以不用忙著提交,多思考一下是否可以和其他漏洞形成組合拳,這樣技術才會有上升的空間,漏洞危害也會因此而提高,相應的白帽子能獲得的收益也最大,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287097.html
標籤:其他
