java代码审计之CSRF

介绍

这种漏洞一般不需要通过代码审计来发掘直接黑盒最方便。跨站请求伪造(Cross-Site Request Forgery, CSRF)是一种使已登录用户在不知情的情况下执行
某种动作的攻击。因为攻击者看不到伪造请求的响应结果,所以 CSRF 攻击主要用来执行动作,而非窃取
用户数据。当受害者是一个普通用户时, CSRF 可以实现在其不知情的情况下转移用户资金、发送邮件等操
作;但是如果受害者是一个具有管理员权限的用户时 CSRF 则可能威胁到整个 Web 系统的安全。

CSRF原理

漏洞示例

由于开发人员对 CSRF 的了解不足,错把“经过认证的浏览器发起的请求”当成“经过认证的用户发起的请
求”,当已认证的用户点击攻击者构造的恶意链接后就“被”执行了相应的操作。例如,一个博客删除文章
是通过如下方式实现的:
GET http://blog.com/article/delete.jsp?id=102
当攻击者诱导用户点击下面的链接时,如果该用户登录博客网站的凭证尚未过期,那么他便在不知情的情
况下删除了 id 为 102 的文章,简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本
身是用户自愿发出的。

审计策略

此类漏洞一般都会在框架中解决修复,所以在审计 csrf 漏洞时。首先要熟悉框架对 CSRF 的防护方案,
一般审计时可查看增删改请求重是否有 token、 formtoken 等关键字以及是否有对请求的 Referer 有进
行校验。
手动测试时,如果有 token 等关键则替换 token 值为自定义值并重放请求,如果没有则替换请求
Referer 头为自定义链接或置空。重放请求看是否可以成功返回数据从而判断是否存在 CSRF 漏洞。

修复方案

Referer 校验,对 HTTP 请求的 Referer 校验,如果请求 Referer 的地址不在允许的列表中,则拦截
请求。
Token 校验,服务端生成随机 token,并保存在本次会话 cookie 中,用户发起请求时附带 token 参
数,服务端对该随机数进行校验。如果不正确则认为该请求为伪造请求拒绝该请求。
Formtoken 校验, Formtoken 校验本身也是 Token 校验,只是在本次表单请求有效。
对于高安全性操作则可使用验证码、短信、密码等二次校验措施
增删改请求使用 POST 请求
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java代码审计中常见的问题包括: 1. SQL注入:当程序没有对输入数据进行验证或过滤时,攻击者可以通过输入恶意SQL语句来执行非法的数据库操作,例如删除、修改、查询等。在Java代码审计中,需要检查程序是否正确的进行输入验证和SQL语句过滤。 2. XSS攻击:当程序没有对输出数据进行转义或过滤时,攻击者可以通过在网页中注入恶意脚本来获取用户的敏感信息或执行非法操作。在Java代码审计中,需要检查程序是否正确的进行输出数据过滤和转义。 3. CSRF攻击:当程序没有正确的进行CSRF攻击防护时,攻击者可以通过伪造用户的请求来执行非法操作,例如修改用户密码、发送恶意邮件等。在Java代码审计中,需要检查程序是否正确的进行CSRF攻击防护。 4. 权限控制:当程序没有正确的进行权限控制时,攻击者可以通过越权访问来获取敏感信息或执行非法操作。在Java代码审计中,需要检查程序是否正确的进行权限控制。 5. 密码管理:当程序没有正确的处理密码时,攻击者可以通过猜测、撞库等方式来获取用户的密码。在Java代码审计中,需要检查程序是否正确的处理密码,包括密码的存储、传输、重置等。 6. 不安全的函数调用:当程序使用不安全的函数时,攻击者可以利用这些函数来执行非法操作,例如执行任意命令、读取敏感文件等。在Java代码审计中,需要检查程序是否使用了不安全的函数调用。 7. 日志记录:当程序没有正确的记录日志时,攻击者可以利用这些漏洞来进行攻击或隐藏攻击痕迹。在Java代码审计中,需要检查程序是否正确的记录了日志。 8. 安全设置:当程序没有正确的进行安全设置时,攻击者可以利用这些漏洞来进行攻击或绕过安全控制。在Java代码审计中,需要检查程序的安全设置,确保程序的安全策略符合最佳实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值