Web开发安全之攻击篇
这是我参加第五届青训营 伴学笔记创作活动的第12天。
课程重点
- 跨站脚本攻击(XSS)
- 跨站请求伪造(CSRF)
- 注入(Injection)
- 拒绝服务(Dos)
详细知识点
跨站脚本攻击(XSS)
用户恶意提交js脚本,主要利用了浏览器盲目信任用户提交的内容
xxs的一些特点:
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
案例:
可以直接提交恶意脚本
Stored XSS
- 恶意脚本被存储在数据库中
- 访问页面->读取数据=被攻击
- 危害最大,对全部用户可见。
Reflected XSS
- 不涉及数据库
- 从URL上攻击
在url参数上加入恶意脚本,服务端解析参数放入响应体中,导致恶意脚本注入。 DOM-based XSS
- 不需要服务器的参与
- 恶意攻击的发起+执行,全在浏览器完成
Reflected XSS与DOM-based XSS区别:完成注入脚本的地方不同
Mutation-based XSS
- 利用了浏览器渲染DOM的特性(独特优化)
- 不同浏览器,会有区别(按浏览器精选攻击)
嵌入上面一段内容,导致浏览器解析出来的HTML有误,img标签属性出错,导致执行onerror里面的内容,这样就可以注入恶意脚本,进行攻击。
CSRF跨站请求伪造
在用户不知情的前提下,利用用户的权限(cookie),构造指定HTTP请求,窃取或修改用户敏感信息。
注入Injection
- SQL注入:
web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在Web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
Dos拒绝服务
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。
ReDos:基于正则表达式的Dos.暴力回溯,会导致系统的响应时间变长,接口的吞吐量下降。
DDos:分布式Dos
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。
攻击特点:
- 直接访问IP
- 任意API
- 消耗大量带宽(耗尽)