欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

  發(fā)布時間:2016-09-12 11:25:14   作者:佚名   我要評論
從這節(jié)課開始,小宅再次更改排版,希望能給大家更好的閱讀體驗。我們上節(jié)課就講了XSS的基本原理其實就是HTML代碼注入。這節(jié)課,我們將深入一點,學(xué)習(xí)一下How To Exploit XSS

前言

從這節(jié)課開始,小宅再次更改排版,希望能給大家更好的閱讀體驗。我們上節(jié)課就講了XSS的基本原理其實就是HTML代碼注入。這節(jié)課,我們將深入一點,學(xué)習(xí)一下How To Exploit XSS。

淺析XSS利用技術(shù)

XSS能干什么?

在我們學(xué)習(xí)XSS的利用技術(shù)之前,我們很有必要先知道XSS可以干什么?或者說有什么樣的危害:

· 篡改頁面,修改頁面內(nèi)容

· 網(wǎng)絡(luò)釣魚

· 盜取用戶Cookie

· 劫持用戶(瀏覽器)會話

· 掛廣告,刷流量

· DDoS

· 網(wǎng)頁掛馬

· 獲取客戶端信息(例如UA,IP,開放端口)

· 傳播XSS Worm

   ……

這些都是XSS能夠做到的(當(dāng)然,有些也受制與XSS存在的環(huán)境)。

Cookie是什么?

我們在進(jìn)一步學(xué)習(xí)XSS之前,我們先來了解下瀏覽器Cookie是什么。我們要說Cookie就得先談到HTTP協(xié)議,我們先來想想C/S架構(gòu)的程序,通常都是Client端鏈接Server端,通訊完成后就斷開連接。

但是HTTP協(xié)議不同,他的客戶端是瀏覽器,每次發(fā)送HTTP請求和接收HTTP響應(yīng)就是一次通訊,每次都是一個請求和一個響應(yīng),也就是發(fā)送請求到結(jié)束請求就是通訊過程,完了就斷開了。

那么,我們知道,有很多Web程序都是有登錄功能的,也就是有用戶身份識別功能。但是,每次一請求一響應(yīng),就結(jié)束了,網(wǎng)站怎么管理用戶會話呢?網(wǎng)站如何認(rèn)證用戶呢?

正是利用這個Cookie來驗證的,每次瀏覽器發(fā)起HTTP請求就會帶上Cookie頭,而Cookie則是有每次響應(yīng)的set-cookie來設(shè)置的。

我們總結(jié)一下上面講的,簡練的說就是:HTTP連接是無狀態(tài)連接,所以得使用Cookie來驗證用戶身份。

我們在Chrome瀏覽器上可以使用如下方法查看我們在網(wǎng)站上的Cookie:

1.訪問“chrome://settings/”:

2.最底下有個"顯示高級設(shè)置...",點一下:

 3.有個“隱私設(shè)置”:

4.標(biāo)題下面有個“內(nèi)容設(shè)置”按鈕,我們點一下:

 

5.我們點擊“所有Cookie和網(wǎng)站數(shù)據(jù)...”按鈕,我們就能看到,我們在所有網(wǎng)站上的Cookie了:

 

Cookie呢,是以Key=Value的形式存在的,就和下圖一樣:

 

我們每次訪問某個域的時候,瀏覽器就會吧我們在這個域的Cookie寫在訪問這個域的HTTP請求的Cookie頭里。而某個域想要給我們設(shè)置Cookie的時候就需要在HTTP響應(yīng)里的set-cookie頭里寫。

PHP如何設(shè)置Cookie

我們先啟動apache2服務(wù),然后到Web根目錄,創(chuàng)建一個cookietest.php文件,代碼如下:

 

然后用瀏覽器訪問這個頁面:

 

然后在頁面中右鍵-審查元素:

 

在橫欄上找到Network,然后刷新頁面,發(fā)現(xiàn)Network下面出現(xiàn)了一個HTTP請求:

 

點擊一下那個請求:

 

可以看到橫欄里有個Cookies,點一下:

 

我們就能看到HTTP請求時帶的Cookie和HTTP響應(yīng)了設(shè)置的Cookie了。

JS操作Cookie

接下來,我們還得學(xué)習(xí)一個小知識,用JS操作Cookie,嘿嘿。首先,我們得知道一個document的屬性cookie,我們先創(chuàng)建一個HTML文件,寫入如下代碼:

 

然后用瀏覽器打開這個頁面:

 

