*sql注入

  • 四种办法

    1. 联结注入
    2. 基于谬误的注入
    3. 布尔盲注
    4. 延时注入
  • 联结注入

    • 要求:联结的两张表有雷同的列数和雷同的数据类型
    • 步骤:首先用order by确定列数,再结构union 查问(如union select 1,database(),version() --+)获取,通过返回值确定指标点获取的是哪些列的值,再将这些列做替换获取指标数据库名、表名、列名等
  • 基于谬误的注入

    • 原理:通过报错返回的后果确定信息
  • 布尔盲注

    • 原理:利用布尔值的后果判断结构语句的正确性
  • 延时注入

    • 原理和布尔盲注相似,在页面不提供反馈时,通过sleep函数设置时延,通过相应工夫判断正确性 —— e.g. and if(length(database())>5,sleep(5),0) --+

*XSS

  • 三种类型
    1.存储型XSS
    2.反射型XSS
    3.DOM
  • 存储型XSS

    • 将脚本永恒保留至服务器端,如嵌入帖子、评论等,当客户端关上页面时就会执行注入脚本,导致敏感信息发送到攻打端
  • 反射型XSS

    • 须要疏导客户端点击攻击者结构的歹意URL,将恶意代码参数增加到客户端的页面中被执行
  • DOM
  • 进攻:输出过滤

*CSRF

  • 原理:伪造用户发送申请,在用户关上失常站点并通过可信验证后,又关上了歹意页面,此时歹意页面伪造用户身份向失常服务器发送申请,次要是实现身份窃取,盗取用户权限
  • 进攻:

    1. 验证 HTTP Referer 字段:Referer字段表明了申请起源,当攻打方要求拜访时,他会指向攻打方,但有些浏览器能够批改这个值,且有时会产生误报。
    2. 在申请地址中增加 token 并验证,结构黑客无奈伪造的局部,因为token须要退出到get/post的参数中,而攻击者只是借用,无奈获取cookie内容,因而无奈结构token
    3. 在 HTTP 头中自定义属性并验证

*文件上传破绽

  • 用户端检测绕过:抓包批改后缀
  • 服务端检测:黑白后缀名单、Content-Type(示意文件类型)校验、文件magic number校验
  • 绕过形式:1.批改Content-Type 2.文件头部增加正当的magic number 3.文件00截断绕过(检测的是最初的后缀,截取的是00之前的局部)