跨站点请求伪造_十大常见web漏洞——跨站点请求伪造(CSRF)

2023-05-16

CSRF介绍

什么是CSRF呢?我们直接看例子。

https://mp.toutiao.com/profile_v3/graphic/preview?do=delete&pgc_id=6829574701128352260

这个URL是头条删除pgc_id为6829574701128352260的一篇文章的连接,通过执行这个URL用户就可以删除这篇文章。

首先攻击者会构造一个页面:

https://mp.toutiao.com/CSRF.html

其内容为:

preview?do=delete&pgc_id=6829574701128352260

使用了一个标签,地址指向了删除头条文章的链接。

攻击者会诱使头条主去访问这个页面:

029b3d589c4d074429826975da168df7.png

执行CSRF攻击

该用户看到了“头条君找不到你想要的页面”的错误提示,回头再看看头条内容管理:

4e33daaf009f04f1e0f8f651c550c37b.png

文章被删除了~~

发现原来存在的“十大常见web漏洞——跨站点请求伪造(CSRF)”文章已经被删除了!呵呵~~

这是因为头条主在访问“https://mp.toutiao.com/CSRF.html”时,执行了CSRF.html页面中的命令,删除了文章。

CSRF的防御

验证机制

当头条主在访问“https://mp.toutiao.com/CSRF.html”时增加验证确认机制:

127c409584d355705e6a247722a107e2.png

删除确认

Referer Check

我们在之前的文章中讲过HTTP请求头部的一些可修改的值,就包括Referer值:

57856c0036a98fafcc749be6921d8a0f.png

HTTP请求头部

就是确认这个值与Host值是否一致。

操作参数加密

攻击者为什么会构造这个链接:https://mp.toutiao.com/profile_v3/graphic/preview?do=delete&pgc_id=6829574701128352260,因为他知道参数“do=delete&pgc_id=6829574701128352260”是删除操作,如果将这个参数加密,攻击者就不知道具体操作是什么了,也就无法攻击了。

没有网络安全,就没有国家安全!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跨站点请求伪造_十大常见web漏洞——跨站点请求伪造(CSRF) 的相关文章

随机推荐