自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

世界第一個(gè)XSS攻擊蠕蟲的原理

安全 應(yīng)用安全
Kamkar近日在Github上發(fā)布了一款軟件并附上指導(dǎo)教程,教你如何修改無人機(jī)設(shè)置,使之認(rèn)證失效并對其進(jìn)行攻擊。該P(yáng)erl軟件名為SkyJack,運(yùn)行在 Raspberry Pi上并使用其它開源軟件來劫持飛行器。

Kamkar近日在Github上發(fā)布了一款軟件并附上指導(dǎo)教程,教你如何修改無人機(jī)設(shè)置,使之認(rèn)證失效并對其進(jìn)行攻擊。該P(yáng)erl軟件名為SkyJack,運(yùn)行在 Raspberry Pi上并使用其它開源軟件來劫持飛行器。

這一新聞讓我對此人非常敬佩,翻譯了他關(guān)于如何在MySpace上實(shí)現(xiàn)第一個(gè)XSS工具蠕蟲代碼的說明,翻譯的過程也是對XSS攻擊的一次學(xué)習(xí)過程和對黑客精神的震撼。

1)Myspace 屏蔽了很多標(biāo)志符。事實(shí)上,他們只允許<a>,<img>類,和<div>類,或許還有其他一些(例如,<embed>類)。他們不允許<script>類,<boday>類,onClinks,onAnythings,帶javascript的<href>類。但是某些瀏覽器(IE,部分Safari和其他)允許CSS標(biāo)識符中帶有javascript.即便如此,我們也需要javascript能夠正常運(yùn)行。例如:

<div style=”background:url(‘javascript:alert(1)’)”>

2)我們不能對Div 標(biāo)識符使用引號,因?yàn)槲覀円呀?jīng)使用了單引號和雙引號。這讓JS的編程非常困難。為了讓JS運(yùn)行,我們使用表達(dá)式來保存JS代碼和通過函數(shù)名來運(yùn)行。例如,

<div id=”mycoce” expr=”alert(‘hah!’)”sytle=”background:url(‘javascript:eval(document.all.mycode.expr)’)”>

3)真棒,現(xiàn)在我們可以執(zhí)行帶單引號的Javascript代碼了。但是,MySpace網(wǎng)站禁止了關(guān)鍵字”javascript”.為了實(shí)現(xiàn)目的,某些瀏覽器認(rèn)可“java\nscript”(就是java<NEWLINE>script 為”javascript”.例如,

<divid=”mycode”expr=”alert(‘hah!’)”style=”background:url(‘javaScript:eval(document.all.mycode.expr)’)”>

4)很好,當(dāng)我們讓單引號其效果后,我們有時(shí)還需要雙引號。我們將引號轉(zhuǎn)義,例如,“foo\”bar”. Myspace 打擊我一下,他們禁止了所有轉(zhuǎn)義,無論是雙引號還是單引號。但是,我們依然可以在javascript 中將10進(jìn)制翻譯成ASCII來生成引號。例如,

<div id=”mycode”expr=”alert(‘doublequota:’+String.fromCharCode(34))”style=”background:url(‘javScript:eval(document.all.mycode.expr)’)”>

5)為了將代碼發(fā)布到真正展示的用戶簡介頁面上,我們需要得到這些頁面源碼。為了獲得包含客戶ID的瀏覽頁面的源碼,我們可以使用document.body.innerHTML。但是Myspace再次打擊了我,他們禁止了標(biāo)識“innerHTML “.我們可以用eval函數(shù)來拼接兩個(gè)字符串組成“innerHTML”.例如,

alert(eval(‘document.body.innt’+’rHTML’))

6)是時(shí)候訪問其他頁面了。通常我們使用”iframes”格式,但是即便是隱藏的,“iframes”并不有效,會(huì)讓用戶明顯感到有其他東西在運(yùn)行。所以我們采用AJAX(XML-HTTP)來讓實(shí)際用戶產(chǎn)生HTTP GET和POST到頁面。當(dāng)然,Myspace禁止了XML-HTTP請求所必需的敏感詞“onreadstatechange”,我們再次使用EVAL來拼接生產(chǎn)該敏感詞。另外,要XML-HTTP在myspace 有效果還需要Cookies.例如,

eval(‘xmlhttp.onread’+’ystatechange=callback’);

