Web开发安全之攻击篇 | 青训营笔记

82 阅读2分钟

Web开发安全之攻击篇

这是我参加第五届青训营 伴学笔记创作活动的第12天。

课程重点

  1. 跨站脚本攻击(XSS)
  2. 跨站请求伪造(CSRF)
  3. 注入(Injection)
  4. 拒绝服务(Dos)

详细知识点

跨站脚本攻击(XSS)

用户恶意提交js脚本,主要利用了浏览器盲目信任用户提交的内容 image.png image.png xxs的一些特点:

  • 通常难以从UI上感知(暗地执行脚本)
  • 窃取用户信息(cookie/token)
  • 绘制UI(例如弹窗),诱骗用户点击/填写表单 案例: image.png 可以直接提交恶意脚本 image.png Stored XSS
  • 恶意脚本被存储在数据库中
  • 访问页面->读取数据=被攻击
  • 危害最大,对全部用户可见。 image.png Reflected XSS
  • 不涉及数据库
  • 从URL上攻击 image.png 在url参数上加入恶意脚本,服务端解析参数放入响应体中,导致恶意脚本注入。 DOM-based XSS
  • 不需要服务器的参与
  • 恶意攻击的发起+执行,全在浏览器完成 image.png Reflected XSS与DOM-based XSS区别:完成注入脚本的地方不同 image.png Mutation-based XSS
  • 利用了浏览器渲染DOM的特性(独特优化)
  • 不同浏览器,会有区别(按浏览器精选攻击) image.png 嵌入上面一段内容,导致浏览器解析出来的HTML有误,img标签属性出错,导致执行onerror里面的内容,这样就可以注入恶意脚本,进行攻击。

CSRF跨站请求伪造

在用户不知情的前提下,利用用户的权限(cookie),构造指定HTTP请求,窃取或修改用户敏感信息。 image.png

注入Injection

  • SQL注入: web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在Web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。image.png

Dos拒绝服务

通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。

ReDos:基于正则表达式的Dos.暴力回溯,会导致系统的响应时间变长,接口的吞吐量下降。 image.png DDos:分布式Dos 短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。 攻击特点:

  • 直接访问IP
  • 任意API
  • 消耗大量带宽(耗尽)

image.png