CSRF--花式绕过Referer技巧

Posted 农夫安全团队

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSRF--花式绕过Referer技巧相关的知识,希望对你有一定的参考价值。

CSRF--花式绕过Referer技巧

CSRF遇到Referer绕过的情况,有条件限制,不一定所有的Refere验证就可以绕过

1.referer条件为空条件时


解决方案:

    例:

    1.利用data:协议

<html>
    <body>
       <iframe >
    </body>
</html>

    bese64编码 解码即可看到代码

    2.利用https协议

    https向http跳转的时候Referer为空

    拿一个https的webshell

    <iframe >

    attack.php写上CSRF攻击代码


2.判断Referer是某域情况下绕过


   



3.判断referer是否存在某关键字


   

referer判断存在不存在google.com这个关键词

在网站新建一个google.com目录 把CSRF存放在google.com目录,即可绕过


4.判断referer是否含有某域名


判断了Referer开头是否以126.com以及126子域名  不验证根域名为126.com 那么我这里可以构造子域名x.126.com.xxx.com作为蠕虫传播的载体服务器,即可绕过。


5.csrf防御


CSRF漏洞防御主要可以从三个层面进行,即服务端的防御、用户端的防御和安全设备的防御。


1、 服务端的防御

1.1 验证HTTP Referer字段


CSRF攻击之所以能够成功,是因为攻击者可以伪造用户的请求,该请求中所有的用户验证信息都存在于Cookie中,因此攻击者可以在不知道这些验证信息的情况下直接利用用户自己的Cookie来通过安全验证。由此可知,抵御CSRF攻击的关键在于:在请求中放入攻击者所不能伪造的信息,并且该信息不存在于Cookie之中。鉴于此,系统开发者可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。


1.3 在HTTP头中自定义属性并验证


2、 其他防御方法

1. CSRF攻击是有条件的,当用户访问恶意链接时,认证的cookie仍然有效,所以当用户关闭页面时要及时清除认证cookie,对支持TAB模式(新标签打开网页)的浏览器尤为重要。


2. 尽量少用或不要用request()类变量,获取参数指定request.form()还是request. querystring (),这样有利于阻止CSRF漏洞攻击,此方法只不能完全防御CSRF攻击,只是一定程度上增加了攻击的难度。


最后

本文转自csdn

(https://www.cnblogs.com/Fluorescence-tjy/p/6100310.html),

由农夫安全负责排版发布。我们尊重每一位原创作者,文章内容仅用于技术分享,如有侵权可联系编辑删除。


以上是关于CSRF--花式绕过Referer技巧的主要内容,如果未能解决你的问题,请参考以下文章

绕过referer校验的一些小知识

新浪微博 CSRF & ClickJacking 蠕虫

[防御 CSRF 的策略]验证 HTTP Referer 字段

绕过Referer和Host检查

CSRF 验证失败 - 当主机安全时,Referer 不安全

csrf-bugbank咖面Flx