最近比较忙,很久没发文章了,Onls本就只是一个安全爱好者,工作也不是安全相关。以往的文章也更像是利用简单漏洞的“即兴把玩”,更多的是偏向趣味性,给大家增加点学习的乐趣,看完文章即使仅有一个人觉得“哦?原来还能这样玩!”那我认为也是有价值的。话不多说,咱们开始。
写本文是看到@MAX丶 表哥的这篇 [原创] 各大SRC中的CSRF技巧 ,我觉得对于CSRF,表哥这篇文章讲得很明白了,包括原理和防御,还有一个自己验证苏宁易购订单处CSRF漏洞的例子,但是对于"真·小白" 来说或许不是特别友好。在感同身受这一点上,Onls作为一个技术渣或许更懂你们(白:好,我已经明白什么是CSRF了,但是到底实际渗透中我该怎么用呢?),所以我顺手找了个网站当素材来完成这篇文章。(关于原理我就不复述了,建议白白们先去看看表哥那篇文章,再把我的当作一次详细的实战过程分享)
这是个P2P投资借贷网站,我们注册帐号登录观察一下:
对于CSRF的实际利用我还是得先做个简单的说明,从它的名字“跨站请求伪造”不难理解,在大多数情况下的利用无外乎两点:“跨站”和“伪造”,其实“站”你们可以简单理解为“域”或“域名”的意思,通俗来说就是“访问某一域名(网站)却被该域名下的恶意代码利用你的身份cookie,让另一个域名的服务器执行操作”,正常情况下,让目标用户访问一个陌生站点就必不可少的要涉及到一点“社工”。所以实际利用中要成功必不可少的两个点我总结为:
———————————————————————————-
1.被伪造身份的目标曾在该浏览器上访问过存在CSRF站点,且Cookie尚未过期
2.目标被诱使在该浏览器上访问了我们放置了恶意代码的域名(网站)
——————-分割线——-以上两点为下面实战的基础———————–
我们发现新帐号默认会关注一个叫“XX二郎的帐号”,圈子里能看到这个名为“XX二郎”的用户的公告动态,并且在网站答疑区能发现他的回答,ID后面还加了V,发布的信息也都是员工角度。看来身份不“普通”。我们就以他为实战“受害”对象,开始制定我们在该站点测试CSRF所要达成的目标:在“XX二郎”不知情的情况下,利用CSRF漏洞伪造他的请求发送一条公告动态。
那么经过观察网站后,我的思路是:在网站咨询答疑区发布一条咨询问题,将我构造了恶意代码的域名贴上去,附上“我在你们网站注册的隐私信息,为什么被公布在了这个网站上?http://xxxx.xx,你们这样对待用户隐私?”(回顾我之前说的实战要成功的两个基本点,1.对方工作人员在看到,并准备回答我这条“疑问”的时候,必定是已经登录了这个网站了(满足基础1),2.看到我这具有欺骗性的文字时,很容易会点进去一探究竟(满足2))
说干就干,我们在发布动态的地方用burp suite进行抓包:
对于CSRF,burp suite有个小功能:我们对这个包“右键”->"Engagement tools"->"Generate CSRF PoC" :
这里会直接构造一个PoC,但是在实际渗透中肯定是不能直接使用这个的,我们得稍加改造,由于这里是POST传输,我们构造的代码为:
当然这只是CSRF利用代码,实际前端页面你可以自己按需要写,或者直接在body里写一句“系统升级中,暂无法访问..”来不引起怀疑。
然后为了能在目标访问我们的恶意链接之后第一时间得到消息,我将CSRF中的JS代码放进XSS平台中建成一个项目,为了简便直接将代码加到打Cookie的代码后面(这里只是为了利用XSS平台的邮件、短信提醒功能,顺带还能获得目标的IP、定位):
这样就只需要把js外链加到前端源码里就行了,测试一波,成功收件:
好了,别忘了正题,准备战斗:
卧槽,18点了..下班下班..,本来想把包括抓包在内的整个过程和一些工具、插件做个详细介绍的,来不及拉..直接看结果吧..表哥要赶去召唤师峡谷过周五了,要详细的可留言下次有时间再给你们更新文章..这次的前端文件在:http://0bug.cf/CSRF/onls.html,对了,顺便提一句,最近很多XSS平台都访问不了了,原因可能很复杂吧,最烦这种情况了,很多以前的项目都没做保存,坑爹…所以今天也顺便自己搭了个XSS平台,地址http://0bug.cf,本来是想自用的,我比较懒对自己的平台没做邮件提醒功能,但是能保证稳定可靠,放几个邀请码出去吧,有表弟想要的可以在下面留言,我私发给你,Onls给你担保3年内平台都是稳定存在,出于这个考虑所以不会放出多少邀请码,请理解。
虎头蛇尾了哈哈哈…不好意思哈大家将就看