一個(gè)xss payload編碼

原始paylaod

javascript:alert(15)

unicode編碼函數(shù)名alert

javascript:\u0061\u006c\u0065\u0072\u0074(15)

url編碼unicode編碼部分

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(15)

最后在html編碼全部

<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>

回顧編碼過(guò)程

payload->unicode編碼處理->url編碼處理->html編碼處理

payload的效果

隨便個(gè)html文檔

<html>

<head>
    <title>
        測(cè)試用
    </title>

</head>

<body>
    <h1>what a fuck shit!</h1>
    <hr>
    <a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>
    <br/>

</body>

</html>

點(diǎn)我后的效果

圖片

分析下瀏覽器解碼過(guò)程

<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>

解碼過(guò)程

  1. 首先HTML解析器來(lái)對(duì)這段html文檔進(jìn)行詞法解析懂傀。字符引用(&#x..實(shí)體編號(hào))被解碼伸辟。
    解碼后:

    <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(15)">點(diǎn)我</a>
    
  2. 在html詞法解析完成后,然后URL解析器開(kāi)始對(duì)href值進(jìn)行URL解碼
    解碼后:

    <a href="javascript:\u0061\u006c\u0065\u0072\u0074(15)">點(diǎn)我</a>
    
  3. 由于是javascript協(xié)議資源仰迁,javascript引擎對(duì)unicode編碼的字符串進(jìn)行解碼览效,最終變成原始payload形式沥潭,js語(yǔ)句執(zhí)行
    解碼后:

    <a href="javascript:alert(15)">點(diǎn)我</a>
    

知識(shí)來(lái)源

http://bobao.#/learning/detail/292.html

html解析的幾個(gè)點(diǎn):

  • 解析器在解析字符引用(實(shí)體名稱(chēng)慎式、實(shí)體編號(hào):“&開(kāi)頭的編碼”)后不會(huì)轉(zhuǎn)換到“標(biāo)簽開(kāi)始狀態(tài)”终佛。正因?yàn)槿绱耍筒粫?huì)建立新標(biāo)簽翔忽。因此,xss能夠利用字符實(shí)體編碼來(lái)轉(zhuǎn)義用戶輸入的數(shù)據(jù)盏檐,從而確保用戶輸入的數(shù)據(jù)只能被解析成“數(shù)據(jù)”歇式,而不轉(zhuǎn)成html標(biāo)簽。

URL解析的幾個(gè)點(diǎn):

  • URL資源類(lèi)型必須是ASCII字母(U+0041-U+005A || U+0061-U+007A)胡野,不然就會(huì)進(jìn)入“無(wú)類(lèi)型”狀態(tài)材失。例如,不能對(duì)協(xié)議類(lèi)型進(jìn)行任何的編碼操作硫豆,不然URL解析器會(huì)認(rèn)為它無(wú)類(lèi)型龙巨。該原則對(duì)協(xié)議后面的“:”(冒號(hào))同樣適用。(不能對(duì)“javascript:”進(jìn)行編碼)
  • URL編碼過(guò)程使用UTF-8編碼類(lèi)型來(lái)編碼每一個(gè)字符熊响。

JS解析的幾個(gè)點(diǎn)可以記下:

  • JavaScript解析器會(huì)對(duì)Unicode轉(zhuǎn)義序列和Hex轉(zhuǎn)義序列的解碼
  • 轉(zhuǎn)義序列放在JS的3個(gè)部分:字符串中旨别,標(biāo)識(shí)符名稱(chēng)中和控制字符中
  • Unicode轉(zhuǎn)義序列出現(xiàn)在JS字符串中:當(dāng)Unicode轉(zhuǎn)義序列存在于字符串中時(shí),它只會(huì)被解釋為正規(guī)字符汗茄,而不是單引號(hào)秸弛,雙引號(hào)或者換行符這些能夠打破字符串上下文的字符。因此洪碳,Unicode轉(zhuǎn)義序列將永遠(yuǎn)不會(huì)破環(huán)字符串上下文递览,因?yàn)樗鼈冎荒鼙唤忉尦勺址A俊M沓霈F(xiàn)在控制字符中
  • Unicode轉(zhuǎn)義序列出現(xiàn)在JS標(biāo)識(shí)符名稱(chēng)中(函數(shù)名瞳腌,屬性名)時(shí)绞铃,它會(huì)被解碼并解釋為標(biāo)識(shí)符名稱(chēng)的一部分。
  • Unicode轉(zhuǎn)義序列只有在JS標(biāo)識(shí)符名稱(chēng)里不被當(dāng)作字符串嫂侍,也只有在標(biāo)識(shí)符名稱(chēng)里的編碼字符能夠被正常的解析儿捧。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荚坞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纯命,更是在濱河造成了極大的恐慌西剥,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿汞,死亡現(xiàn)場(chǎng)離奇詭異瞭空,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)疗我,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)咆畏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人吴裤,你說(shuō)我怎么就攤上這事旧找。” “怎么了麦牺?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵钮蛛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我剖膳,道長(zhǎng)魏颓,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任吱晒,我火速辦了婚禮甸饱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仑濒。我一直安慰自己叹话,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布墩瞳。 她就那樣靜靜地躺著驼壶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪矗烛。 梳的紋絲不亂的頭發(fā)上辅柴,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音瞭吃,去河邊找鬼碌嘀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛歪架,可吹牛的內(nèi)容都是我干的股冗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼和蚪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼止状!你這毒婦竟也來(lái)了烹棉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤怯疤,失蹤者是張志新(化名)和其女友劉穎浆洗,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體集峦,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伏社,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了塔淤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摘昌。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖高蜂,靈堂內(nèi)的尸體忽然破棺而出聪黎,到底是詐尸還是另有隱情,我是刑警寧澤备恤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布稿饰,位于F島的核電站,受9級(jí)特大地震影響露泊,放射性物質(zhì)發(fā)生泄漏湘纵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一滤淳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砌左,春花似錦脖咐、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至产弹,卻和暖如春派歌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背痰哨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工胶果, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人斤斧。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓早抠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親撬讽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蕊连,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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

  • 編碼問(wèn)題一直困擾著開(kāi)發(fā)人員悬垃,尤其在 Java 中更加明顯,因?yàn)?Java 是跨平臺(tái)語(yǔ)言甘苍,不同平臺(tái)之間編碼之間的切換...
    x360閱讀 2,482評(píng)論 1 20
  • 第5章 引用類(lèi)型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類(lèi)型 使用基本類(lèi)型...
    大學(xué)一百閱讀 3,238評(píng)論 0 4
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理尝蠕,服務(wù)發(fā)現(xiàn),斷路器载庭,智...
    卡卡羅2017閱讀 134,697評(píng)論 18 139
  • 阿里云上的域名總是讓我備案看彼,實(shí)在是懶得備。還是用github上的博客吧昧捷,刀背藏身 無(wú)論是作為開(kāi)發(fā)闲昭,還是作為黑客,企...
    刀背藏身閱讀 5,763評(píng)論 2 13
  • 新建gem包 Gemfile 描述dependency Rakefile發(fā)布和打包的rake tasks my_p...
    yaya_pangdun閱讀 1,085評(píng)論 0 2