这是我参与「第五届青训营 」笔记创作活动的第 14 天
跨站脚本攻击(XSS)
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
如填写表单信息时,如果盲目相信用户的提交内容,那么假如用户填写了类似的信息,然后直接通过element.innerHTML把用户提交的代码存起来的话,那么工具者就可以实现攻击了。
XSS特点:
- 通常难以从UI上发现,因为是在暗地里执行脚本
- 可以窃取用户信息(cookie、token)
- 还可以绘制UI(如弹窗),诱骗用户点击
Stored XSS
把恶意脚本存储在被攻击网站的数据库中。当其他人访问页面时,回去读数据,然后就会执行到数据库中的恶意脚本,从而被攻击。危害最大,对全部用户可见
Reflected XSS
-
不涉及数据库
-
从URL上进行攻击
DOM-based XSS
-
不需要服务器的参与
-
恶意攻击的发起、执行,都在浏览器完成
和Reflected XSS很像,不过,Reflected XSS的恶意脚本是注入到服务器中,而DOM-based XSS的恶意脚本是注入到浏览器中,而且攻击不需要服务器的参与
Mutation-based XSS
- 利用浏览器渲染DOM的特性(独特优化)
- 按浏览器进行攻击
跨站伪造请求CSRF
CSRF攻击:在用户不知情的前提下,利用用户权限(cookie),构造HTTP请求,窃取或修改用户敏感信息。
经典例子:银行转账
首先,a为了转账给b10000元,于是a登录银行页面进行转账操作, 还没有推出登录,又收到中奖通知链接(假的或者是只有小额鱼饵),a点击链接,并点击领奖按钮。然后发现钱被转走了100000元了。
CSRF攻击原理:利用cookie的自动携带特性,在其他网站向你的网站发送请求时,如果网站中的用户没有退出登录,而发送的请求又是一些敏感的操作请求(如转账),则会给用户带来巨大的损失。
注入攻击injection
SQL注入
SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。
在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
DOS(拒绝服务)
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而引起雪崩效应。
ReDOS
正则表达式拒绝服务攻击。当开发人员使用了正则表达式来对用户输入的数据进行有效性校验, 而编写校验的正则表达式存在缺陷或者不严谨时, 攻击者可以构造特殊的字符串来大量消耗服务器的系统资源,造成服务器的服务中断或停止。
Distributed DOS(DDoS)
分布式拒绝服务。短时间内,来自大量僵尸设备的请求,服务器不能及时响应全部请求,导致请求堆积,进而引发雪崩效应,无法响应新请求。
攻击特点:
-
直接访问IP
-
任意API
-
消耗大量带宽(耗尽)
中间人攻击
中间人攻击(通常缩写为MitM或MiM)是一种会话劫持网络攻击。 黑客拦截数字共享的信息,通常是作为窃听者或冒充他人。这种类型的攻击非常危险,因为它可能会导致一些风险,如信息被盗或虚假通信,通常很难检测到这些危险,因为情况对合法用户来说似乎完全正常。