freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Java代码审计之CSRF
2022-09-01 09:25:29
所属地 福建省

漏洞原理

CSRF跨站请求伪造(Cross-site request forgery),当某个接口没有设置CSRF验证,点击了别人恶意的链接,可能会造成对这个接口发送相应的数据,造成某个数据被更改。
图片.png

GET型

利用十分简单,构造一个IMG标签,加载的时候即可发送一个恶意get请求(可以和xss联合使用,也可以是有钓鱼,诱骗的方式让其点击get请求链接)

<img src=https://xxx.cn/csrf?xx=11 />

POST型

controller/CSRF.java

@GetMapping("/")
public String index() {
	return "form";
}
@PostMapping("/post")
@ResponseBody
public String post() {
	return "CSRF passed.";
}

前端提交数据页面

<div>
	<!--Spring 3.2+和 Thymeleaf 2.1+可以通过这条语句自动生成一个csrf_token来验证-->
	<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}" /><!--使用spring中内置token-->
	</form>
</div>

不提交token验证上面防护
这个字段就是用来表单提交,POST请求验证的csrf_token,后端生成的,提交后会和后端校验。如果我们直接通过POSTMAN或者其他post请求,缺少了csrf的token是无法完成的。如图
图片.png
加了token可以提交数据
图片.png
审计前端html、jsp等前端页面,在提交表单时是否有token(隐藏属性)

# Java代码审计 # JAVA安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者