这是我参与「第四届青训营 」笔记创作活动的的第7天
重点
-
XSS -
CSRF -
Injection -
DoS -
中间人攻击
攻击
Cross-Site Scripting(XSS)
恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。接将字符串转换成dom
Xss主要利用了
-
盲目信任用户的提交内容 -
直接将string转换为dom
Xss的特点
-
通常难以从UI上感知(暗地执行脚本) -
窃取用户信息(cookie、token) -
绘制UI(例如弹窗),诱骗用户点击填写表单
XSS的例子
stored XSS
持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie
reflected XSS
非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型XSS大多数是用来盗取用户的Cookie信息。
Dom-based XSS
不经过后端,DOM-XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS。
reflected vs dom
reflected 在服务器中,dom直接在浏览器中
Mutation-based XSS
警惕以下情况
- 动态生成DOm,
- string直接转为dom
- 上传svg
- blob动态生成scipt
- 自定义跳转链接
- 自定义样式
CSRF
CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。
CSRF例子
Get类型
Get类型:在受害者访问含有这个img的页面后,浏览器会自动向链接发出一次HTTP请求。bank.example就会收到包含受害者登录信息的一次跨域请求。
Post类型
Post类型:这种类型的CSRF利用起来通常使用的是一个自动提交的表单,如:
访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作
POST类型的攻击通常比GET要求更加严格一点,但仍并不复杂。任何个人网站、博客,被黑客上传页面的网站都有可能是发起攻击的来源,后端接口不能将安全寄托在仅允许POST上面。
Injection
是一种可执行恶意 SQL 语句的。这些 SQL 语句可控制网站背后的数据库服务。攻击者可利用 SQL 漏洞绕过网站已有的安全措施。他们可绕过网站的身份认证和授权并访问整个 SQL 数据库的数据。他们也可利用 SQL 注入对数据进行增加、修改和删除操作。
Denial of Service(DoS)
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求挤压,进而雪崩效应。
ReDos
Logical Dos
Distributed DoS(DDoS)
中间人攻击
防御
XSS防御方法
SoP,CSP
CSRF防御
SameSite Cookie
injection防御
Dos防御
中间人防御
SRI
总结
这里介绍了几种攻击和其防御方法。文章内容除了PPT 其他来自 www.cnblogs.com/csnd/p/1180… tech.meituan.com/2018/10/11/… juejin.cn/post/696084…