本文作者:i春秋签约作家——onls辜釉

最近比较忙,很久没发文章了,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年内平台都是稳定存在,出于这个考虑所以不会放出多少邀请码,请理解。

虎头蛇尾了哈哈哈…不好意思哈大家将就看

渗透日常之 花式实战助你理解CSRF的更多相关文章

  1. 一篇文章助你理解Python3中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系和一篇文章助你理解 ...

  2. d3可视化实战02:理解d3数据驱动的真正含义

    前文中已经提到,SVG从诞生之初起就可以非常方便地使用javascript脚本语言来进行其DOM对象的控制.当然,控制的方法有很多,有直接控制SVG对象的方法,例如使用原生js:有帮你封装一下图形接口 ...

  3. 什么?又是404!趣图助你理解HTTP状态码~

    HTTP状态码(一):   注释: 301—永久移动.被请求的资源已被永久移动位置: 302—请求的资源现在临时从不同的 URI 响应请求: 305—使用代理.被请求的资源必须通过指定的代理才能被访问 ...

  4. 一篇文章助你理解Python2中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系.下面在Python2环境中进行代码演示,分别Wind ...

  5. Spring Security 实战干货:理解AuthenticationManager

    1. 前言 我们上一篇介绍了UsernamePasswordAuthenticationFilter的工作流程,留下了一个小小的伏笔,作为一个Servlet Filter应该存在一个doFilter实 ...

  6. ajax获取数据的形象比喻,助于理解记忆

    过程 创建对象(打开浏览器) 连接服务器(输入网址) 发送请求(按下回车) 服务器接收并返回数据(显示对应的网址网站内容) 原理

  7. d3可视化实战01:理解SVG元素特性

    一. SVG简介 ————————————————————————————————————————————————————————————————— SVG是一种和图像分辨率无关的矢量图形格式,它使用 ...

  8. memcached实战系列(七)理解Memcached的数据过期方式、新建过程、查找过程

    1.1.1. 新建Item分配内存过程 1:快速定位slab classid,先计算Item长度 key键长+flag+suffix(16字节)+value值长+结构大小(32字节),如90byte ...

  9. memcached实战系列(六)理解Memcached的数据存储方式

    Memcached的数据存储方式被称为Slab Allocator,其基本方式是: 1:先把内存分成很多个Slab,这个大小是预先规定好的,以解决内存碎片的问题.启动参数的时候配置进去的不懂得可以参考 ...

随机推荐

  1. push和pop指令的使用

  2. C#重启IIS

    using System.Diagnostics; using System.ServiceProcess; //ServiceController sc1 = new ServiceControll ...

  3. YUI前端优化之内容篇

    Excetional Performance团队总结出了一系列可以提高网站速度的方法.可以分为7大类34条.包括内容.服务器.cookie.CSS.JavaScript.图片.移动应用等七部分.一.内 ...

  4. iOS界面设计,12个优秀案例激发你的灵感

    总所周知,iOS和Android是当今两大移动平台,前者采用Human Interface Design,后者采用Material Design.作为设计师,尤其是App设计师,总是会在这两者进行设计 ...

  5. Caffe 议事(二):从零开始搭建 ResNet 之 网络的搭建(上)

    3.搭建网络: 搭建网络之前,要确保之前编译 caffe 时已经 make pycaffe 了. 步骤1:导入 Caffe 我们首先在 ResNet 文件夹中建立一个 mydemo.py 的文件,本参 ...

  6. Maven项目下java.lang.ClassNotFoundException常规解决办法

    网上很多要修改.class .project的比较麻烦有时候还不一定管用.下面的方法适合于项目用已经引用了jar,但是运行时却ClassNotFound,请用如下方法试试: 严重: Error con ...

  7. 09 Finding a Motif in DNA

    Problem Given two strings ss and tt, tt is a substring of ss if tt is contained as a contiguous coll ...

  8. 8 种提升 ASP.NET Web API 性能的方法 (转)

    出处:http://www.oschina.net/translate/8-ways-improve-asp-net-web-api-performance ASP.NET Web API 是非常棒的 ...

  9. 转 Spring AOP @Before @Around @After 等 advice 的执行顺序

    转自:http://blog.csdn.net/rainbow702/article/details/52185827 情况一: 一个方法只被一个Aspect类拦截 正常情况:  异常情况:  情况二 ...

  10. 原型模式及C++实现

    以下是我自己学习设计模式的感想. 原型模式 学过C++的都知道拷贝构造函数,复制一个对象分为浅拷贝和深拷贝. 浅拷贝:就是给对象中的每个成员变量进行复制,就是把A1类中的变量直接赋给A2类中变量,属于 ...