可以看到,當(dāng)前Cookie為空,我們修改剛才的代碼如下:

 

我們再來訪問頁面:

 

可以看到設(shè)置成功了,但是這樣的Cookie并不標(biāo)準(zhǔn),后端也不能直接操作,還得專門編寫處理這種特殊“Cookie”的函數(shù),所以,我們來看一個JS設(shè)置Cookie的函數(shù):

 

我們可以看到,這個setCookie()函數(shù)并不復(fù)雜,首先傳入一個c_name,其實就是CookieName,和對應(yīng)值,最后是過期天數(shù)(每個Cookie都是存在生命周期的,在生命周期之內(nèi)的Cookie才可用)。

利用HTML代碼發(fā)起HTTP請求(重點)

接下來,我們就要來說這篇paper的重點部分了,如何利用HTML代碼來發(fā)起HTTP請求,請大家準(zhǔn)備好,我們即刻開始,首先我們創(chuàng)建一個HTML文件,就叫“htmlRequest.html”吧,代碼如下:

 

我們訪問該頁面,并且打卡審查元素的Network,然后刷新,如下圖:

 

我們可以看到,我們利用src屬性發(fā)起了兩個GET請求,分別是www.xxx.com和[url=www.yyy.com]www.yyy.com[/url]。那么POST請求呢?(這個可能XSS用不到,但是CSRF一定會用到,而且是CSRF的重點),我們修改HTML代碼為:

 

我們還是一樣的,訪問頁面,Network,刷新頁面,如下:

 

我們可以看到,是成功的提交了test-1&test=2到www.xxx.com/test的,這個POST請求也是成功的。

盜取Cookie的XSS-ShellCode的編寫與利用

我們,接著來學(xué)習(xí)XSS-ShellCode的編寫與利用,首先,例如我們有一個VPS,在Web跟目錄創(chuàng)建一個stealCookie.php和一個showData.php,我們來構(gòu)思一下,首先,我們對這兩個程序做一下需求分析:

stealCookie.php:我們的目的是程序可以接收GET參數(shù)location和cookie,并將其保存到數(shù)據(jù)庫中。showData.php:我們的目的是輸出數(shù)據(jù)庫中存儲的location和cookie。

所以,我們寫這個程序之前最重要的就是先把存儲數(shù)據(jù)的表搞好,于是我在mysql里創(chuàng)建了一個xss數(shù)據(jù)庫,在該庫中創(chuàng)建了一個data表,data表里有l(wèi)ocation和cookie列。

接著,我們來編寫stealCookie程序,首先,要獲取GET參數(shù),我們就得使用超全數(shù)組GET[參數(shù)名],如下:

 

然后,我們鏈接數(shù)據(jù)庫,并存儲數(shù)據(jù):

 

我們來測試一下,傳入location=ichunqiu.com&cookie=abcdefg,嘗試如下:

 

我們到數(shù)據(jù)庫去查看,如下:

 

可以看到,已經(jīng)成功的插入了,接著就是編寫showData程序了,首先呢,肯定要鏈接數(shù)據(jù)庫,選擇xss庫(對了大家有沒注意到一個細(xì)節(jié),我們編寫的stealCookie是存在SQL注射漏洞的,嘿嘿)。

 

接著我們進(jìn)行查詢數(shù)據(jù),然后使用mysql_fetch_array()函數(shù)將查詢結(jié)果轉(zhuǎn)換成數(shù)組,然后輸出就行了:

 

我們訪問來看下效果:

 

接著,我們來說構(gòu)造Exploit來盜取Cookie。首先,我們先來專門寫個測試Demo,就叫demo.php,代碼如下:

 

我們用Firefox來測試,如下

 

接著,我們得寫成script標(biāo)簽的src屬性加載一個js,然后實現(xiàn)讀取cookie和location,然后發(fā)給stealCookie,嘿嘿(當(dāng)然,現(xiàn)實生活中還有一道墻,同源策略,阿西吧,這里使用反射型XSS演示,完全是因為好演示些,啊西吧)

然后,由于我們要測試盜取Cookie,那沒有Cookie怎么行,所以修改demo.php代碼為:

 

我們在XSS目錄下在建一個app.js,代碼的話,如下:

我們訪問如下URL:”http://localhost/xss/demo.php?xss=%3Cscript%20src=%22app.js%22%3E%3C/script%3E“:

 

可以看到,只是加載了一張圖片,但是,我們回數(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)文章

最新評論