[深入學(xué)習(xí)Web安全] 深入利用XSS漏洞

JS操作Cookie
接下來,我們還得學(xué)習(xí)一個(gè)小知識(shí),用JS操作Cookie,嘿嘿。首先,我們得知道一個(gè)document的屬性cookie,我們先創(chuàng)建一個(gè)HTML文件,寫入如下代碼:
然后用瀏覽器打開這個(gè)頁面:
可以看到,當(dāng)前Cookie為空,我們修改剛才的代碼如下:
我們?cè)賮碓L問頁面:
可以看到設(shè)置成功了,但是這樣的Cookie并不標(biāo)準(zhǔn),后端也不能直接操作,還得專門編寫處理這種特殊“Cookie”的函數(shù),所以,我們來看一個(gè)JS設(shè)置Cookie的函數(shù):
我們可以看到,這個(gè)setCookie()函數(shù)并不復(fù)雜,首先傳入一個(gè)c_name,其實(shí)就是CookieName,和對(duì)應(yīng)值,最后是過期天數(shù)(每個(gè)Cookie都是存在生命周期的,在生命周期之內(nèi)的Cookie才可用)。
利用HTML代碼發(fā)起HTTP請(qǐng)求(重點(diǎn))
接下來,我們就要來說這篇paper的重點(diǎn)部分了,如何利用HTML代碼來發(fā)起HTTP請(qǐng)求,請(qǐng)大家準(zhǔn)備好,我們即刻開始,首先我們創(chuàng)建一個(gè)HTML文件,就叫“htmlRequest.html”吧,代碼如下:
我們?cè)L問該頁面,并且打卡審查元素的Network,然后刷新,如下圖:
我們可以看到,我們利用src屬性發(fā)起了兩個(gè)GET請(qǐng)求,分別是www.xxx.com和[url=www.yyy.com]www.yyy.com[/url]。那么POST請(qǐng)求呢?(這個(gè)可能XSS用不到,但是CSRF一定會(huì)用到,而且是CSRF的重點(diǎn)),我們修改HTML代碼為:
我們還是一樣的,訪問頁面,Network,刷新頁面,如下:
我們可以看到,是成功的提交了test-1&test=2到www.xxx.com/test的,這個(gè)POST請(qǐng)求也是成功的。
盜取Cookie的XSS-ShellCode的編寫與利用
我們,接著來學(xué)習(xí)XSS-ShellCode的編寫與利用,首先,例如我們有一個(gè)VPS,在Web跟目錄創(chuàng)建一個(gè)stealCookie.php和一個(gè)showData.php,我們來構(gòu)思一下,首先,我們對(duì)這兩個(gè)程序做一下需求分析:
stealCookie.php:我們的目的是程序可以接收GET參數(shù)location和cookie,并將其保存到數(shù)據(jù)庫中。showData.php:我們的目的是輸出數(shù)據(jù)庫中存儲(chǔ)的location和cookie。
所以,我們寫這個(gè)程序之前最重要的就是先把存儲(chǔ)數(shù)據(jù)的表搞好,于是我在mysql里創(chuàng)建了一個(gè)xss數(shù)據(jù)庫,在該庫中創(chuàng)建了一個(gè)data表,data表里有l(wèi)ocation和cookie列。
接著,我們來編寫stealCookie程序,首先,要獲取GET參數(shù),我們就得使用超全數(shù)組GET[參數(shù)名],如下:
然后,我們鏈接數(shù)據(jù)庫,并存儲(chǔ)數(shù)據(jù):
我們來測(cè)試一下,傳入location=ichunqiu.com&cookie=abcdefg,嘗試如下:
我們到數(shù)據(jù)庫去查看,如下:
可以看到,已經(jīng)成功的插入了,接著就是編寫showData程序了,首先呢,肯定要鏈接數(shù)據(jù)庫,選擇xss庫(對(duì)了大家有沒注意到一個(gè)細(xì)節(jié),我們編寫的stealCookie是存在SQL注射漏洞的,嘿嘿)。
接著我們進(jìn)行查詢數(shù)據(jù),然后使用mysql_fetch_array()函數(shù)將查詢結(jié)果轉(zhuǎn)換成數(shù)組,然后輸出就行了:
我們?cè)L問來看下效果:
接著,我們來說構(gòu)造Exploit來盜取Cookie。首先,我們先來專門寫個(gè)測(cè)試Demo,就叫demo.php,代碼如下:
我們用Firefox來測(cè)試,如下
接著,我們得寫成script標(biāo)簽的src屬性加載一個(gè)js,然后實(shí)現(xiàn)讀取cookie和location,然后發(fā)給stealCookie,嘿嘿(當(dāng)然,現(xiàn)實(shí)生活中還有一道墻,同源策略,阿西吧,這里使用反射型XSS演示,完全是因?yàn)楹醚菔拘∥靼桑?/p>
然后,由于我們要測(cè)試盜取Cookie,那沒有Cookie怎么行,所以修改demo.php代碼為:
我們?cè)赬SS目錄下在建一個(gè)app.js,代碼的話,如下:
我們?cè)L問如下URL:”http://localhost/xss/demo.php?xss=%3Cscript%20src=%22app.js%22%3E%3C/script%3E“:
可以看到,只是加載了一張圖片,但是,我們回?cái)?shù)據(jù)庫一看:
可以看到,我們成功的盜取了用戶的Cookie。好了,這篇paper就到這里了,希望大家繼續(xù)支持深入學(xué)習(xí)Web安全系列文章!
本文轉(zhuǎn)自:i春秋社區(qū)
本文地址:http://bbs.ichunqiu.com/thread-10648-1-1.html?from=jbzj
相關(guān)文章
局域網(wǎng)共享安全方式之用局域網(wǎng)文件共享系統(tǒng)實(shí)現(xiàn)共享文件夾安全設(shè)置
現(xiàn)在很多單位都有文件服務(wù)器,經(jīng)常會(huì)共享文件讓局域網(wǎng)用戶訪問。那么,如何才能保護(hù)局域網(wǎng)內(nèi)共享文件夾的安全性呢?下面通過本文給大家分享局域網(wǎng)共享安全方式之用局域網(wǎng)文2017-05-11- 這篇文章主要介紹了IIS的FastCGI漏洞處理方法,需要的朋友可以參考下2017-04-30
IIS PHP fastcgi模式 pathinfo取值錯(cuò)誤任意代碼執(zhí)行漏洞修復(fù)方法
這篇文章主要介紹了PHP fastcgi模式 pathinfo取值錯(cuò)誤任意代碼執(zhí)行漏洞,需要的朋友可以參考下2017-04-30- IIS短文件名泄露漏洞,IIS上實(shí)現(xiàn)上存在文件枚舉漏洞,攻擊者可利用此漏洞枚舉獲取服務(wù)器根目錄中的文件,這里為大家分享一下安裝方法,需要的朋友可以參考下2017-04-23
用mcafee麥咖啡設(shè)置服務(wù)器基本用戶安全(防止新建用戶與修改密碼)
這篇文章主要介紹了用麥咖啡設(shè)置服務(wù)器基本用戶安全(防止新建用戶與修改密碼),需要的朋友可以參考下2017-02-26- 這篇文章主要介紹了防范黑客入侵,關(guān)閉端口封鎖大門 黑客無法入侵的相關(guān)資料,需要的朋友可以參考下2016-10-31
現(xiàn)代網(wǎng)絡(luò)性能監(jiān)控工具應(yīng)具備何種技能?網(wǎng)絡(luò)與應(yīng)用程序監(jiān)控
大家都知道現(xiàn)在市場(chǎng)上的網(wǎng)絡(luò)性能監(jiān)控工具大有所在,這為現(xiàn)在的IT行業(yè)的人員提供了很多便利,幫助IT管理團(tuán)隊(duì)監(jiān)控網(wǎng)絡(luò)性能,并且?guī)椭鶬T管理人員確定系統(tǒng)性能的瓶頸所在,進(jìn)而2016-10-19- 雖然現(xiàn)在網(wǎng)絡(luò)很發(fā)達(dá),但對(duì)我們普通人而言,也就是10多年的上網(wǎng)歷史,好多人還沒意識(shí)到信息安全的重要性。那么如何保證自己的上網(wǎng)安全?下面小編為大家分享10條防范自救,一2016-10-12
- 這篇文章主要介紹了遠(yuǎn)離病毒 八項(xiàng)基本原則的相關(guān)資料,需要的朋友可以參考下2016-10-08
- 這篇文章主要介紹了Linux 防范病毒的方法的相關(guān)資料,需要的朋友可以參考下2016-10-08