文章目录
- 一、跨站脚本攻击(XSS)
-
- [1.1 XSS攻击的原理](#1.1 XSS攻击的原理)
- [1.2 XSS攻击的类型](#1.2 XSS攻击的类型)
- [1.3 XSS攻击常用的HTML标签](#1.3 XSS攻击常用的HTML标签)
- [1.4 XSS攻击步骤](#1.4 XSS攻击步骤)
- [1.5 案例](#1.5 案例)
-
- [1.5.1 窃取用户Cookie](#1.5.1 窃取用户Cookie)
- [1.5.2 注入外部JS文件](#1.5.2 注入外部JS文件)
- [1.6 XSS攻击防御](#1.6 XSS攻击防御)
- [1.7 XSS漏洞扫描](#1.7 XSS漏洞扫描)
- [1.8 总结](#1.8 总结)
- 二、跨站点请求伪造(CSRF)
-
- [2.1 CSRF攻击原理](#2.1 CSRF攻击原理)
- [2.2 CSRF攻击防御](#2.2 CSRF攻击防御)
- [2.3 跨站请求删除微博案例](#2.3 跨站请求删除微博案例)
- 三、总结
一、跨站脚本攻击(XSS)
XSS:跨站脚本(cross site script)为了避免与前端css混淆,改名为xss。
跨站脚本攻击:是指攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入的代码会被执行,从而达到恶意攻击用户的目的。
XSS攻击的危害:
- 盗取各类用户账户;
- 盗取、注入修改、删除客户端敏感数据;
- 网站木马;
- 肉鸡(控制受害机攻击别的机器)
yacas
跨站脚本攻击(XSS):只针对web项目
攻击者通过改变前端页面元素请求地址或注入JS,来获取非法数据(cookie)
1.1 XSS攻击的原理

1.2 XSS攻击的类型
1、存储型:将攻击代码存储到数据库,每次打开指定的页面自动加载执行。
yacas
场景:留言板、注册
2、反射型:临时修改页面代码,用户打开页面中招。
yacas
场景:图片、连接
1.3 XSS攻击常用的HTML标签

1.4 XSS攻击步骤
1、页面查找XSS漏洞
2、注入恶意程序
3、客户端访问注入恶意程序的页面
4、获取客户端敏感信息或攻击
javascript
页面查找XSS漏洞:
- 脚本:<script>alert(123)</script>
- 说明:一般作为漏洞测试使用,如果页面支持弹出框执行,意味着系统没有过滤<>和/字符,说明存在XSS漏洞
1.5 案例
1.5.1 窃取用户Cookie

1.5.2 注入外部JS文件

1.6 XSS攻击防御
1、HttpOnly
- 给关键的Cookie都加上HttpOnly属性
- 浏览器将禁止页面的javascript访问带有HttpOnly属性的Cookie
2、输入检查
- 检查用户输入的数据中是否包含了一些特殊字符,如<、>、'、"
- 如果发现存在特殊字符,则将这些字符过滤或者编码
3、输出检查
- 在变量输出到HTML页面时,可以使用编码或者转义的方式来防御XSS攻击
1.7 XSS漏洞扫描
1、手工检测
- 优点:校验结果精准,但是对于一个大型Web应用,效率比较低
- 重点:考虑哪里有输入、输入的数据在什么地方展示。
2、软件自动检测
- 优点:方便,却存在误报,或者有些隐蔽的XSS无法检测出。
1.8 总结
- XSS安全测试解决什么问题?
yacas
避免客户端被注入恶意JS程序或修改标签链接地址,导致数据丢失或访问黑客网站。
- XSS测试人员使用的步骤
yacas
1、验证页面是否屏蔽了JS的注入
2、如果存在JS注入,提醒开发防护策略
二、跨站点请求伪造(CSRF)
CSRF ( Cross-site request forgery)是指跨站请求伪造
理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求或进行某些非常操作
2.1 CSRF攻击原理

2.2 CSRF攻击防御
1、验证码
- 验证码被认为是对抗CSRF攻击最简洁有效的防御方法,但是处于用户体验考虑,不能给所有的操作都加上验证码
2、验证HTTP Referer
- HTTP Referer可被用于检查请求是否来自合法的"源"
yacas
Referer引用,是HTTP请求header的一部分
3、添加token并验证
- 在请求地址中添加token并验证
2.3 跨站请求删除微博案例
yacas
演示步骤:
1.黑客先发布一条微博,进行删除操作
2.黑客通过抓包找到删除微博的接口,确定传递的参数(一般都是id)
3.黑客找到其他用户发布的微博信息,并替换请求参数
4.黑客在自己的网站上伪造一个删除别人微博的请求: `<img th:src="http://121.43.169.97:1688/delBlog?id=101"/>`
5.黑客在发微博页面输入链接: '<a href=" http://121.43.169.97:9999/csrf" target="_blank">点击有惊喜</a>`,并诱惑用户进行点击
6.用户点击诱惑链接之后跳转到黑客网站,在黑客网站中触发删除微博的请求,进而删除用户资源.
三、总结