7)是時(shí)候在用戶簡介上執(zhí)行GET來獲得他們的Hero列表。我們不必刪除任何heros,我們僅僅是將自己添加到已有的列表中。如果我們GET他們的簡介,我們就能獲取他們的列表并且保存?zhèn)溆谩>C上所述,用XML-HTTP來實(shí)現(xiàn)是簡單的,除非我們要獲得當(dāng)前瀏覽該簡介的用戶ID。正如我說的,我們可以從獲取頁面源碼來實(shí)現(xiàn)。好了,我們需要在頁面中搜索關(guān)鍵詞。但是如果我們這么做,我們會(huì)發(fā)現(xiàn)自己,因?yàn)槲覀兊拇a包含相同的關(guān)鍵字。我們再次使用eval()來拼接字符串來避免這個(gè)問題。

8)到此,我們有了heros列表。第一,讓我們在addFriends頁面執(zhí)行一個(gè)XML-HTTP

POST請求把自己加到朋友列表中。歐不,這樣不行,為啥?我們正在profile.myspace.com頁面,但是POST動(dòng)作要在www.myspace.com頁面去運(yùn)行。但是XML-HTTP不允許在不同域名間實(shí)現(xiàn)GETs/POSTs。為了避免這樣,我們要去同一URL而不是在www.myspace.com頁面。你可以繼續(xù)從www.myspace.com 瀏覽簡介,通過在同一域名中重新裝載運(yùn)行我們執(zhí)行POST的頁面。例如,

if(location.hostname== ‘profile.myspace.com’) document.location= ‘http://www.myspace.com’+location.pathname + location.search;

9)最后我們執(zhí)行POST請求。但是,當(dāng)我們發(fā)送POST請求后沒有添加用戶。為啥?原來Myspace為一個(gè)預(yù)POST頁面生產(chǎn)了一個(gè)哈希值,例如在“你確定添加該用戶為朋友頁面”。如果這個(gè)哈希值沒有與POST一同發(fā)生的話,這個(gè)POST不會(huì)成功執(zhí)行。為了避免這樣,在添加用戶前我們模擬一個(gè)瀏覽器去GET該頁面,通過分析源碼來取得該哈希值,然后帶上該哈希值去執(zhí)行POST請求。

10)一旦POST請求結(jié)束,我們還要添加一個(gè)Hero和執(zhí)行代碼。這段代碼執(zhí)行完后就會(huì)到hero的同一地方,所以我們只有一個(gè)POST請求就可以了。但是,我們需要預(yù)GET一個(gè)頁面來得到一個(gè)新的哈希值。但是,第一我們不得不重新生成我們要POST的代碼。最簡單的辦法是獲取我們要的頁面源碼,分析出代碼后在發(fā)出POST請求。到此為止萬事俱備。為了POST請求正在運(yùn)行我們需要對代碼做編碼或者轉(zhuǎn)義??蓯海€是不能運(yùn)行。顯然,javascript的URL-Encoding和escape() 函數(shù)不能轉(zhuǎn)義所以必須要的代碼。所以我們不得不人工來做這些工作確保必要的代碼正確轉(zhuǎn)義。我們添加了一條“but most of all ,samy is my hero”到代碼。哇,我們自我復(fù)制了一個(gè)蠕蟲代碼。

11)還有其他限制,例如,最大長度,必需緊湊的代碼,沒有空格,混亂的命名,重復(fù)使用的函數(shù)等等。


 

責(zé)任編輯:藍(lán)雨淚 來源: FreebuF
相關(guān)推薦

2013-10-21 15:45:30

Android筆記本聯(lián)想

2016-09-02 09:14:26

2021-12-09 09:56:38

量子計(jì)算芯片超算

2012-05-28 09:24:49

虛擬化

2021-09-03 05:52:06

黑客安全網(wǎng)絡(luò)凱文·米特尼克

2017-06-08 09:42:53

2013-10-30 22:10:28

Clouda程序

2022-10-17 10:28:05

Web 組件代碼

2020-11-13 07:08:51

Spring Boot應(yīng)用Spring

2013-12-17 10:06:40

2011-03-03 21:04:08

bug程序員

2011-03-21 14:24:13

Debian 6

2013-01-14 09:44:58

JavaScriptJSJS框架

2010-07-30 14:58:06

Flex應(yīng)用

2012-02-08 11:15:38

HibernateJava

2021-04-07 13:38:27

Django項(xiàng)目視圖

2023-09-21 22:43:17

Django框架

2014-05-19 16:15:26

天河二號超級計(jì)算機(jī)

2010-03-15 10:37:46

Pthon腳本

2021-11-02 08:00:00

機(jī)器學(xué)習(xí)API技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號