<返回更多

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

2020-05-25    
加入收藏

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

其内容为:

<img src="https://mp.toutiao.com/profile_v3/graphic/preview?do=delete&pgc_id=6829574701128352260" />

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

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

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

执行CSRF攻击

 
 
 

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

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

文章被删除了~~

 
 
 

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

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

CSRF的防御

验证机制

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

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

删除确认

 
 
 

Referer Check

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

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

HTTP请求头部

 
 
 

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

操作参数加密

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

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

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>