Java代码审计--checklist
通常我喜欢把代码审计的方向分为业务层安全
问题、代码实现
和服务架构
安全问题,。
1. 业务层安全常见问题
业务层的安全问题集中在业务逻辑
和越权
问题上,我们在代码审计的过程中尽可能的去理解系统的业务流程以便于发现隐藏在业务中的安全问题。
1.1 业务层中常见的安全问题Checklist
用户登陆、用户注册、找回密码等功能中密码信息未采用加密算法。
用户登陆、用户注册、找回密码等功能中
未采用验证码
或验证码未做安全刷新
(未刷新Session中验证码的值)导致的撞库、密码爆破漏洞。找回密码逻辑问题(如:可直接跳过验证逻辑直接发包修改)。
手机、邮箱验证、找回密码等涉及到动态验证码等功能
未限制验证码失败次数
、验证码有效期
、验证码长度过短
导致的验证码爆破问题。充值、付款等功能调用了第三方支付系统未正确校验接口(如:1分钱买IPhone X)。
后端采用了
ORM框架
更新操作时因处理不当导致可以更新用户表任意字段(如:用户注册、用户个人资料修改时可以直接创建管理员账号
或其他越权修改操作)。后端采用了
ORM框架
查询数据时因处理不当导致可以接收任何参数导致的越权查询、敏感信息查询等安全问题。用户中心转账、修改个人资料、密码、退出登陆等功能未采用验证码或Token机制导致存在CSRF漏洞。
后端服务过于信任前端,重要的参数和业务逻辑只做了前端验证(如:文件上传功能的文件类型只在JS中验证、后端不从Session中获取用户ID、用户名而是直接接收客户端请求的参数导致的越权问题)。
用户身份信息认证逻辑问题(如:后台系统自动登陆时直接读取Cookie中的用户名、用户权限不做验证)。
重要接口采用ID自增、ID可预测并且云端未验证参数有效性导致的越权访问、信息泄漏问题(如:任意用户订单越权访问)。
条件竞争问题,某些关键业务(如:用户转账)不支持并发、分布式部署时不支持锁的操作等。
重要接口未限制请求频率,导致短信、邮件、电话、私信等信息轰炸。
敏感信息未保护,如Cookie中直接存储用户密码等重要信息。
弱加密算法、弱密钥,如勿把Base64当成数据加密方式、重要算法密钥采用弱口令如
123456
。后端无异常处理机制、未自定义50X错误页面,服务器异常导致敏感信息泄漏(如:数据库信息、网站绝对路径等)。
使用DWR框架开发时前后端不分漏洞(如:DWR直接调用数据库信息把用户登陆逻辑直接放到了前端来做)。
2. 代码实现常见问题
代码审计的核心是寻找代码中程序实现的安全问题,通常我们会把代码审计的重心放在SQL注入、文件上传、命令执行、任意文件读写等直接威胁到服务器安全的漏洞上,因为这一类的漏洞杀伤力极大也是最为致命的。
###2.1 代码实现中常见的安全问题Checklist
任意
文件读写
(文件上传、文件下载)、文件遍历
、文件删除
、文件重命名
等漏洞SQL注入漏洞
XXE(XML实体注入攻击)
表达式执行(SpEL、OGNL、MVEL2、EL等)
系统命令执行漏洞(ProcessBuilder)
反序列化攻击(ObjectInputStream、JSON、XML等)
Java反射攻击
SSRF攻击
Java代码审计--checklist相关推荐
- 【网络安全】JAVA代码审计—— XXE外部实体注入
一.WEB安全部分 想要了解XXE,在那之前需要了解XML的相关基础 二.XML基础 2.1 XML语法 所有的XML元素都必须有一个关闭标签 XML标签对大小写敏感 XML必须正确嵌套 XML 文档 ...
- java代码审计文章集合
0x00 前言 java代码审计相关文章整理,持续更新. 0x01 java环境基础 搭建Java Web开发环境 配置IDEA编辑器开发java web,从0创建项目 IDEA动态调试 IDEA配置 ...
- java代码审计_Java代码审计入门篇
本期斗哥带来Java代码审计的一些环境和工具准备. Java这个语言相对于PHP来说还是比较复杂的,所以一开始接触到Java源码审计的时候会遇到一些关于环境和配置上一些困难,本文记录斗哥在开始去审计J ...
- java代码审计_Java代码审计| Spring框架思路篇
Java的WEB框架是Java进阶课程,当要进行Spring的漏洞分析,要有一定的Java代码知识储备. Java后端标准的学习路线:JavaSE->JavaEE->Java Web框架 ...
- java代码审计----win10安装docker
开始看<java代码审计> 第一先安装jdk 多版本jdk共存 安装docker win10安装docker docker官网下载desktop 安装后,docker启动不起来,小鲸鱼图标 ...
- 浅析Java代码审计中的SQL注入漏洞
浅析Java代码审计中的SQL注入漏洞 1.注入漏洞简介 2.SQL注入漏洞简介 3.JDBC拼接不当造成SQL注入 第一关:使用Statement 第二关:使用PrepareStatement 4. ...
- JAVA代码审计之WebGoat靶场SQL注入
文章目录 前言 WebGoat IDEA部署靶场 No.1 回显注入 No.2 布尔盲注 No.3 Order by 代审技巧 SQL注入挖掘 SQL注入防御 Fortify体验 总结 前言 为了从自 ...
- java代码审计中的一些常见漏洞及其特征函数
文章来源:https://xz.aliyun.com/t/1633 最近在先知上看到之前有篇关于java代码审计的文章总结的蛮好,记录以下特征函数,方便查阅,同时自己也会将在平时代码审计过程中积累的函 ...
- 文末送靶场邀请码 | 怎样快速入门Java代码审计?(一问一答汇总)
代码审计(Code Audit)是一种以发现安全漏洞.程序错误和违反程序规范为目标的源代码分析. 根据2020年10月份的CNVD安全月报显示,Web应用程序漏洞占比34%,显而易见Web应用程序仍然 ...
最新文章
- vs2010 使用vs online账号 需要安装的插件
- Python 技术篇-python生成html源码功能实现演示,html代码自动生成技巧,列表生成式的灵活应用
- no router configuration contained in extension component metadata
- Zju2112 Dynamic Rankings(树状数组套可持久化权值线段树)
- ren命令linux,Linux mren命令
- JavaFX 已从 JDK 中独立拆分,早期预览版开放下载
- 顺德职业技术学院计算机专业录取线,顺德职业技术学院录取分数线2021是多少分(附历年录取分数线)...
- 使用sngrep跟踪分析sip信令
- 深度学习环境配置:2080Ti+Ubuntu16.04+CUDA10+cuDNN7.3+TensorFlow-gpu1.12
- 四种方法解决JumpGame
- python tokenize_model_如何将关键字放入NLTK tokenize中?
- 并发编程之CompletableFuture全网最细最全用法(一)
- 华为收入超过阿里腾讯总和!等等,先把鸿蒙说清楚!
- Apple watch ,小米微信通知
- LPC1768IAP(详解,有上位机)
- sklearn多分类任务自定义cv交叉验证scoring
- 嵌入式Python环境
- 【报告分享】2020全球时尚IP白皮书-CBNData.(附下载)
- 手机实名制实施起来难度很大
- 华为U8860开启手机的log日志输出功能