我目前正在研究会话固定技术并阅读有关它的文章: https://www.owasp.org/index.php/Session_fixation
在示例2和3中,它声明我可以使用以下URL设置加载资源的用户的cookie:
http://website.kom/<script>document.cookie=”sessionid=abcd”;</script>
http://website.kon/<meta http-equiv=Set-Cookie content=”sessionid=abcd”>
这是否意味着浏览器在处理URL时处理这些标记?我已经尝试执行嵌入在urls中的脚本来加载iframe,即使我对url编码脚本标记也无法执行它们。
修改
我还认为问题是当url显示给其他用户并且脚本执行时。但是,会话固定的性质是在登录之前由攻击者设置用户的cookie,以便攻击者在用户登录时劫持会话。这与试图窃取用户cookie的通常XSS攻击相反。劫持会议。如果是这种情况,为了使上述脚本更改目标站点的浏览器cookie,用户是否应该首先在目标站点?据我了解,浏览器cookie是每个站点的基础。因此,如果上述脚本在目标站点之外的任何其他站点中执行,则cookie将设置为用户当前所在的站点而不是目标站点。我的理解是否正确?
答案 0 :(得分:1)
如果您在浏览器的网址栏中输入类似内容:
http://example.com/<script>alert("Hello World");</script>
被视为
http://example.com/%3Cscript%3Ealert%28%22Hello%20World%22%29;%3C/script%3E
普通网址应该在浏览器中不执行任何操作。如果浏览器会向您显示带有文本&#34; Hello World&#34;的警报,则此浏览器是一个安全漏洞,不应该安装在某个地方。
但是,如果你想创建一个动态页面(JS / PHP / C#/ Java等),你应该永远记住,永远不要相信客户。
如果要输出{RequestURI}
http://example.com/
,那就是<meta>
之后的所有问题。您应始终在用户输入中对Html实体进行编码,或使用某些过滤器,禁止<script>
,.container
以及任何可能出现问题的内容。