Web Hacking 101 中文版 十、跨站腳本攻擊(二)

4. 雅虎郵件存儲(chǔ)型 XSS

難度:低

URL:Yahoo Mail

報(bào)告鏈接:https://klikki.fi/adv/yahoo.html

報(bào)告日期:2015.12.26

獎(jiǎng)金:$10000

描述:

雅虎郵件編輯器允許人們將圖片通過(guò) HTML IMG 標(biāo)簽嵌入到郵件中。這個(gè)漏洞在 HTML IMG 標(biāo)簽格式錯(cuò)誤或者無(wú)效時(shí)出現(xiàn)纫溃。

多數(shù) HTML 標(biāo)簽接受屬性宽菜,它是有關(guān) HTML 標(biāo)簽的額外信息盼理。例如,IMG 標(biāo)簽接受src屬性智亮,指向要渲染的圖像的地址忆某。此外一些屬性是布爾屬性,意思是如果他們存在阔蛉,他們?cè)?HTML 表現(xiàn)為真值弃舒,而當(dāng)他們被忽略時(shí),他們表現(xiàn)為假值。

對(duì)于這個(gè)漏洞聋呢,Jouko Pynnonen 發(fā)現(xiàn)苗踪,如果它將布爾屬性添加到 HTML 標(biāo)簽中,并帶有一個(gè)值削锰,雅虎郵件就會(huì)移除該值但保留等號(hào)通铲。這里是來(lái)自Klikki.fi的一個(gè)例子:

<INPUT TYPE="checkbox" CHECKED="hello" NAME="check box">

這里,輸入標(biāo)簽可能包含checked屬性器贩,表示復(fù)選框是否渲染為選中颅夺。根據(jù)上面描述的歇息,這會(huì)變成:

<INPUT TYPE="checkbox" CHECKED= NAME="check box">

要注意 HTML 從擁有checked值變成了沒(méi)有值但是仍然包含等號(hào)蛹稍。

這看起來(lái)是無(wú)害的吧黄,但是根據(jù) HTML 規(guī)范,瀏覽器將這個(gè)CHECKED看做擁有值NAME=”check唆姐,并且該input標(biāo)簽有用第三個(gè)屬性box拗慨,它沒(méi)有值。這是對(duì)于沒(méi)有引號(hào)的屬性值厦酬,因?yàn)?HTML 允許零個(gè)或多個(gè)空格字符在等號(hào)周?chē)?/p>

為了利用它胆描,Jouko 提交了下面的 IMG 標(biāo)簽:

<img ismap='xxx' itemtype='yyy style=width:100%;height:100%;position:fixed;left:0px;top:0px; onmouseover=alert(/XSS/)//'>

雅虎郵件會(huì)把它變成:

<img ismap=itemtype=yyy style=width:100%;height:100%;position:fixed;left:0px;top:0px; onmouseover=alert(/XSS/)//>

因此,瀏覽器會(huì)渲染 IMG 標(biāo)簽仗阅,它占據(jù)整個(gè)瀏覽器的窗口昌讲,當(dāng)鼠標(biāo)移到圖片上的時(shí)候,會(huì)執(zhí)行 JavaScript减噪。

重要結(jié)論

傳遞格式錯(cuò)誤或損壞的 HTML 是個(gè)不錯(cuò)的方法短绸,來(lái)測(cè)試站點(diǎn)如何解析輸入。作為一個(gè)黑客筹裕,考慮到開(kāi)發(fā)者沒(méi)有考慮的東西十分重要醋闭。例如,使用常規(guī)的圖片標(biāo)簽朝卒,如果你傳遞兩個(gè)src屬性會(huì)怎么樣证逻?它會(huì)如何渲染?

5. Google 圖片搜索

難度:中

URL:images.google.com

報(bào)告鏈接:http://zombiehelp54.blogspot.ca/2015/09/how-i-found-xss-vulnerability-in-google.html

報(bào)告日期:2015.9.12

