新浪某站CRLF Injection導致的安全問題

2021-08-21 02:19:52 字數 2592 閱讀 6742

原創:

phithon 

2014 六月 30 06:45 

閱讀:3714 

網路安全

hrs, crlf, xss

crlf injection很少遇見,這次被我逮住了。我看zone中(還有一些同學對於這個漏洞不甚了解,甚至分不清它與csrf,我詳細說一下吧。

crlf是」回車 + 換行」(\r\n)的簡稱。在http協議中,http header與http body是用兩個crlf分隔的,瀏覽器就是根據這兩個crlf來取出http 內容並顯示出來。所以,一旦我們能夠控制http 訊息頭中的字元,注入一些惡意的換行,這樣我們就能注入一些會話cookie或者html**,所以crlf injection又叫http response splitting,簡稱hrs。

hrs是比xss危害更大的安全問題,具體是為什麼,我們往下看。

對於hrs最簡單的利用方式是注入兩個\r\n,之後在寫入xss**,來構造乙個xss。

舉個例子,一般**會在http頭中用location:這種方式來進行302跳轉,所以我們能控制的內容就是location:後面的***某個**。

所以乙個正常的302跳轉包是這樣:

但如果我們輸入的是

%0aset-cookie:jspsessid%3dwooyun
注入了乙個換行,此時的返回包就會變成這樣:

這個時候這樣我們就給訪問者設定了乙個session,造成乙個「會話固定漏洞」。

當然,hrs並不僅限於會話固定,通過注入兩個crlf就能造成乙個無視瀏覽器filter的反射型xss。

我們的返回包就會變成這樣:

之前說了瀏覽器會根據第乙個crlf把http包分成頭和體,然後將體顯示出來。於是我們這裡這個標籤就會顯示出來,造成乙個xss。

為什麼說是無視瀏覽器filter的,這裡涉及到另乙個問題。

瀏覽器的filter是瀏覽器應對一些反射型xss做的保護策略,當url中含有xss相關特徵的時候就會過濾掉不顯示在頁面中,所以不能觸發xss。

怎樣才能關掉filter?一般來說使用者這邊是不行的,只有資料報中http頭含有x-xss-protection並且值為0的時候,瀏覽器才不會開啟filter。

說到這裡應該就很清楚了,hrs不正是注入http頭的乙個漏洞嗎,我們可以將x-xss-protection:0注入到資料報中,再用兩個crlf來注入xss**,這樣就成功地繞過了瀏覽器filter,並且執行我們的反射型xss。

所以說hrs的危害大於xss,因為它能繞過一般xss所繞不過的filter,並能產生會話固定漏洞。

我們來乙個真實案例吧。

那麼我們試試xss看看:

看控制台,果然被xss filter攔截了。

那麼我們就注入乙個x-xss-protection:0到資料報中,看看什麼效果:

@mramydnei 還想到了乙個利用字元編碼來繞過xss filter的方法,當編碼是is-2022-kr時瀏覽器會忽略%0f,這樣我們在onerror後面加個%0f就能繞過filter,前提是注入乙個

當然,在location:這裡注入只有webkit核心瀏覽器才能夠利用,其他瀏覽器可能會跳轉、出錯。不過對於chrome的使用量來說,危害已經足夠了。

如何修復hrs漏洞,當然是過濾\r 、\n之類的換行符,避免輸入的資料汙染到其他http頭。

jsp mysql resin某站滲透過程

初步看了一下,jsp mysql架設,很容易的找到了乙個注入點 獲得mysql的root密碼為123321 cmd5太黑了,這都收費,建議以後去www.5.com telnet 了一下,mysql不能外連。cab6cccfaa4f9b2297b359ae934b6ec1 zhangguishu 12...

某站的簽到處理

一開始只是打算用cookie登陸,然後提交對應的引數就可以。獲取cookie不在多說,主要看引數問題 可以看到只有乙個post請求,且沒有引數。直接提交cookie訪問這個url,會發現成功了,於是我直接放到我伺服器上面進行跑。直接報錯,在伺服器調。列印返回值 上翻看到這個 登陸時候的介面 發現不行...

ThinkSNS某應用跨站指令碼攻擊

thinksns某應用跨站指令碼攻擊,危害各種自願上鉤的使用者 thinksns發表日誌可進行跨站指令碼攻擊,願意看的都會中招 上進行測試 1.我們先隨意插入一張網路 2.抓包,修改如下 3.發現document和cookie被濾掉了,但是測試location,果斷成功 4.那就好辦了,我們可以構造...