目录
一、定义
二、与XSS的区别
三、攻击要点
四、实战
一、定义
CSRF (Cross-site request forgery,跨站请求伪造),攻击者利用服务器对用户的信任,从而欺骗受害者去服务器上执行受害者不知情的请求。在CSRF的攻击场景中,攻击者会伪造一个请求(一般为链接),然后欺骗用户点击,用户一但点击,整个攻击也就完成了,所以CSRF攻击也被称为“one click”攻击。
二、与XSS的区别
(1)XSS是利用用户对服务端的信任,CSRF是利用服务端对用户的信任
XSS的攻击,主要是让脚本在用户浏览器上执行,服务器端仅仅只是脚本的载体,本身服务器端不会受到攻击利用
CSRF攻击,攻击者会伪造一个用户发送给服务器的正常链接,其核心主要是和已登录(已认证)的用户去发请求。CSRF不需要知道用户的Cookie,CSRF自己并不会发请求给服务器,一切交给用户
(2)XSS是将恶意代码植入被攻击的服务器,利用用户对服务器的信任完成攻击,而CSRF是攻击者预先在自己的服务器页面植入恶意代码,诱使受害者访问,在受害者不知情的情况下执行了恶意代码,而攻击服务器是独立的域名或IP地址。
三、攻击要点
(1)服务器没有对操作来源进行判断,如IP、Referer等
(2)受害者处于登录状态,但是攻击者无法拿到Cookie
(3)攻击者需要找到一条可以修改或获取敏感信息的请求
四、实战
实验环境:一个windows(受害者),一个kali(攻击者)
两个都开启了apache服务,且浏览器页面可以正常访问
实验网站使用dvwa靶场的CSRF模块,等级为low
话不多说,实验开始
登录的用户名(admin)密码(password)都为默认
登录后来到CSRF模块,可以看到让直接输入新密码
开启burp抓包,伪造一个html页面
抓到的包可以看到输入的新密码
点击右键,构造一个CSRF poc
根据构造好的html放入攻击机的网页目录下
kali的apache默认目录在/var/www/html
在此目录下创建一个名为csrf.html的文件,并粘贴文本
然后去诱导受害者在dvwa登录的情况下点击该链接
攻击者服务器的链接(http://192.168.43.148/csrf.html)
这里的页面可以做优化,什么请为我们战队投票,什么点击观看视频,诱导用户点击按钮即可
当用户点击按钮之后就跳转到了这个页面
显示着Password Changed,密码修改成功
注销后再用原密码尝试登录一下
登录失败,使用攻击者修改的密码即可登录
至此攻击完成,有错误的地方请指正,感谢查看!