當(dāng)XSS遇上CSRF

今天我們來介紹一個(gè)場景,當(dāng)xss遇上csrf的時(shí)候,是否能打出一套漂亮的組合技能盒件。

實(shí)驗(yàn)環(huán)境:

ZvulDirll[請用下面我簡單修改過的版本]

下載地址:鏈接:?http://pan.baidu.com/s/1kUwQ6R9?密碼: 92tc

一、安裝:

0x00:解壓ZVulDrill壓縮包,將其放在www目錄下桶错,也就是你的網(wǎng)站根目錄。

0x01胀蛮、編輯ZVulDrill\sys\config.php中的數(shù)據(jù)庫賬號和密碼

0x02院刁、打開mysql終端,創(chuàng)建zvuldrill數(shù)據(jù)醇滥,使用下面的sql語句黎比。

create database zvuldrill;

0x03鸳玩、然后開始導(dǎo)入sql語句進(jìn)zvuldrill數(shù)據(jù)庫阅虫。

use zvuldrill;

source F:/wamp/www/ZVulDrill/sys/zvuldrill.sql;

0x04、打開瀏覽器不跟,訪問

http://localhost/ZVulDrill/

二颓帝、尋找Xss漏洞

0x00、搜索框的xss

一開始打開這個(gè)web應(yīng)用窝革,我們可以大概看到的功能點(diǎn)购城,比如搜索留言、用戶登錄和注冊虐译、留言瘪板。而一般倆說搜索框容易出現(xiàn)xss或者sql注入的問題。

(1)我們先輸入一些內(nèi)容進(jìn)行搜索漆诽,比如2333333侮攀。如下圖

可以看到锣枝,我們搜索的內(nèi)容顯示在頁面上。我們右鍵查看一下元素兰英,觀察2333333在什么標(biāo)簽之間撇叁。如下圖,2333333并沒有被什么標(biāo)簽包裹住畦贸。

我們將搜索的內(nèi)容變成

test

,點(diǎn)擊回車陨闹。可以看到頁面上多了一個(gè)以h1標(biāo)簽顯示的test字符串薄坏,也就是這里存在xss漏洞趋厉。網(wǎng)站后臺并沒有凈化我們的特殊字符,使得我們輸入的數(shù)據(jù)被當(dāng)做成是標(biāo)簽來解析颤殴。效果如下圖觅廓。

這里是一個(gè)存在XSS漏洞的點(diǎn)。

0x01涵但、

注冊一個(gè)賬號后杈绸,登錄之后進(jìn)行測試。

1)像這種留言板矮瘟,一般在留言處比較容易出現(xiàn)xss漏洞瞳脓。我們先試試在留言處輸入一堆異常字符看看是否會被轉(zhuǎn)義。如下圖澈侠,我們輸入2333'"\&#;<>,點(diǎn)擊留言即可劫侧。

然后我們右鍵查看網(wǎng)頁源代碼,搜索"2333",我們看一下我們異常字符被怎樣處理哨啃。

可以看到這里2333是被td標(biāo)簽包裹住烧栋,要是我們想插入我們的javascript代碼,那我們需要先閉合拳球,可是我們的<>都被轉(zhuǎn)義了审姓。這里行不通。

2)我們繼續(xù)看一看這里有的功能祝峻,有個(gè)編輯功能魔吐。點(diǎn)擊進(jìn)去看看。如下圖莱找,這里我們可以修改我們的用戶名酬姆,而用戶名的輸出點(diǎn),當(dāng)前頁面有一個(gè)奥溺,注意右上角的小框辞色,那里是顯示用戶的用戶名。

我們右鍵查看元素浮定,查看一下右上角小框是被什么標(biāo)簽所包裹住淫僻。如下圖诱篷,

這里的用戶名是被a標(biāo)簽包裹住的,我們嘗試一下閉合a標(biāo)簽然后插入一段javascript代碼看看雳灵。

修改用戶名為testalert(1)

我們點(diǎn)擊更新按鈕,查看一下效果闸盔。

可以看到這里悯辙,執(zhí)行了script標(biāo)簽內(nèi)的alert函數(shù)。也就是這里存在一個(gè)注入點(diǎn)迎吵。我們修改一下alert的內(nèi)容躲撰,即可獲取cookie值。

修改用戶名為testalert(document.cookie)

我們正確的獲取到了cookie值击费,但是這里的xss只能叉自己拢蛋,我們怎樣才能讓這里的xss發(fā)揮真實(shí)的作用,盜取他人的cookie信息蔫巩,而不僅是自己的呢谆棱?

