CSRF漏洞概述
CSRF是OWASP TOP10报告中危害较高的漏洞。
Cross-site request forgery跨站请求伪造,(也称为一次性点击攻击)是一种对网站的恶意利用。一句话理解:攻击者借着你的cookie让你亲自完成attacker布置的操作,且你并不知道。
条件:目标站点要存在漏洞,用户刚好登录该网站,用户必须点击钓鱼链接。
CSRF 和XSS的区别
1、XSS是盗取用户的COOKIE,从而进行下一步的攻击。CSRF直接完成对受信任网站的攻击。
2、XSS攻击条件比较简单,而完成一次CSRF攻击需要很多前置条件。
3、XSS是实现CSRF诸多途径其中的一种,一般这样的结合叫做XSRF。
4、XSS攻击很多时候是获取信息,并不需要知道其他用户页面的代码和数据包。CSRF是代替用户执行操作,需要构造出目标网站的url结构。
测试步骤
1、对目标网站进行踩点,对增删的地方进行标记,并观察其逻辑。比如修改管理员账号时,并不需要验证旧密码;提交留言的动作,关注XX微博的动作等等。
2、提交操作(get/post),观察HTTP头部的referer(HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器请求是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。),并验证后台是否有referer限制。比如使用抓包工具抓包,然后修改/删除referer后,重放,看是否可以正常提交。观察有无token,(token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露))。
3、确认cookie的有效性(欺骗,或目标网站存在漏洞)。如虽然退出或关闭了浏览器,但session并没有过期。
利用流程
1、直接发送链接(连接太长可以短连接压缩一下)。
2、诱骗用户点击。
3、会弹出提示。
缺点:用户容易发现。
改进利用流程:结合XSS,形成XSRF
1、用户触发XSS漏洞(最好是存储型)
2、XSS漏洞执行script,比如<script src=''修改密码的连接''></script>
前提:需要用户访问概率高的网站上挖到XSS漏洞,或者欺骗用户访问钓鱼站点。
网友评论