渗透日常之 花式实战助你理解CSRF

本文作者: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年内平台都是稳定存在,出于这个考虑所以不会放出多少邀请码,请理解。

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

时间: 2024-12-17 19:52:04

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

Python 多进程实战 & 回调函数理解与实战

这篇博文主要讲下笔者在工作中Python多进程的实战运用和回调函数的理解和运用. 多进程实战 实战一.批量文件下载 从一个文件中按行读取 url ,根据 url 下载文件到指定位置,用多进程实现. #!/usr/local/python27/bin/python2.7 from multiprocessing import Process,Pool import os,time,random,sys import urllib # 文件下载函数 def filedown(url,file):  

完成sqlmap渗透攻击入门到实战专栏文章初步目标

<渗透攻击入门到实战>专栏文章http://blog.51cto.com/cloumn/detail/3从推出到目前基本预订目标17章内容完成更新. 回顾整个过程有以下一些感受: 1.技术的东西必须深入,目前安全圈安全生态不是特别好,很多内容都是copy,笔者在对某些内容进行查看时,根据文章提供的内容根本无法重现,还需要从头再来,这就很浪费时间.在实际渗透或者ctf比赛中时间就是金钱,有时候多几分钟时间,其结果就大相径庭. 2.本专栏虽然初步告一段落,但后续我仍会继续更新,后续内容将主要研究:

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

前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系和一篇文章助你理解Python2中字符串编码问题.下面在Python3环境中进行代码演示,分别Windows和Linux操作系统下进行演示,以加深对字符串编码的理解. 在Python2的Python文件的文件头往往会声明字符的编码格式,通过会使用代码"#-*- coding -*-"作为编码声明,如下图所示

理解CSRF(跨站请求伪造)

理解CSRF(跨站请求伪造) 原文出处Understanding CSRF 对于Express团队的csrf模块和csurf模块的加密函数的用法我们经常有一些在意. 这些在意是莫须有的,因为他们不了解CSRF token是如何工作的. 下面快速过一遍! 读过后还有疑问?希望告诉我们错误?请开一个issue! 一个CSRF攻击是如何工作的? 在他们的钓鱼站点,攻击者可以通过创建一个AJAX按钮或者表单来针对你的网站创建一个请求: <form action="https://my.site.c

python网络爬虫实战-Scrapy,深入理解scrapy框架,解决数据抓取过程

一 前言 二 网络爬虫简介 审查元素 简单实例 1 requests安装 2 简单实例 三 爬虫实战 小说下载 1 实战背景 2 小试牛刀 3Beautiful Soup 3整合代码 优美壁纸下载 1实战背景 2实战进阶 3整合代码 爱奇艺VIP视频下载 1实战背景 2实战升级 3编写代码 四 总结 一 前言 强烈建议:请在电脑的陪同下,阅读本文.本文以实战为主,阅读过程如稍有不适,还望多加练习. 本文的实战内容有: 网络小说下载(静态网站) 优美壁纸下载(动态网站) 爱奇艺VIP视频下载 二

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

HTTP状态码(一):   注释: 301—永久移动.被请求的资源已被永久移动位置: 302—请求的资源现在临时从不同的 URI 响应请求: 305—使用代理.被请求的资源必须通过指定的代理才能被访问: 307—临时跳转.被请求的资源在临时从不同的URL响应请求: 400—错误请求: 402—需要付款.该状态码是为了将来可能的需求而预留的,用于一些数字货币或者是微支付: 403—禁止访问.服务器已经理解请求,但是拒绝执行它: 404—找不到对象.请求失败,资源不存在: 406—不可接受的.请求的

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

前文中已经提到,SVG从诞生之初起就可以非常方便地使用javascript脚本语言来进行其DOM对象的控制.当然,控制的方法有很多,有直接控制SVG对象的方法,例如使用原生js:有帮你封装一下图形接口再进行直接控制的js类库,如 Raphaël.但是正如我在第一篇文章中所说,d3作为一个中间型类库还能脱颖而出的重要原因,在于它突破了其他类库的那种直接控制表现层的机制,而采用了对于web图形处理领域较为新颖的数据驱动机制(2011),并获得了极大的成功. 数据驱动的历史 数据驱动编程并不是一个新鲜

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

前几天给大家介绍了unicode编码和utf-8编码的理论知识,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系.下面在Python2环境中进行代码演示,分别Windows和Linux操作系统下进行演示,以加深对字符串编码的理解. 1.首先在Windows操作系统下的Python2环境中进行演示,我们都知道Python2中的编码问题经常出现,需要通过编码(encode)和解码(decode)进行实现.通过cmd进入命令行窗口,然后输入两个字符串'abc'和u'a

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

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