三、CSRF漏洞

正如CSRF漏洞是偽造別人發(fā)出某個(gè)請求圆仔,致使別人在不知情的情況下執(zhí)行某個(gè)操作垃瞧,如修改密碼、留言坪郭、添加用戶等等个从。

0x00、如何測試是否存在CSRF漏洞

1)這里需要用到Brupsuite來對網(wǎng)站后臺的防御進(jìn)行一些分析歪沃。第一個(gè)是觀察發(fā)出的請求是否帶有隨機(jī)的Token值嗦锐;第二個(gè)是分析網(wǎng)站后臺是否對Referer進(jìn)行校驗(yàn)。

我們配置好瀏覽器的代理為Brupsuite監(jiān)聽的端口沪曙。點(diǎn)擊更新用戶名奕污,Brupsuite抓取數(shù)據(jù)包。如下圖

可以看到Post的數(shù)據(jù)包中并沒有出現(xiàn)token字眼珊蟀,隨機(jī)數(shù)token一般是網(wǎng)站用來防御CSRF的一個(gè)措施菊值。除了Token,我們還有兩個(gè)要點(diǎn)要分析育灸。第一個(gè)要點(diǎn)腻窒,網(wǎng)站是否校驗(yàn)了請求的Referer,這個(gè)Http header是用來表示請求的來源地址是什么磅崭。如果是CSRF的話儿子,那么Referer的值將會為空。

2)我們在數(shù)據(jù)包的空白處右鍵砸喻,send to repeater柔逼,發(fā)到repeater方便我們修改數(shù)據(jù)之后重放請求蒋譬。這里我們將上面Post數(shù)據(jù)中的Referer那一行刪除掉。

刪除后愉适,點(diǎn)擊Go按鈕犯助。返回內(nèi)容如下圖。

返回的數(shù)據(jù)包將我們重定向到edit.php维咸,我們繼續(xù)點(diǎn)擊follow redirection按鈕剂买,觀察一下返回的頁面內(nèi)容。

我們再下面的搜索框那里輸入demo11癌蓖,可以發(fā)現(xiàn)有兩處匹配到了瞬哼。說明我們這里修改成功,在Http header沒有附帶Referer的情況下租副。

3)接下來我們要對最后一個(gè)要素進(jìn)行驗(yàn)證坐慰,就是Post數(shù)據(jù)中的id參數(shù)。我們要驗(yàn)證id參數(shù)的存在是否影響我們修改用戶名用僧。我們同樣是在Repeater里面结胀,把Post數(shù)據(jù)中的id參數(shù)刪除掉,同時(shí)我們把username也修改成demo22永毅,用來與上一次的修改區(qū)分開把跨。如下圖。

修改完成之后沼死,我們點(diǎn)擊Go按鈕着逐,讓數(shù)據(jù)包發(fā)送。如下圖意蛀,返回的響應(yīng)還是302耸别,將我們重定向edit.php,但是頁面中還有Php的Notice信息县钥,提醒我們id變量不存在秀姐。

我們繼續(xù)點(diǎn)擊follow redirection。然后再右下角的搜索框那里搜索demo22若贮。

可以看到在下圖省有,demo22出現(xiàn)了兩次,說明我們修改成功谴麦。也就是說蠢沿,這里的id參數(shù)并沒有影響我們修改用戶名。通過上面的兩次分析匾效。我們可以確定這里存在著CSRF漏洞舷蟀。下面我們寫一個(gè)簡單的頁面去測試。

4)測試CSRF的Poc

測試CSRF漏洞Poc

var formTag = document.getElementById("Poc");

formTag.submit();

我們復(fù)制上面的內(nèi)容到文本編輯器,然后保存為poc.html野宜。然后在登錄了Zvudrill之后扫步,在同一瀏覽器打開poc.html。

下圖是我的brupsuite抓取到poc發(fā)送到網(wǎng)站的請求匈子,可以發(fā)現(xiàn)并沒有Referer值河胎。

我們把brupsuite的代理功能關(guān)閉。然后查看一下Poc的效果旬牲。

可以看到下圖中的用戶名已經(jīng)被修改成hacker仿粹。

四、綜合利用

1)原茅、經(jīng)過上面的分析,我們知道更新用戶名這里的username并沒有過濾特殊字符可以造成xss堕仔,然后更新用戶名發(fā)送的請求存在CSRF擂橘,可以在用戶點(diǎn)擊的時(shí)候,修改用戶的用戶名摩骨。因而我們可以寫出下面的Poc通贞。

