XSS的原理分析與解剖_第1頁
XSS的原理分析與解剖_第2頁
XSS的原理分析與解剖_第3頁
XSS的原理分析與解剖_第4頁
XSS的原理分析與解剖_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、XSS的原理分析與解剖2014-08-13 18:47 Black-Hole FreeBuf 字號(hào):T | Txss是一門又熱門又不太受重視的Web攻擊手法,為什么會(huì)這樣呢,原因有下:耗時(shí)間、有一定幾率不成功、沒有相應(yīng)的軟件來完成自動(dòng)化攻擊、是一種被動(dòng)的攻擊手法等。AD:001 前言:xss攻擊手法一開始在互聯(lián)網(wǎng)上資料并不多(都是現(xiàn)成的代碼,沒有從基礎(chǔ)的開始),直到刺的白帽子講WEB安全和cn4rry的XSS跨站腳本攻擊剖析與防御才開始好轉(zhuǎn)。我這里就不說什么xss的歷史什么東西了,xss是一門又熱門又不太受重視的Web攻擊手法,為什么會(huì)這樣呢,原因有下:1、耗時(shí)間2、有一定幾率不成功3、沒有相

2、應(yīng)的軟件來完成自動(dòng)化攻擊4、前期需要基本的html、js功底,后期需要扎實(shí)的html、js、actionscript2/3.0等語言的功底5、是一種被動(dòng)的攻擊手法6、對(duì)website有http-only、crossdomian.xml沒有用但是這些并沒有影響黑客對(duì)此漏洞的偏愛,原因不需要多,只需要一個(gè)。Xss幾乎每個(gè)網(wǎng)站都存在,google、baidu、360等都存在。002 原理:首先我們現(xiàn)在本地搭建個(gè)PHP環(huán)境(可以使用phpstudy安裝包安裝),然后在index.php文件里寫入如下代碼:1. 2. 3. 4. XSS原理重現(xiàn)5. 6. 7. 8. 9. 10. 11. 12. ?ph

3、p13. $xss=$_GETxss_input; 14. echo你輸入的字符為.$xss; 15. ?16. 17. 18. 然后,你會(huì)在頁面看到這樣的頁面我們?cè)囍斎隺bcd123,得到的結(jié)果為我們?cè)诳纯丛创a我們輸入的字符串被原封不動(dòng)的輸出來了,那這里我們提出來一個(gè)假設(shè),假設(shè)我們?cè)谒阉骺蜉斎胂旅娴拇a會(huì)出現(xiàn)什么呢?1. alert(xss)如果按照上面的例子來說,它應(yīng)該存在第12行的br與/boby之間,變成:1. alert(xss)之后,應(yīng)該會(huì)彈出對(duì)話框。既然假設(shè)提出來,那我們來實(shí)現(xiàn)下這個(gè)假設(shè)成不成立吧。我們輸入1. alert(xss)得到的頁面為成功彈窗,這個(gè)時(shí)候基本上就可以確

4、定存在xss漏洞。我們?cè)诳纯丛创a看來,我們的假設(shè)成功了,這節(jié)就說說XSS的原理,下面幾節(jié)說說xss的構(gòu)造和利用。003 xss利用輸出的環(huán)境來構(gòu)造代碼:上節(jié)說了xss的原理,但是我們的輸出點(diǎn)不一在 br 和 /boby 里,可以出現(xiàn)在html標(biāo)簽的屬性里,或者其他標(biāo)簽里面。所以這節(jié)很重要,因?yàn)椴灰欢?當(dāng)你輸入下面代碼就會(huì)出現(xiàn)彈窗。1. alert(xss)先貼出代碼:1. 2. 3. 4. XSS利用輸出的環(huán)境來構(gòu)造代碼5. 6. 7. 8. 把我們輸入的字符串輸出到input里的value屬性里9. 10. 請(qǐng)輸入你想顯現(xiàn)的字符串11. 12. 13. 14. 15. ?php16. $x

5、ss=$_GETxss_input_value; 17. if(isset($xss) 18. echo; 19. else 20. echo; 21. 22. ?23. 24. 25. 下面是代碼的頁面這段代碼的作用是把第一個(gè)輸入框的字符串,輸出到第二個(gè)輸入框,我們輸入1,那么第二個(gè)input里的value值就是1,下面是頁面的截圖和源代碼的截圖(這里我輸入下面的代碼來測(cè)試)1. alert(xss)明顯的可以看到,并沒有彈出對(duì)話框,大家可能會(huì)疑惑為什么沒有彈窗呢,我們來看看源代碼我們看到我們輸入的字符串被輸出到第15行input標(biāo)簽里的value屬性里面,被當(dāng)成value里的值來顯現(xiàn)出來,

6、所以并沒有彈窗,這時(shí)候我們?cè)撛趺崔k呢?聰明的人已經(jīng)發(fā)現(xiàn)了可以在1. alert(xss)前面加個(gè)來閉合input標(biāo)簽。所以應(yīng)該得到的結(jié)果為成功彈窗了,我們?cè)诳纯催@時(shí)的頁面看到后面有第二個(gè)input輸入框后面跟有字符串,為什么會(huì)這樣呢,我們來看看源代碼這時(shí)可以看到我們構(gòu)造的代碼里面有兩個(gè),第一個(gè)是為了閉合input標(biāo)簽,所以第二個(gè)就被拋棄了,因?yàn)閔tml的容 錯(cuò)性高,所以并沒有像php那樣出現(xiàn)錯(cuò)誤,而是直接把多余的字符串來輸出了,有的人是個(gè)完美主義者,不喜歡有多余的字符串被輸出,這時(shí)該怎么辦呢?這里我問大家一個(gè)問題,我之前說的xss代碼里,為什么全是帶有標(biāo)簽的。難道就不能不帶標(biāo)簽么?!答:當(dāng)然可

