目录
什么是Xss
跨站脚本攻击(跨域脚本攻击)
利用方法
- 窃取用户cookie
- 获取用户浏览器信息
- 网页挂马/篡改页面信息
- 记录用户键盘输入
- XSS蠕虫(在客户端提交的时候绕过过滤和转义,可以在继续在浏览器端执行的js 等代码)
分类
- 反射型
- Dom型
- 存储型
1.反射型(最多,最常见)
将恶意参数附加在请求参数中
2.Dom型
不依赖于服务器,而从客户端获取数据并在本地执行
3.存储型
传入的恶意参数存储在数据库中,用户访问存储有恶意参数的页面时会受到攻击,一般出现在留言等地
构造xss语句:
标签风格:
<script>alert(xss)</script>
伪协议:
<a herf=Javascript:alert(xss) > 123 </a>
事件:
<img src='#' onerror=alert(xss) />
onerror:事件失败后触发
onclick:点击后触发
。。。
Dom型和反射型的区别:
反射型:会传递恶意参数到服务器,并由服务器返回,所以可以从response返回包中看到
Dom型:不会传递到服务器,所以返回包看不到
查看返回包:do intercept -> response to this respect
Cookie
内存cookie:浏览器关闭后消失
硬盘cookie:有过期时间,除非手工删除或者时间到了,一直存在
cookie和session
相同点:标识用户,维持会话;都通过http请求头中的cookies传递
不同点:
- 服务器处理不同,直接获取cookie的数据,而session只是一个名称,数据存储在服务器中,服务器通过这个名称调用数据
- cookie的过期与否是在生成的时候设定的,而session过期与否取决于服务器的设定
- cookie容易被被人分析,在本地进行cookie欺骗,从安全方面看,session更好
- session占据较大的服务器性能,从减轻服务器性能,cookie更好
跨域请求
同源协议:同端口,同协议,同域名
防止某个页面的恶意脚本通过该页面的DOM访问另一网站的敏感数据
file同源,cookie同源
跨域方法
Jsonp:只能接受GET请求,只能接受简单的请求(对浏览器的版本要求低,IE9及以下都可以)
cors:能接受GET,POST,PUT,DELETE等请求,可接受复杂的请求
document.domain
window.name
可跨域的标签:
<script> <script src=...></script>
<link>
<img>/<audio>/<vedio>
<object>
XSS攻击方式
Dom型/反射型
- 发现一个有xss的网站
- 构造xss漏洞恶意url链接,链接负责接受cookie
- 包装链接,诱导别人点击
- 获取cookie,修改cookie,登陆
存储型
- 发现有XSs的网站
- 构造恶意payload,payload会使登录页面发生改变
- 当用户登录页面时
- 密码账户就会传到攻击者
xss平台
hk.sb
xss.pt
功能:
- 获取cookie
- 获取浏览器信息
- 截图
- ....
Xss绕过
大小写绕过:<ScrIpT>
双写(注释)绕过:<scr<script>ipt> <scr<!--test--->ipt>黑名单将特殊字符替换为空
反引号:alert`1`
编码绕过:
利用eval等绕过:
<script>eval.call`${'alert\x281)'}`</script>