摘要:持久型相當(dāng)于存儲型跨站腳本。這玩意兒涉及到一點和瀏覽器引擎解析的問題。說正事,是支持碼形式的。的調(diào)用有幾個概念我們先來了解一下。本來說的只用天完成的,沒想到各種事兒拖了兩天,。
前些時間準(zhǔn)備面試的時候一直會遇到這個XSS,寥寥幾句話好像很簡單,后來看到同學(xué)的《XSS跨站腳本攻擊剖析與防御》這本書,稍微翻看了一下,其中的學(xué)問還是挺多的。這系列的文章就當(dāng)做讀書筆記吧。
什么是XSS聽過很多道理,當(dāng)然很多人都已經(jīng)知道XSS是個啥,跨站腳本(Cross-Site Scripting),由于它前面有個老大哥CSS擺在那兒,就只能叫XSS了。官方是這么說的"A cross-site scripting vulnerability may be used by attackers to bypass access controls such as the same-origin policy."“一種可能會被攻擊者用來 通過 比如同源策略 來獲取用戶權(quán)限的跨站腳本?!?br>通俗點來說,比如你在瀏覽百度的時候,假設(shè)百度沒做任何安全策略(當(dāng)然這是不可能的),攻擊者對百度的登陸按鈕做了點修改,你登陸的時候,它把你登陸的信息都發(fā)送到攻擊者那兒去了,GG,2個T的學(xué)習(xí)資料沒了。這還算好的,給你的花旗銀行網(wǎng)站來個這玩意,2個億沒了。
XSS的分類 反射型XSS也叫做非持久性、參數(shù)性跨站腳本,顧名思義,攻擊者制作了一個含有惡意代碼的url,比如
http://www.test.com/search.ph...=">
(這個算惡意比較小的,要是在里面獲取你的cookie
然后攻擊者給你發(fā)了個鏈接,“大胸妹妹正在直播,邀請您觀看?!?br>
大家可以搭個DVWA自己玩一下嘛,別的漏洞也有,就是別用太高級的瀏覽器,這時候深惡痛絕的IE就該上場了,時候表演真正的技術(shù)了。
“我不服,就這URL我還不一眼就看出來有毛?。俊?br>“http%3A//www.test.com/search.php%3Fkey%3D%22%3Cscript%3Ealert%28%22xss%22%29%3C/script%3E%22,繼續(xù)裝逼?!?/p>
持久型XSS
相當(dāng)于存儲型跨站腳本。
來看看有什么效果(想想還有點小激動呢)
當(dāng)然了這不是你的鍋,但如果這個網(wǎng)站是你搭的,那你等著GG吧。如果這個玩意兒一直沒有被搞掉,而攻擊者給你來了10000個這樣的評論,每一次刷新后都會來10000下,想想會發(fā)生什么吧。
XSS構(gòu)造剖析 繞過XSS-Filter當(dāng)然大部分的程序員兒是不會像我這么挫的,正常情況下基本都會在Web應(yīng)用中設(shè)計一個XSS Filter,一些白名單、黑名單什么的來過濾掉大胸妹。那有沒有能過濾掉所有大胸妹的Filter呢?
我們有很多繞過Filter的方法:
1)利用<>標(biāo)記注射代碼前面我們寫的大胸妹,哦不是,代碼都是這樣的,不多說了。
2)利用HTML標(biāo)簽屬性執(zhí)行XSS這玩意兒呢對我們這些使用Canary、Nighty的人來說是沒有任何威脅的?,當(dāng)然對一些非功能需要還在使用IE6的山頂洞人還是有點威脅的。
3)空格回車Tab加入你在你的黑名單里加了"javascript",然后說這下沒辦法來寫腳本了吧。對不起,沒用。再次GG。這玩意兒涉及到一點js和瀏覽器引擎解析的問題。我們知道
var a = daxiongmei var b = "kan na ge daxiongmei"
這樣雖然沒有分號不像我們這些規(guī)范的程序員的編程習(xí)慣,但它是沒毛病的而且很Geek,那這樣呢?
var a = "kan na ge daxiongmei; alert(a);
也是可以的!因為引擎并不會把換行符看成一個完整語句的終點(上面的可以是因為引擎已經(jīng)意識到一個完整的語句了),它會繼續(xù)處理后面發(fā)現(xiàn)的內(nèi)容,知道一個分號出現(xiàn)或者這個語句變成一個完整的語句。
4)對標(biāo)簽屬性值轉(zhuǎn)碼那我處理輸入的時候.split(" ").join("")行了吧,對不起還是不行。
還記得大寫字母A的ASCII碼是多少嗎,不記得先向你的老師說聲對不起又還給您了。
說正事,HTML是支持ASCII碼形式的。我們把上面的代碼換成這樣。
;
GG
所以最好把這些字符也給過濾了吧。
這個和上面的第二點有點類似,只不過這次把屬性換成事件,像這樣:
onerror換成onclick,onblur什么都是可以的。
6)利用CSS跨站CSS也可以用來跨站,想的起來是什么嗎?方式還挺多的
或者用@important引入,引入文件寫個xss,就是這么簡單。你說我們名字簡寫都一樣的,相煎何太急呢。
利用字符串編碼其實之前我們已經(jīng)幾次提到了用字符串編碼來繞過Filter的方法,由于js支持Unicode、escapes、十六進(jìn)制、八進(jìn)制等編碼,還有很多加密編碼,防止XSS變得很麻煩,心累。
拆分跨站法可能有的同學(xué)要想好事兒了,你每次攻擊我都要寫那么長的代碼,我限制你個字符輸入字?jǐn)?shù)為比如30個不就行了嗎,你寫兩個script標(biāo)簽都要17個字符了。Naive
...
GG
Shellcode的調(diào)用有幾個概念我們先來了解一下。
【Shellcode】
這玩意兒呢一開始是指溢出程序和蠕蟲病毒的核心,其實看單詞就能看出來了,就是一個利用漏洞執(zhí)行時的代碼。在咱么這兒呢,就是指XSS利用代碼。
【Exploit】
翻譯:利用。這玩意我我不知道怎么解釋,“通常表示完整編寫好的漏洞利用工具”,總之記住Exploit往往包含了Shellcode。
payload、shellcode、exp、poc怎么區(qū)別?
【POC】
Proof of Concept,是一段證明漏洞存在的程序代碼片段。
其實這和JSONP有點類似,在url后面跟個script標(biāo)簽,標(biāo)簽里引入遠(yuǎn)程的js文件,這文件不是個好東西,恩差不多就是這樣。
使用window.location.hash知道location.hash獲取什么嗎?比如我們有個url:http://domain/#admin, location.hash獲取的就是"#"后面的東西,這里就是admin。那location.hash怎么用到我們的XSS里面呢?
http://www.bug.com/veiw.php?sort=">#alert("xss")"
應(yīng)該都能看懂我就不多說了啊。
XSS Downloader介紹另外一種存儲和調(diào)用Shellcode的方法,把它存儲到網(wǎng)站的數(shù)據(jù)庫中個,然后再把它下載下來執(zhí)行。簡單說呢,就是我們寫了個XSS的下載器,把這個下載器放在網(wǎng)站的某個頁面,再用Ajax什么的來向這個網(wǎng)站發(fā)送請求,執(zhí)行了返回的數(shù)據(jù),返回的是啥?Shellcode。
備選存儲技術(shù)瀏覽器的存儲技術(shù)有哪些?相信經(jīng)過校招的同學(xué)都應(yīng)該不陌生。Cookie、Flash、UserData、localStorage等。既然這些玩意兒都能存儲數(shù)據(jù),那Shellcode呢,當(dāng)然也可以。
好了第一章就到此結(jié)束了。本來說的只用1天完成的,沒想到各種事兒拖了兩天,enjoy。當(dāng)然肯定大部分都不enjoy的,歡迎提意見。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/80825.html
摘要:網(wǎng)絡(luò)黑白一書所抄襲的文章列表這本書實在是垃圾,一是因為它的互聯(lián)網(wǎng)上的文章拼湊而成的,二是因為拼湊水平太差,連表述都一模一樣,還抄得前言不搭后語,三是因為內(nèi)容全都是大量的科普,不涉及技術(shù)也沒有干貨。 《網(wǎng)絡(luò)黑白》一書所抄襲的文章列表 這本書實在是垃圾,一是因為它的互聯(lián)網(wǎng)上的文章拼湊而成的,二是因為拼湊水平太差,連表述都一模一樣,還抄得前言不搭后語,三是因為內(nèi)容全都是大量的科普,不涉及技術(shù)...
摘要:三輪技術(shù)面上一輪發(fā)揮感覺沒前兩輪發(fā)揮好,所以還是有點不自信的,沒想到第三天后,就來電話了,通知我去阿里園區(qū)面試。 一般阿里社招都是招3-5年的P6+高級工程師,當(dāng)初自己一年經(jīng)驗也沒有想過有這個面試機(jī)會。 雖然沒想著換工作,但是經(jīng)常關(guān)注一些招聘網(wǎng)站的信息,某一天,在某boss上有個人找我,叫我發(fā)一下簡歷,我一看是阿里的某技術(shù)專家,雖然之前也有阿里的在某boss上給我要簡歷,但是我深知自己...
閱讀 1365·2021-11-23 09:51
閱讀 3530·2021-09-06 15:00
閱讀 1049·2021-08-16 10:57
閱讀 1433·2019-08-30 12:46
閱讀 990·2019-08-29 12:22
閱讀 1671·2019-08-29 11:07
閱讀 3204·2019-08-26 11:23
閱讀 3045·2019-08-23 15:14