java代码审计-CSRF
0x01 前言
CSRF跨站请求伪造(Cross-site request forgery),当某个接口没有设置CSRF验证,点击了别人恶意的链接,可能会造成对这个接口发送相应的数据,造成某个数据被更改。常发生在转帐、修改密码等敏感操作中。
0x02 GET型
利用十分简单,构造一个IMG标签,加载的时候即可发送一个恶意
get请求(可以和xss联合使用,也可以是有钓鱼,诱骗的方式让其
点击get请求链接)
<img src=https://xxx.cn/csrf?xx=11 />
0x03 POST型
controller/CSRF.java
@GetMapping("/")
public String index() {
return "form";
}
@PostMapping("/post")
@ResponseBody
public String post() {
return "CSRF passed.";
}
前端提交数据页面(spring框架中调用_csrf.parameterName方法可以有效防止csrf)
<div>
<!-- th:action with Spring 3.2+ and Thymeleaf 2.1+ can automatically force Thymeleaf to include the CSRF token as a hidden field -->
<!-- <form name="f" th:action="@{/csrf/post}" method="post"> -->
<form name="f" action="/csrf/post" method="post">
<input type="text" name="input" />
<input type="submit" value="Submit" />
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" />
</form>
</div>
正常提交携带token值则能够通过请求
不提交token验证上面防护,这个字段就是用来表单提交,POST请求验证的csrf_token,后端生成的,提交后会和后端校验。如果我们直接通过POSTMAN或者其他post请求,缺少了csrf的token是无法完成的。如图
0x04 审计方法
审计前端html、jsp等前端页面,在提交表单时是否有token(隐藏属性)
java代码审计-CSRF的更多相关文章
- ref:JAVA代码审计的一些Tips(附脚本)
ref:https://xz.aliyun.com/t/1633/ JAVA代码审计的一些Tips(附脚本) 概述 本文重点介绍JAVA安全编码与代码审计基础知识,会以漏洞及安全编码示例的方式介绍JA ...
- Java代码审计-铁人下载系统
初学 java 代码审计,跟着表哥们脚步,走一遍审计流程,就选了个没有使用 Java 框架的 java 系统,作为入门. 目的是为了熟悉代码审计流程,寻找漏洞的思路,入门记录. 准备工作 为了验证审计 ...
- java代码审计的点
java代码审计的点 组件的审计 首先看pom.xml查看第三方组件和第三方组件的版本 常用的第三方组件: 第三方组件 漏洞类型 组件漏洞版本 log4j2 远程代码执行 Apache log4j2 ...
- Java解决CSRF问题
项目地址: https://github.com/morethink/web-security-csrf CSRF是什么? CSRF(Cross-site request forgery),中文名称: ...
- java代码审计中的一些常见漏洞及其特征函数
文章来源:https://xz.aliyun.com/t/1633 最近在先知上看到之前有篇关于java代码审计的文章总结的蛮好,记录以下特征函数,方便查阅,同时自己也会将在平时代码审计过程中积累的函 ...
- Java代码审计入门篇
作者:i春秋核心白帽yanzmi 原文来自:https://bbs.ichunqiu.com/thread-42149-1-1.html 本期斗哥带来Java代码审计的一些环境和工具准备. Java这 ...
- java代码审计文章集合
0x00 前言 java代码审计相关文章整理,持续更新. 0x01 java环境基础 搭建Java Web开发环境 配置IDEA编辑器开发java web,从0创建项目 IDEA动态调试 ...
- [代码审计]某租车系统JAVA代码审计[前台sql注入]
0x00 前言 艰难徘徊这么久,终于迈出第一步,畏畏缩缩是阻碍大多数人前进的绊脚石,共勉. 系统是租车系统,这个系统是Adog师傅之前发在freebuf(http://www.freebuf.com/ ...
- Java代码审计连载之—SQL注入
前言近日闲来无事,快两年都没怎么写代码了,打算写几行代码,做代码审计一年了,每天看代码都好几万行,突然发现自己都不会写代码了,真是很DT.想当初入门代码审计的时候真是非常难,网上几乎找不到什么java ...
- 【代码审计】JAVA代码审计
分享一些Java安全相关文章,其中大部分都涉及到代码的分析与审计. 大家总是在找Java的代码审计的文章,但好像很多人选择性失明. 其实Java没有和PHP一样的简单,所以你觉得你看到的文章不是入门级 ...
随机推荐
- js判断变量数据类型typeof、instanceof、Object.prototype.toString.call()、 constructor
JavaScript有4种方法判断变量的类型,分别是typeof.instanceof.Object.prototype.toString.call()(对象原型链判断方法). constructor ...
- Docker基本命令之 容器运行命令参数
容器命令行参数介绍: docker run:顾名思义就是运行一个Docker 以下是具体参数介绍: -a: stdin:指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项 - ...
- 基于LabVIEW的计时器
前言: 最近有人问我,怎么实现一个计时器计时,可以做到启动.停止.重新开始等功能,好久没关于LABVIEW的博文,借这个写个计时器相关内容. 一.Labview时间计时器介绍: 这里采用时间计时器计算 ...
- Spring系列之资源-11
目录 `Resource` 内置`Resource`实现 `UrlResource` `ClassPathResource` `FileSystemResource` `ServletContextR ...
- Linux /proc 目录
/proc 目录 /proc 文件目录是一个伪文件,它只存在于系统内存中,而不占用外存空间.它以文件系统的方式为用户提供访问内核数据的操作接口.目录下主要包含进程和状态的信息. /proc 下文件含义 ...
- 学习JavaScript第五周
MySQL基本内容: 访问:2种 1.图形化界面 - 傻瓜式 要求:同时打开apache和mysql 访问:127.0.0.1:端口号/phpmyadmin localhost:端口号 ...
- UG二次开发-CAM-执行方式
以C#开发为例,通常先用[操作记录]功能录制关键代码,得到一个.cs文件. (1)可以直接使用[播放操作记录]的方式执行该.cs文件. (2)可以建立一个C#的类库工程,将上述.cs文件加载进去,添加 ...
- 自动备份一个TXT文件里面的SVN库
之前的项目都是使用SVN进行代码管理,万一SVN挂了,,,项目全部爆炸,,,所以定时备份还是有必要的,,,虽然现在都不用SVN了,,,记录一下自己的备份方法 --------------------- ...
- leedcode 刷题-V2
leetcode 字符串类 数组类 链表类 树类 二叉树类 图类 数学类 数据结构类 1. 稀疏相似度 (倒排索引) (https://leetcode-cn.com/problems/sparse- ...
- 各种系统名词解释:MIS 、ERP、CRM、OA
MIS :信息系统.针对企业使用的软件,都可以叫做MIS系统. (管理信息系统--Management Information System)系统 ,是一个由人.计算机及其他外围设备等组成的能进行信息 ...