2016-05-03 18 views
1

我目前正在研究有关会话固定技术和阅读这篇文章吧: https://www.owasp.org/index.php/Session_fixationMeta标记和脚本处理内部URL

在例2和3,它指出我大概可以设置用户的Cookie是使用以下URL加载资源:

http://website.kom/<script>document.cookie=”sessionid=abcd”;</script> 
http://website.kon/<meta http-equiv=Set-Cookie content=”sessionid=abcd”> 

这是否意味着浏览器在处理URLS时处理这些标记?我曾尝试执行脚本中嵌入的加载iframe的脚本,即使在我对URL进行脚本标记编码时也无法执行脚本。

编辑

我还认为,当URL显示给其他用户和执行脚本的问题是。但是,会话注入的本质是在登录之前由攻击者设置用户的cookie,以便攻击者在用户登录时劫持会话。这与尝试窃取用户Cookie的常见XSS攻击形成对比劫持会议。如果是这样的话,用户不应该首先访问目标站点以便上述脚本更改目标站点的浏览器Cookie吗?根据我的理解,浏览器Cookie是每个网站的基础。因此,如果上述脚本在除目标站点之外的任何其他站点中执行,则Cookie将设置为用户当前所在的站点,而不是目标站点。我的理解是否正确?

回答

0

如果键入在浏览器的地址栏是这样的:

http://example.com/<script>alert("Hello World");</script> 

它被视为

http://example.com/%3Cscript%3Ealert%28%22Hello%20World%22%29;%3C/script%3E 

平原URL应该什么都不做在浏览器中。如果浏览器会向您显示文本“Hello World”的警报,则此浏览器是一个安全漏洞,绝不应该安装在某处。但是,如果你想创建一个动态页面(JS/PHP/C#/ Java等),你应该永远记住,永远不要相信客户端。

如果您输出的是{RequestURI},这是http://example.com/之后的所有内容,您将遇到问题。您应该始终在用户输入中对Html实体进行编码,或者使用一些过滤器,禁止使用<meta>,<script>以及任何可能有问题的过滤器。

+0

谢谢您的回答,先生。我也认为这个问题会出现在URL显示给其他用户并且脚本执行的时候。但是,会话固定的本质是在登录之前由攻击者设置用户的cookie,以便攻击者在用户登录时劫持会话。如果是这种情况,用户不应该在目标站点首先为了让上面的脚本更改特定站点的浏览器Cookie? – MykelXIII

+0

我已更新我的问题以包含更多详细信息。 – MykelXIII