測試CSRF漏洞Poc

alert(document.cookie)" class="form-control" id="inputEmail">

var formTag = document.getElementById("Poc");

formTag.submit();

我們點(diǎn)擊源代碼為上述代碼的html頁面之后,將會出現(xiàn)這樣的效果恼五。

2)當(dāng)然昌罩,我們這里的value還可以是包含一段惡意的js代碼,可以竊取當(dāng)前用戶的cookie到xss平臺灾馒。之后便可以使用盜取的cookie全仿造用戶的身份去做其他操作了茎用。

下面我使用Xss平臺的一個(gè)盜取cookie的鏈接,Xss平臺的注冊地址

Poc如下:

測試CSRF漏洞Poc

http://t.cn/RG3kRlu>" class="form-control" id="inputEmail">

var formTag = document.getElementById("Poc");

formTag.submit();

[1]我在Firefox瀏覽器進(jìn)行登錄睬罗,然后再Firefox瀏覽器打開poc.html轨功。然后在chrome瀏覽器利用cookie進(jìn)行登錄。

在登錄Firefox進(jìn)行登錄容达,如下圖

我們再Firefox中打開poc.html,如下圖

[2]我們登錄xss平臺古涧,找到創(chuàng)建的項(xiàng)目』ㄑ危可以看到已經(jīng)獲取到了受害者的cookie羡滑。

[3]利用盜取的cookie,在chrome瀏覽器直接仿造身份。

step1:訪問Xss平臺中獲取的Referer的url

step2:通過Chrome的EditThisCookie插件算芯,重寫我們的cookie柒昏。

step3:再次訪問Referer對應(yīng)的url,觀察效果也祠。如圖

五昙楚、寫在最后

寫在最后,在攻防中重要的是人思考漏洞诈嘿,對待漏洞的思路堪旧。在有想法的白帽子手中削葱,不同漏洞的組合會起到高危漏洞的效果。我們不能期待每一次都遇到高危漏洞淳梦,我們只能改變我們對待漏洞的看法析砸。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市爆袍,隨后出現(xiàn)的幾起案子首繁,更是在濱河造成了極大的恐慌,老刑警劉巖陨囊,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弦疮,死亡現(xiàn)場離奇詭異,居然都是意外死亡蜘醋,警方通過查閱死者的電腦和手機(jī)胁塞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來压语,“玉大人啸罢,你說我怎么就攤上這事√ナ常” “怎么了扰才?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長厕怜。 經(jīng)常有香客問我衩匣,道長,這世上最難降的妖魔是什么酣倾? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任舵揭,我火速辦了婚禮,結(jié)果婚禮上躁锡,老公的妹妹穿的比我還像新娘午绳。我一直安慰自己,他們只是感情好映之,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布拦焚。 她就那樣靜靜地躺著,像睡著了一般杠输。 火紅的嫁衣襯著肌膚如雪赎败。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天蠢甲,我揣著相機(jī)與錄音僵刮,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛搞糕,可吹牛的內(nèi)容都是我干的勇吊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼窍仰,長吁一口氣:“原來是場噩夢啊……” “哼汉规!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起驹吮,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤针史,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后碟狞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體啄枕,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年族沃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了射亏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡竭业,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出及舍,到底是詐尸還是另有隱情未辆,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布锯玛,位于F島的核電站咐柜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏攘残。R本人自食惡果不足惜拙友,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歼郭。 院中可真熱鬧遗契,春花似錦、人聲如沸病曾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泰涂。三九已至鲫竞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逼蒙,已是汗流浹背从绘。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人僵井。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓陕截,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驹沿。 傳聞我的和親對象是個(gè)殘疾皇子艘策,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 【三個(gè)標(biāo)簽】 一:一名學(xué)生好習(xí)慣培養(yǎng)教練 二:85后創(chuàng)業(yè)者 三:傳統(tǒng)文化踐行者 【90天踐行目標(biāo)】 一:晨練,完成...
    悅洋行者閱讀 588評論 0 0
  • 如果沒有那一次的安排驯妄,我們是不會相遇。你像沙粒被風(fēng)吹到了我的眼中合砂。不礙青扔。但,我愛了翩伪。從開始的那刻起我就告訴自己微猖,認(rèn)...
    木可來了閱讀 228評論 0 0
  • 我不相信眼前的黑暗 即使明天沒有太陽 我不相信惡魔的謊言 即使我將失去所有 我也絕不相信虛偽的情感 即使人們并不知...
    ferrymanD閱讀 277評論 0 1