一、寻找XSS
1、找到可控参数
- URL参数
- 输入表单
- HTTP头部信息(user-agent、ip、location、referrer等)
2、找到参数输出点
- HTML标签
- JavaScript事件
- DOM型
3、精心构造payload
二、利用BurpSuite实现自动化测试
XSSValidator+phantomjs+xss.js
1、burpsuite安装xss-validator插件
2、安装phantomjs
http://phantomjs.org/download.html
3、下载xss-validator
https://github.com/portswigger/xss-validator
4、使用方式
在XSS-validator目录下运行ptantomjs xss.js
burp端配置inturder,选择payload type 为extension-genterated
配置匹配字符,匹配的字符来自于下图二
假如存在XSS则fy7s...处会有打钩
整个过程原理如下:
三、CSRF
四、预防XSS
1、在请求头中加入CSP来保护
2、绕过CSP列表
利用jsonp来callback返回自定义的JavaScript类型
3、XSS 远程代码执行
构造特殊的XSS Payload ,实现代码执行。如WordPress中,在XSS攻击中使用jQuery的$.getScript()函数过程调用以下脚本