CSRF 伪造用户请求攻击

CSRF 伪造用户请求攻击

文章目录

0x01 CSRF 原理

1.CSRF 漏洞的定义

CSRF (Cross-site request forgery,跨站请求伪造)也被称为 One Click Attack(单键攻击)或者 Session Riding,通常缩写为 CSRF或者 XSRF

2.XSS与 CSRF的区别

1)XSS利用用户对站点的信任,盗取 Cookie;

2)CSRF 通过伪装成受信任用户请求,利用站点对已经身份认证的信任,访问网站,

与XSS攻击相比,CSRF 攻击往往不太流行(因此对其进行防护的资源也想当稀少)和难以防范所以被认为比XSS更具危险性

3.CSRF 的简单理解

假设用户已经保存某网站的登录信息,下次登录不需要认证,此时黑客构造一个访问该站点的链接并添加如:修改密码、转账等操作的参数、用户点击链接后,黑客构造的参数被执行。这就是最简单的 CSRF 攻击方式

CSRF 伪造用户请求攻击

4.CSRF 实验环境

PC 名称 IP 地址
localhost DVWA 服务器 192.168.186.128
Kali Hacker 192.168.186.130
win7 被攻击方 192.168.186.131

0x02 基于 DVWA 的 low 级别演示 CSRF 攻击

1.查看源代码

在kali中用火狐访问 http://192.168.186.128/DVWA-master/login.php 登录 DVWA 用户名:admin 密码:password

修改安全级别

CSRF 伪造用户请求攻击

查看源代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QF6G7v8i-1619945083950)(https://gitee.com/Fzilin/image-typora2/raw/master/image-20210414194654615.png)]

代码中没有任何的过滤。参数直接传递到了$pass_new$pass_conf中并带入数据库中执行。但是带入数据库中执行时通过 mysql 的函数对 sql 语句进行了过滤,不过并不影响我们正常的修改密码操作。

CSRF 伪造用户请求攻击

2.构造URL 链接

修改浏览器数据,将这个数据提交

CSRF 伪造用户请求攻击

将抓到的包 发送到中继器里面

CSRF 伪造用户请求攻击

GET /DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change HTTP/1.1

红色部分是修改密码传递的参数

我们将URL地址和字符串拼接在一起

http://192.168.186.128/DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

只要用户点击这个链接,用户的密码就会被改为 123456

3.验证CSRF 攻击

在win7上使用chrome 访问链接 http://192.168.186.128/DVWA-master/login.php

用户名 smithy 密码 password

CSRF 伪造用户请求攻击

安全级别改为low

CSRF 伪造用户请求攻击

让用户访问我们构造的恶意链接 http://192.168.186.128/DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

CSRF 伪造用户请求攻击

我们再次登录DVWA 发现密码被更改了http://192.168.186.128/DVWA-master/login.php

CSRF 伪造用户请求攻击

4.构造恶意链接

构造恶意链接 诱导用户点击 访问kali

┌──(root
上一篇:模拟登录Django csrf验证 及 django_cas_server 模块验证


下一篇:高版本Jenkins关闭跨站请求伪造保护(CSRF)