漏洞技巧汇总
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解析操作
- 外部实体