WEB开发的安全之旅

75 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第3天

hacker篇

Cross-Site Scripting(XSS)

image.png

XSS = 盲目信任用户的提交内容+string ->DOM\

  • document.write
  • element.innerHTML =anyString
  • SSR(user_data)//伪代码

XSS的一些特点

  • 通常难以从UI上感知(暗地执行脚本)
  • 窃取用户信息 (cookie/token)
  • 绘制UI(例如弹窗),诱骗用户点击/填写表单

demo

image.png

image.png

Stored XSS

Stored XSS

  • 恶意脚本本存在数据库中
  • 访问页面-> 读数据===被攻击
  • 危害最大,对全部用户可见

Reflected XSS

reflected

  • 不涉及数据库
  • 从URL上攻击

DOM-based XSS

  • 不需要服务器的参与
  • 恶意攻击的发起+执行,全在浏览器完成

完成脚本注入的地方 image.png

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,就导致第三次握手没有完成,服务器连接次数不能被释放,当服务器达到最大连接数,新的请求就通通不能响应,这样就完成了一次洪水攻击

防御篇