这是我参与「第四届青训营 」笔记创作活动的的第3天
hacker篇
Cross-Site Scripting(XSS)
XSS = 盲目信任用户的提交内容+string ->DOM\
- document.write
- element.innerHTML =anyString
- SSR(user_data)//伪代码
XSS的一些特点
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息 (cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
demo
Stored XSS
Stored XSS
- 恶意脚本本存在数据库中
- 访问页面-> 读数据===被攻击
- 危害最大,对全部用户可见
Reflected XSS
reflected
- 不涉及数据库
- 从URL上攻击
DOM-based XSS
- 不需要服务器的参与
- 恶意攻击的发起+执行,全在浏览器完成
完成脚本注入的地方
Mutation-based XSS
- 利用了浏览器渲染DOM 的特性(独特优化)
- 不同浏览器,会有区别(按浏览器进行攻击)
Cross-site request forgery(CSRF)
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定的HTTP请求,窃取活修改用户敏感信息
demo/ 用户没有访问银行页面 页面中的特定接口被请求 请求执行成功
SQL Injection
请求 server 获取其他数据
===> 参数->SQL --------> 修改数据
SQL参数(恶意注入) 运行SQL code 删除数据
SSRF demo
攻击者通过用户自定义的callback URL发起请求 服务器接收这个请求的时候访问这个 callback就有可能暴露内外信息
Denial of Service(DoS) DoS是Denial of Service的简称,即拒绝服务
攻击者通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。 ReDos:基于正则表达式的DOS
正则表达式----贪婪模式
贪婪:n次不行?n-1次再试试?——回溯 攻击者传入一个可以回溯的字符串,这样导致的效果就是服务器端响应的时间大大的延长,导致接口吞吐量明显降低,响应用户的次数大大下降
Distributed Dos (DDoS) 段时间内,来自大量的僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新的请求 不搞复杂的,量大就完事了 攻击特点
直接访问IP 任意API 消耗大量带宽(耗尽) DDoS demo
SYN Flood 洪水攻击 TCP有三次握手,攻击者会构建大量的TCP请求,发送大量的SYN给服务器,服务器会按照规范返回ACK+SYN进入等待状态,但是攻击者此时不会返回第三次ACK,就导致第三次握手没有完成,服务器连接次数不能被释放,当服务器达到最大连接数,新的请求就通通不能响应,这样就完成了一次洪水攻击