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