【10.15总结】绕过CSRF的Referer保护

今天下午可能要出远门,因此如今就把总结写好了。javascript

Write-up地址:[Critical] Bypass CSRF protection on IBMphp

这个CSRF漏洞存在于IBM的修改邮箱页面,修改邮箱的地址是java

https://www.ibm.com/ibmweb/myibm/account/sendmail?locale=us-en&email=NEW_EMAIL

因此理论上讲,只要修改上面连接中的NEW_EMAIL为本身的邮箱,被攻击者在登陆了本身的IBM帐户后点击该连接,就能达到修改被攻击者邮箱的目的。web

可是做者Mohamed Sayed在尝试时,发现IBM会检测请求发出的Referer头部,正常修改邮箱的请求Referer头部为jsp

https://www.ibm.com/ibmweb/myibm/profile/profile-edit.jsp

做者通过几个小时的尝试,发现使用下面的Referer头部能够成功绕过IBM的验证oop

http://my_website/www.ibm.com/ibmweb/myibm/profile/profile-edit.jsp.php

在测试漏洞时,做者使用了Moakt的临时邮箱服务生成了一个临时邮箱地址做为NEW_EMAIL,在本身的网站上建立文件profile-edi.jsp.phppost

<script type="text/javascript"> document.location.href="https://www.ibm.com/ibmweb/myibm/account/sendmail?locale=us-en&email=NEW_EMAIL"
</script>

这样,只要欺骗被攻击者访问该网页,就能够在本身生成的临时邮箱里收到确认修改邮箱的邮件,成功修改被攻击者IBM帐号的邮箱了。测试


其实这个漏洞原理很简单,我以前在看对CSRF介绍的文章时也有看到过验证Referer的防护手段,只是真实案例是第一次接触,因此仍然颇有新鲜感。从该案例也能够看出,CSRF可使用验证Referer头部的方式进行防护,可是网站对Referer的验证方法仍然可能存在漏洞,须要进行不断的尝试flex


今天还看了另一篇文章DevOops — An XML External Entity (XXE) HackTheBox Walkthrough,一开始没明白文章中提到的DevOops是什么东西,只是以为能够经过这篇文章了解一下渗透测试的简单流程,后来谷歌了一下,才发现Hack the box是一个在线的渗透测试平台,感受还蛮不错的,注册须要经过一个小测试,并不难,虽然网上已经有教程了,但我仍是遵照规则不说出经过测试的方法,只是一个小tip——看网页的源码。网站

相关文章
相关标签/搜索