CSRF漏洞小记

tech2024-04-12  64

CSRF漏洞小记

实例:2007年Gmail的CSRF漏洞

https://www.davidairey.com/google-Gmail-security-hijack/


#什么是CSRF漏洞 Cross-site Request Forgery 跨站请求伪造 攻击者盗用了你的身份,以你的名义发送恶意请求 CSRF能够做的事情:以你的名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账


#CSRF漏洞利用条件

–(服务器对客户端的信任)用户已获取服务器认证,登陆网站,并在本地生成cookie(已进行网页认证)

–攻击者(或黑客)提供的恶意链接,受害者必须在不登出存在漏洞的网站,同时使用一个浏览器打开(可通过社工的方法)

–网站除了验证cookie,没有特殊验证方法


#CSRF漏洞检测方法

–使用OWASP CSRFTester工具进行检测。它是OWASP推出的CSRF半自动化软件,省去了CSRF最繁琐的过程-------代码构造。 使用代理抓取我们在浏览器中访问过的所有的连接及表单等信息,修改相应的表单等信息,重新提交,如果测试请求成功被网站服务器接受,则说明存在CSRF漏洞。

–使用burpsuite对CSRF漏洞进行检测。 首先抓取认为可能存在CSRF漏洞 的请求数据包,然后查看是否存 在token或referer验证。 如果不存在验证则可能存在CSRF 漏洞,此时可使用burpsuite的 Engagement tools 去生成 CSRF 漏洞的PoC,去验证CSRF 漏洞。


#常见的CSRF攻击类型

–GET类型: 这种类型的CSRF一般是由于程序员安全意识不强造成的。GET类型的CSRF利用非常简单,只需要一个HTTP请求:

<img src=http://wooyun.org/csrf?xx=11 />

在访问含有这个img的页面后,成功向http://wooyun.org/csrf?xx=11发出了一次HTTP请求。所以,如果将该网址替换为存在GET型CSRF的地址,就能完成攻击了。 –POST类型: 这种类型的CSRF危害没有GET型的大,利用起来通常使用的是一个自动提交的表单:

<form action=http://wooyun.org/csrf.php method=POST> <input type=“test” name=“xx” value=11/> </form> <script> document.forms[0].submit(); </script>

访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作


#XSS与CSRF区别

CSRF:需要用户先登录网站A,获取 cookie

XSS:不需要登录

CSRF:是利用网站A本身的漏洞,去请求网站A的API

XSS:是向网站 A 注入 JS代码,然后执行 JS 里的代码,篡改网站A的内容


#防御CSRF的策略 –验证 HTTP Referer 字段

–在请求地址中添加 token 并验证

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

最新回复(0)