獎(jiǎng)金:未知

描述:

2015 年 9 月抗斤,Mahmoud Jamal 使用 Google 圖像來(lái)為它的 HackerOne 資料尋找一個(gè)圖片囚企。在瀏覽的時(shí)候,它注意到 Google 圖片的 URL 中有一些有趣的東西瑞眼。

http://www.google.com/imgres?imgurl=https://lh3.googleuser.com/...

注意到實(shí)際的 URL 中存在 imgurl的引用龙宏。在鼠標(biāo)移到縮略圖上的時(shí)候,Mahoumd 注意到了錨標(biāo)簽的href屬性包含了相同的 URL伤疙。因此银酗,它嘗試將參數(shù)改為javascript:alert(1),并且注意到錨標(biāo)簽的href也改為了相同值。

它這個(gè)時(shí)候非常激動(dòng)黍特,點(diǎn)擊了鏈接蛙讥,但是沒(méi)有執(zhí)行 JavaScript,因?yàn)?Google URL 改為了別的東西衅澈。結(jié)果键菱,Google 的代碼在鼠標(biāo)按下時(shí),通過(guò)onmousedown JavaScript 回調(diào)修改了 URL今布。

考慮到這個(gè)经备,Mahmoud 決定使用它的鍵盤(pán),嘗試使用 TAB 鍵在頁(yè)面上切換部默。當(dāng)他來(lái)到View Image按鈕時(shí)侵蒙,觸發(fā)了 JavaScript,產(chǎn)生了 XSS 漏洞傅蹂。這里是圖片:

Google XSS 漏洞

重要結(jié)論

始終留意這種漏洞纷闺。很輕易就能假設(shè),僅僅由于公司太大或者太知名份蝴,任何東西都被找到了犁功。但是,公司始終會(huì)修改代碼婚夫。

此外浸卦,有大量方法來(lái)執(zhí)行 JavaScript,這里在看到 Google 使用onmousedown事件處理器修改值之后案糙,很容易就放棄了限嫌。這意味著任何時(shí)候使用鼠標(biāo)點(diǎn)擊了鏈接,值都會(huì)改變时捌。

6. Google Tagmanager 存儲(chǔ)型 XSS

難度:中

URL:tagmanager.google.com

報(bào)告鏈接:https://blog.it-securityguard.com/bugbounty-the-5000-google-xss

報(bào)告日期:2014.10.31

獎(jiǎng)金:$5000

描述:

2014 年 10 月怒医,Patrik Fehrehbach 在 Google 上發(fā)現(xiàn)了存儲(chǔ)型 XSS 漏洞。這個(gè)報(bào)告的有趣部分是奢讨,他如何設(shè)法繞過(guò) Google 獲取載荷稚叹。

Google Tagmanager 是一個(gè) SEO 工具,使?fàn)I銷(xiāo)人員添加和更新站點(diǎn)標(biāo)簽變得容易 -- 包含轉(zhuǎn)化追蹤拿诸、站點(diǎn)分析入录、重營(yíng)銷(xiāo)、以及更多佳镜。為此,它擁有大量的表單凡桥,便于用戶(hù)交互蟀伸。所以,Patrik 以嘗試將 XSS 載荷輸入到表單字段中開(kāi)始,類(lèi)似于#>imgsrc=/ onerror=alert(3)>啊掏。如果接受了蠢络,這就會(huì)閉合現(xiàn)有的 HTML >,之后嘗試加載不存在的圖片迟蜜,這會(huì)執(zhí)行onerror JavaScript刹孔,alert(3)

但是娜睛,這沒(méi)有效果髓霞。Google 合理處理了輸入。Patrik 注意到了一個(gè)替代方案 -- Google 提供了上傳帶有多個(gè)標(biāo)簽的 JSON 文件的功能畦戒。所以方库,它下載了樣例并上傳:

