一、Java代码审计-Checklist
通常我喜欢把代码审计的方向分为业务层安全问题、代码实现和服务架构安全问题,。
1. 业务层安全常见问题
业务层的安全问题集中在业务逻辑和越权问题上,我们在代码审计的过程中尽可能的去理解系统的业务流程以便于发现隐藏在业务中的安全问题。
业务层中常见的安全问题Checklist
1.用户登陆、用户注册、找回密码等功能中密码信息未采用加密算法。
2.用户登陆、用户注册、找回密码等功能中未采用验证码或验证码未做安全刷新(未刷新Session中验证码的值)导致的撞库、密码爆破漏洞。
3.找回密码逻辑问题(如:可直接跳过验证逻辑直接发包修改)。
4.手机、邮箱验证、找回密码等涉及到动态验证码等功能未限制验证码失败次数、验证码有效期、验证码长度过短导致的验证码爆破问题。
5.充值、付款等功能调用了第三方支付系统未正确校验接口(如:1分钱买IPhone X)。
6.后端采用了ORM框架更新操作时因处理不当导致可以更新用户表任意字段(如:用户注册、用户个人资料修改时可以直接创建管理员账号或其他越权修改操作)。
7.后端采用了ORM框架查询数据时因处理不当导致可以接收任何参数导致的越权查询、敏感信息查询等安全问题。
8.用户中心转账、修改个人资料、密码、退出登陆等功能未采用验证码或Token机制导致存在CSRF漏洞。
9.后端服务过于信任前端,重要的参数和业务逻辑只做了前端验证(如:文件上传功能的文件类型只在JS中验证、后端不从Session中获取用户ID、用户名而是直接接收客户端请求的参数导致的越权问题)
本文深入探讨了Java Web应用的安全审计,包括代码审计Checklist,强调业务层和代码实现的安全问题,如密码处理、验证码、文件操作、SQL注入、XSS等。同时,通过进销业务管理系统、购物网站和OA系统三个案例,展示了实际的审计过程,揭示了如Shiro权限绕过、验证码重复利用、SQL注入、Fastjson和Log4j反序列化漏洞等问题,以及如何进行黑盒验证和漏洞利用。此外,还提到了不安全的HTTP请求、Fortify扫描结果分析等其他安全问题。
订阅专栏 解锁全文

1010

被折叠的 条评论
为什么被折叠?