7、以。既然可以不用標(biāo)簽,那我們就用標(biāo)簽里的屬性來構(gòu)造XSS,這樣的話,xss代碼又少,又不會(huì)有多余的字符串被輸出來。還是這個(gè)環(huán)境,但是不能使用標(biāo)簽,你應(yīng)該怎么做。想想input里有什么屬性可以調(diào)用js,html學(xué)的好的人,應(yīng)該知道了,on事件,對(duì)的。我們可以用on事件來進(jìn)行彈窗,比如這個(gè)xss代碼 我們可以寫成1. onclick=alert(xss) 這時(shí),我們?cè)趤碓囋嚕撁鏁?huì)發(fā)生什么樣的變化吧。沒有看到彈窗啊,失敗了么?答案當(dāng)然是錯(cuò)誤的,因?yàn)閛nclick是鼠標(biāo)點(diǎn)擊事件,也就是說當(dāng)你的鼠標(biāo)點(diǎn)擊第二個(gè)input輸入框的時(shí)候,就會(huì)觸發(fā)onclick事件,然后執(zhí)行alert(xss)代碼。我們來試

8、試看當(dāng)我點(diǎn)擊后,就出現(xiàn)了彈窗,這時(shí)我們來看看源代碼吧第15行,value值為空,當(dāng)鼠標(biāo)點(diǎn)擊時(shí),就會(huì)彈出對(duì)話框。這里可能就會(huì)有人問了,如果要點(diǎn)擊才會(huì)觸發(fā),那不是很麻煩么,成功率不就又下降了么。 我來幫你解答這個(gè)問題,on事件不止onclick這一個(gè),還有很多,如果你想不需要用戶完成什么動(dòng)作就可以觸發(fā)的話,i可以把onclick改成Onmousemove 當(dāng)鼠標(biāo)移動(dòng)就觸發(fā)Onload 當(dāng)頁面加載完成后觸發(fā)還有很多,我這里就不一一說明了,有興趣的朋友可以自行查詢下。別以為就這樣結(jié)束了,還有一類環(huán)境不能用上述的方法,那就是如果在 textarea 標(biāo)簽里呢?!或者其他優(yōu)先級(jí)比script高的呢?就下面

9、這樣這時(shí)我們?cè)撛趺崔k呢?既然前面都說了閉合屬性和閉合標(biāo)簽了,那能不能閉合完整的標(biāo)簽?zāi)兀鸢甘强隙ǖ?。我們可以輸入下面的代碼就可以實(shí)現(xiàn)彈窗了。1. alert(xss)004 過濾的解決辦法假如說網(wǎng)站禁止過濾了script 這時(shí)該怎么辦呢,記住一句話,這是我總結(jié)出來的“xss就是在頁面執(zhí)行你想要的js”不用管那么多,只要能運(yùn)行我們的js就OK,比如用img標(biāo)簽或者a標(biāo)簽。我們可以這樣寫1. 當(dāng)找不到圖片名為1的文件時(shí),執(zhí)行alert(xss) 2. s點(diǎn)擊s時(shí)運(yùn)行alert(xss) 3. 利用iframe的scr來彈窗 4. 過濾了alert來執(zhí)行彈窗 等等有很多的方法,不要把思想總局限于一種

10、上面,記住一句話“xss就是在頁面執(zhí)行你想要的js”其他的管他去。(當(dāng)然有的時(shí)候還有管他)005 xss的利用說了那么多,大家可能都以為xss就是彈窗,其實(shí)錯(cuò)了,彈窗只是測(cè)試xss的存在性和使用性。這時(shí)我們要插入js代碼了,怎么插呢?你可以這樣1. 也可以這樣1. 各種姿勢(shì),各種插,只要鞥運(yùn)行我們的js就OK。那運(yùn)行我們的js有什么用呢?Js可以干很多的事,可以獲取cookies(對(duì)http-only沒用)、控制用戶的動(dòng)作(發(fā)帖、私信什么的)等等。比如我們?cè)诰W(wǎng)站的留言區(qū)輸入下面的代碼:1. 當(dāng)管理員進(jìn)后臺(tái)瀏覽留言的時(shí)候,就會(huì)觸發(fā),然后管理員的cookies和后臺(tái)地址還有管理員瀏覽器版本等等你都

11、可以獲取到了,再用“桂林老兵cookie欺騙工具”來更改你的cookies,就可以不用輸入賬號(hào) 密碼 驗(yàn)證碼 就可以以管理員的方式來進(jìn)行登錄了。至于不會(huì)js的怎么寫js代碼呢,放心網(wǎng)上有很多xss平臺(tái),百度一下就可以看到了。頁面是傻瓜式的操作,這里就不再過多的說明了。有興趣的朋友,下面是cn4rry給我的幾個(gè)xss平臺(tái),大家可以自己鉆研與研究,也可以自己搭建/s/1ntqOp4X在發(fā)布此文章的時(shí)候,我特地和cn4rry談了一下,得到的結(jié)果是,我會(huì)繼續(xù)寫這個(gè)系列的。當(dāng)我把這個(gè)doc發(fā)給cn4rry的時(shí)候,他就直接來句 “嗯 寫的比較基礎(chǔ)”,我本來的打算是寫一個(gè)xss入門的就可以了,我只是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論