"data": { 
    "name": "#"><img src=/ onerror=alert(3)>", 
    "type": "AUTO_EVENT_VAR", 
    "autoEventVarMacro": { 
        "varType": "HISTORY_NEW_URL_FRAGMENT" 
    } 
}

這里,你會(huì)注意到障斋,標(biāo)簽的名稱(chēng)就是他的 XSS 載荷纵潦。結(jié)果,Google 沒(méi)有處理來(lái)自上傳文件的輸入垃环,并執(zhí)行了載荷邀层。

重要結(jié)論

這里有兩個(gè)有趣的事情。首先Patrik 發(fā)現(xiàn)了替代方案來(lái)提供輸入 -- 要留意這個(gè)東西遂庄,并測(cè)試目標(biāo)提供的所有方法來(lái)輸入數(shù)據(jù)寥院。其次,Google 處理了輸入涧团,但是在渲染時(shí)沒(méi)有轉(zhuǎn)義只磷。假設(shè)它轉(zhuǎn)義了 Patrik 的輸入,載荷就不會(huì)生效泌绣,因?yàn)?HTML 會(huì)被轉(zhuǎn)換成無(wú)害的字符钮追。

總結(jié)

XSS 漏洞對(duì)站點(diǎn)開(kāi)發(fā)者展現(xiàn)了真實(shí)的風(fēng)險(xiǎn),并且仍然在站點(diǎn)上流行阿迈,通常顯而易見(jiàn)元媚。通常簡(jiǎn)單提交 JavaScript alert方法的調(diào)用,alert('test')苗沧,你可以檢查輸入字段是否存在漏洞刊棕。此外,你可以將它與 HTML 注入組合待逞,并提交 ASCII 編碼的字符來(lái)觀(guān)察文本是否被渲染和解釋甥角。

