xss攻击 - 修补所需的更多信息

时间:2015-08-13 13:41:05

标签: javascript php xss

任何人都可以解释下面的xss漏洞如何工作(做什么)以及修复的最佳方法(使用php)

https://www.domain.com/page.php?tid=11%22%3E%3Cimg%20src=x%20onerror=alert%28document.cookie%29%3E&id=82

1 个答案:

答案 0 :(得分:0)

答案: 您显然是在页面上输出原始用户输入($ _GET ['tid'])而不是从特殊HTML字符“清除”它。

">部分关闭了您网页上之前打开的一些HTML标记,

<img src=x onerror=alert(document.cookie)>插入带有无效来源的img标记,这会导致加载错误,触发onerror绑定的javascript。

所以......如果你的php代码中有这样的东西:

    <a href="<?php echo $_GET['tid']?>"> some link </a>

它将像这样返回浏览器(使用示例中的$ _GET ['tid']):

    <a href=""><img src=x onerror=alert(document.cookie)>"> some link </a>

所以浏览器会:

1)将a解析为具有空href的链接

2)尝试加载图片并失败

3)执行img的{​​{1}} javascript,它将提醒cookie(在实际攻击中,此部分不仅会提醒Cookie,还会将其发送给攻击者的服务器)

建议:

1)永远不要信任/输出原始用户输入(onerror参数htmlspecialchars()

2)仅接受/解析适当的类型($_GETintval()参数{/ p>}