Java Web安全审计实战

本文深入探讨了Java Web应用的安全审计,包括代码审计Checklist,强调业务层和代码实现的安全问题,如密码处理、验证码、文件操作、SQL注入、XSS等。同时,通过进销业务管理系统、购物网站和OA系统三个案例,展示了实际的审计过程,揭示了如Shiro权限绕过、验证码重复利用、SQL注入、Fastjson和Log4j反序列化漏洞等问题,以及如何进行黑盒验证和漏洞利用。此外,还提到了不安全的HTTP请求、Fortify扫描结果分析等其他安全问题。
摘要由CSDN通过智能技术生成

一、Java代码审计-Checklist

通常我喜欢把代码审计的方向分为业务层安全问题、代码实现和服务架构安全问题,。

1. 业务层安全常见问题

业务层的安全问题集中在业务逻辑和越权问题上,我们在代码审计的过程中尽可能的去理解系统的业务流程以便于发现隐藏在业务中的安全问题。

业务层中常见的安全问题Checklist

1.用户登陆、用户注册、找回密码等功能中密码信息未采用加密算法。

2.用户登陆、用户注册、找回密码等功能中未采用验证码或验证码未做安全刷新(未刷新Session中验证码的值)导致的撞库、密码爆破漏洞。

3.找回密码逻辑问题(如:可直接跳过验证逻辑直接发包修改)。

4.手机、邮箱验证、找回密码等涉及到动态验证码等功能未限制验证码失败次数、验证码有效期、验证码长度过短导致的验证码爆破问题。

5.充值、付款等功能调用了第三方支付系统未正确校验接口(如:1分钱买IPhone X)。

6.后端采用了ORM框架更新操作时因处理不当导致可以更新用户表任意字段(如:用户注册、用户个人资料修改时可以直接创建管理员账号或其他越权修改操作)。

7.后端采用了ORM框架查询数据时因处理不当导致可以接收任何参数导致的越权查询、敏感信息查询等安全问题。

8.用户中心转账、修改个人资料、密码、退出登陆等功能未采用验证码或Token机制导致存在CSRF漏洞。

9.后端服务过于信任前端,重要的参数和业务逻辑只做了前端验证(如:文件上传功能的文件类型只在JS中验证、后端不从Session中获取用户ID、用户名而是直接接收客户端请求的参数导致的越权问题)。

10.用户身份信息认证逻辑问题(如:后台系统自动登陆时直接读取Cookie中的用户名、用户权限不做验证)。

11.重要接口采用ID自增、ID可预测并且云端未验证参数有效性导致的越权访问、信息泄漏问题(如:任意用户订单越权访问)。

12.条件竞争问题,某些关键业务(如:用户转账)不支持并发、分布式部署时不支持锁的操作等。

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wespten

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值