在搜索 XSS 漏洞時(shí),這里是要記住的一些事情:

  1. 測(cè)試任何東西

    無(wú)論你在瀏覽什么站點(diǎn)以及什么時(shí)候?yàn)g覽识樱,總是要保持挖掘嗤无!不要覺(jué)得站點(diǎn)太大或者太復(fù)雜震束,而沒(méi)有漏洞。機(jī)會(huì)正在注視著你并請(qǐng)求你的測(cè)試当犯,就像wholesale.shopify.com那樣垢村。Google Tagmanager 存儲(chǔ)型 XSS 漏洞就是尋找替代方案來(lái)向站點(diǎn)添加標(biāo)簽的結(jié)果。

  2. 漏洞可能存在于任何表單值

    例如嚎卫,Shopify 的禮品卡站點(diǎn)上的漏洞嘉栓,通過(guò)利用和上傳文件相關(guān)的名稱(chēng)字段來(lái)時(shí)間,并不是實(shí)際的文件字段本身拓诸。

  3. 總是在測(cè)試時(shí)使用 HTML 代理

    當(dāng)你嘗試提交來(lái)自網(wǎng)站自身的惡意值時(shí)侵佃,當(dāng)站點(diǎn)的 JavaScript 檢查出你的非法值時(shí),你可能會(huì)碰到假陽(yáng)性恰响。不要浪費(fèi)你的時(shí)間趣钱。通過(guò)瀏覽器提供合法值,之后使用你的代理修改這些值來(lái)執(zhí)行 JavaScript 并且提交胚宦。

    譯者注:對(duì)于所有前端(包括移動(dòng)和桌面)滲透首有,都應(yīng)該這樣。就算不存在 XSS枢劝,也有可能挖到繞過(guò)和越權(quán)漏洞井联。

  4. XSS 漏洞發(fā)生在渲染的時(shí)候

    由于 XSS 在瀏覽器渲染文本時(shí)發(fā)生,要確保復(fù)查了站點(diǎn)的所有地方您旁,其中使用了你的輸入值烙常。逆天家的 JavaScript 可能不會(huì)立即渲染,但是會(huì)出現(xiàn)在后續(xù)的頁(yè)面中鹤盒。這非常麻煩蚕脏,但是你要留意站點(diǎn)何時(shí)過(guò)濾輸入,以及轉(zhuǎn)義輸出侦锯。如果是前者驼鞭,尋找辦法來(lái)繞過(guò)輸入過(guò)濾器,因?yàn)殚_(kāi)發(fā)者可能會(huì)犯懶尺碰,并且不會(huì)轉(zhuǎn)義渲染的輸入挣棕。

  5. 測(cè)試非預(yù)期的值

    不要總是提供預(yù)期類(lèi)型的值。當(dāng) HTML 雅虎郵件的漏洞被發(fā)現(xiàn)時(shí)亲桥,提供了非預(yù)期的 HTML IMG 屬性洛心。要跳出思維定式,思考開(kāi)發(fā)者要尋找什么题篷,并且之后嘗試提供一些不匹配這些預(yù)期的東西词身。這包含尋找新的方式來(lái)執(zhí)行潛在的 JavaScript,例如繞過(guò) Google 圖片的onmousemove事件番枚。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末偿枕,一起剝皮案震驚了整個(gè)濱河市璧瞬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渐夸,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渔欢,死亡現(xiàn)場(chǎng)離奇詭異墓塌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)奥额,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)苫幢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人垫挨,你說(shuō)我怎么就攤上這事韩肝。” “怎么了九榔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵哀峻,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我哲泊,道長(zhǎng)剩蟀,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任切威,我火速辦了婚禮育特,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘先朦。我一直安慰自己缰冤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布喳魏。 她就那樣靜靜地躺著棉浸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪截酷。 梳的紋絲不亂的頭發(fā)上涮拗,一...
    開(kāi)封第一講書(shū)人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音迂苛,去河邊找鬼三热。 笑死,一個(gè)胖子當(dāng)著我的面吹牛三幻,可吹牛的內(nèi)容都是我干的就漾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼念搬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抑堡!你這毒婦竟也來(lái)了摆出?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤首妖,失蹤者是張志新(化名)和其女友劉穎偎漫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體有缆,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡象踊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棚壁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杯矩。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖袖外,靈堂內(nèi)的尸體忽然破棺而出史隆,到底是詐尸還是另有隱情,我是刑警寧澤曼验,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布泌射,位于F島的核電站,受9級(jí)特大地震影響蚣驼,放射性物質(zhì)發(fā)生泄漏魄幕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一颖杏、第九天 我趴在偏房一處隱蔽的房頂上張望纯陨。 院中可真熱鬧,春花似錦留储、人聲如沸翼抠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)阴颖。三九已至,卻和暖如春丐膝,著一層夾襖步出監(jiān)牢的瞬間量愧,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工帅矗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留偎肃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓浑此,卻偏偏與公主長(zhǎng)得像累颂,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

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

  • 十、跨站腳本攻擊 作者:Peter Yaworski 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 描述 跨站...
    布客飛龍閱讀 532評(píng)論 0 7
  • HTML注入 HTML 注入向站點(diǎn)和開(kāi)發(fā)者展示了漏洞朱监,因?yàn)樗梢杂糜谡`導(dǎo)用戶(hù)岸啡,并且欺騙它們來(lái)提交一些敏感信息,或者...
    Cherishao閱讀 975評(píng)論 0 5
  • 跨站腳本(XSS)是web應(yīng)用中的一種典型的計(jì)算機(jī)安全漏洞赫编。XSS允許攻擊者可以在其他用戶(hù)瀏覽的web頁(yè)面中注入客...
    留七七閱讀 7,952評(píng)論 1 26
  • 1凰狞、漏洞概述 XSS 是指攻擊者在網(wǎng)頁(yè)中嵌入客戶(hù)端腳本,通常是 JavaScript 編寫(xiě)的惡意代碼,當(dāng)用戶(hù)使 用...
    linkally閱讀 1,696評(píng)論 2 10
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理沛慢,服務(wù)發(fā)現(xiàn),斷路器达布,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139