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 攻击方式
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
修改安全级别
查看源代码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QF6G7v8i-1619945083950)(https://gitee.com/Fzilin/image-typora2/raw/master/image-20210414194654615.png)]
代码中没有任何的过滤。参数直接传递到了$pass_new
和$pass_conf
中并带入数据库中执行。但是带入数据库中执行时通过 mysql 的函数对 sql 语句进行了过滤,不过并不影响我们正常的修改密码操作。
2.构造URL 链接
修改浏览器数据,将这个数据提交
将抓到的包 发送到中继器里面
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
安全级别改为low
让用户访问我们构造的恶意链接 http://192.168.186.128/DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#
我们再次登录DVWA 发现密码被更改了http://192.168.186.128/DVWA-master/login.php
4.构造恶意链接
构造恶意链接 诱导用户点击 访问kali
┌──(root