我有一个web应用程序,并对其运行xss扫描,它报告我的一个页面中有一个javaapplet,它可能对xss开放。测试成功地将javascript警报框分配给以下html代码:
<param name='id' value='' onMouseOver=alert(40041)>
我的问题是-这是有效的测试吗?在param对象上执行xss javascript操作会导致任何实际问题吗?我不认为鼠标在param对象上做任何事。谢谢
8gsdolmq1#
这是一个有效的测试,可能是一个严重的漏洞。如果内容 value 未逃逸,则攻击者可以关闭标记并添加任何其他脚本。即使 <> 如果是转义/剥离的,但引号不是,它仍然可能被利用:攻击者可以附加事件处理程序,如 onload 以及 onerror . 在现代浏览器中,每个元素都是可见的(例如 <head> ),所以 style 可以使 <param> 也可以悬停。防范这样的xss非常简单。生成属性时,始终使用引号,并且在值更改中: & 至& < 至 < , ' 至 &x39; 以及 " 至 " .你也不必担心被劫持的人会发生什么坏事 <param> .
value
<>
onload
onerror
<head>
style
<param>
&
<
<
'
&x39;
"
"
1条答案
按热度按时间8gsdolmq1#
这是一个有效的测试,可能是一个严重的漏洞。
如果内容
value
未逃逸,则攻击者可以关闭标记并添加任何其他脚本。即使
<>
如果是转义/剥离的,但引号不是,它仍然可能被利用:攻击者可以附加事件处理程序,如onload
以及onerror
. 在现代浏览器中,每个元素都是可见的(例如<head>
),所以style
可以使<param>
也可以悬停。防范这样的xss非常简单。生成属性时,始终使用引号,并且在值更改中:
&
至&
<
至<
,'
至&x39;
以及"
至"
.你也不必担心被劫持的人会发生什么坏事
<param>
.