漏洞技巧汇总

0x01 SQL注入

  • 代码直接拼接

    • 自行编写的SQL执行调用
    • 动态表名、动态字段名(无法预编译)
    • in
  • SQL语句字符串格式化拼接

    • String.format
  • mybatis ${}

    • 扩展参数
    • orderby
    • where
    • like
  • 自定义的SQL解析方案

    • 分析不同符号的处理方法,判断是否存在拼接执行
    • 存在黑明单过滤方法时,检查被过略的内容,最好白名单字母数字下划线
  • Pagehelper/自定义排序

    • 排序字段
    • 排序内容

0x02 XSS

  • window.location.search 处理

  • $route.query

  • window.location.href

  • postmessage

  • *html

    • innerhtml
    • dangerousinnerhtml
    • v-html
  • window.open

  • 上传文件的xss,s3

0x03 CSRF

  • GET 接口
  • 没有CSR-token类似的校验机制
  • 自定义Header头也可以避免

0x04 信息泄露

  • 指标信息接口

    • actuator
  • 返回敏感信息

  • 日志打印敏感信息

    • 帐密
    • token
    • key
  • 备份文件

  • 异常报错未处理

  • 前端源码泄漏

    • webpack sourcemap
    • 注释内容泄漏

0x05 越权

  • userid从请求参数取
  • 对象与当前用户关系校验
  • 参数之间的关系校验
  • 功能权限
  • 参数自动绑定
  • 未授权
    • 路由校验
    • 校验注解
    • 路由绕过
      • requesturi
      • 白名单匹配机制

06 命令执行

  • 组件漏洞
    • fastjson
    • log4j
  • 命令执行功能
  • xxljob 弱口令
  • webapp 页面渲染执行rce
    • Electron

0x07 代码执行

  • sti
  • xss
  • sqi

0x08 重定向

  • redirectUrl
  • backUrl
  • Oauth2 流程
  • 后端未校验重定向网址的合法性
  • noopener noreferrer
    • a标签 _blank
    • window.open

0x09 CRLF

  • 前后对http的处理不一致
  • nginx配置301直接拼接
  • 对url解析进行拼接

0x10 SSRF

  • 存在请求的功能
  • url用户可控
  • 对url校验不严格,@attack.com可以改变访问地址
  • 允许的协议类型
  • wordpress
    • xmlrpc.php

0x11 文件读取

  • 文件读取/下载
    • 目录穿越
  • s3整个目录读取

0x12 拒绝服务

  • bigdecimal 科学技术法
  • 返回数量限制
  • 耗时接口的并发

0x13 弱口令

  • druid
  • jenkins
  • xxljob
  • 禅道
  • ...

0x14 组件扫描

  • fastjson
  • log4j

0x15 并发问题

  • 单接口加锁时机
  • 多接口之间加锁/释放锁时机,key值,数据冲突
  • 业务层面存在限制的接口,是否增加锁机制进行限制,否则有并发风险

0x16 验签绕过

  • 内部接口是否存在验签操作
  • 白名单
  • 路由绕过

0x17 XXE

  • XML解析操作
  • 外部实体