burpsuite csrf攻击_CSRF攻击的BurpSuite实战
今天做的是CSRF越权攻击,原理是通过在自己网站或者目标网站,通过模拟发包,替客户端发送请求。
环境配置
考虑其危害性,虽然不是很大,但是考虑到安全问题,所以本次演示需自己搭建实验环境,主要内容是用PHPstudy在本地搭建一个本地网站。
下载并安装PHPstudy
寻找CSRF漏洞
测试网站域名www.incake.net
还是老步骤,注册,点击个人中心。
然后进入“发票管理”页面:
此时,发票信息页面内容为空:
点击添加发票信息并打开BurpSuite抓包
按CTRL+R或者单击右键点击sendto repeater
在Repeater中我们发现这个数据包是存在CSRF漏洞的,不论我们点击GO重放这个数据包几次,都会在发票页中添加新的发票。
制作POC
因此我们可以在这个数据包页面上单击右键-Engagementtools-Generate CSRF POC
在新弹出的页面中,BurpSuite自动生成了CSRF代码
将此段代码复制并另存为CSRF.html文件,存放在之前用phpstudy搭建好的本地网站中
然后打开本地浏览器
访问http://127.0.0.1/CSRF.html
测试漏洞
点击Submitrequest后,发现失败,失败原因是由于BurpSuite对POC的参数进行了二次编码,解决方法是根据原始数据包的参数方案对POC下的参数进行重新配置,并最终摸索出每个参数的作用:
最终更改方案如下:
点击按钮后,发现代码运行成功:
总结
在此次的CSRF实验中,虽然成功运行了,但是暴露出很多问题。
我们必须自己搭建一个网站发送问题链接后才能触发;
我们必须让用户点击那个按钮才能触发那个CSRF漏洞。
然而,实际情况是——只有傻子才能蠢到那种地步,按照你的指示一通点。
所以,针对以上两种情况,我们对此次CSRF攻击进行优化。
问题一的解决方案(拼点子)
问题一的症结所在在于,我们的请求是post类型
POST /webnew/SettingHandler.ashx HTTP/1.1
这不得不说到POST与GET请求类型的区别
具体详情可以参考:
http://naotu.baidu.com/file/162583aa24d2d445e23347f6c764a211?token=39eb7f9dfd0129e1
get和post是HTTP与服务器交互的方式,
说到方式,其实总共有四种:put,delete,post,get。
他们的作用分别是对服务器资源的增,删,改,查。
所以,get是获取数据,post是修改数据。
那POST请求与GET请求的区别和此次CSRF攻击有什么联系吗?
答案是:有。
因为GET是需要客户去向服务器去请求数据,别人不能代替客户请求数据。
而POST就不一样了,谁都可以POST,只要在同一个浏览器下,Cookie没有过期的情况下,谁都可以POST一个请求。
要完成一次CSRF攻击,受害者必须依次完成两个步骤:
1、登录受信任网站A,并在本地生成Cookie。
2、在不登出A的情况下,访问危险网站B。
看到这里,你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。是的,确实如此,但你不能保证以下情况不会发生:
1、你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。
2、你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了......)
3、所谓的攻击网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站。
几种常见的攻击类型
GET类型的CSRF
这种类型的CSRF一般是由于程序员安全意识不强造成的。GET类型的CSRF利用非常简单,只需要一个HTTP请求,所以,一般会这样利用:
(在浏览器下,img标签后面的链接会被浏览器无条件加载,从而达到自动发包的作用。)
POST类型的CSRF
这种类型的CSRF危害没有GET型的大,利用起来通常使用的是一个自动提交的表单,如:
访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作。
理论说完了,直接说操作了,对于问题一这种情况,我们可以将我们的请求转化为POST,将请求提交之后看服务器能否依旧响应请求。
通过尝试,在将POST请求转换为POST请求之后,我们发现此网站中的SettingHandler.ashx文件依旧相应了我们的请求,并且成功添加了发票。
那么我们只需要将转化后的GET请求发送给目标,那么他的个人信息就会别成功修改
http://www.incake.net/webnew/SettingHandler.ashx?type=_setinvoice&doing=_add&hType=%E4%B8%AA%E4%BA%BA&hName=&paycode=&content=%E8%9B%8B%E7%B3%95
这样用户如果不仔细看url的话,他是辨别不出来这个链接有问题的。
问题二的解决方案(百发百中)
BurpSuite生成的POC是做成一个按钮,点击按钮之后才会触发POST请求,那我们用脚本直接触发不就可以了吗?
具体怎么做呢?
document.px.submit();
更改完成之后刷新,测试成功:
burpsuite csrf攻击_CSRF攻击的BurpSuite实战相关推荐
- burpsuite csrf攻击_WEB安全之CSRF
大家好,我是阿里斯,一名IT行业小白.今天分享的内容是CSRF相关知识,不求表哥们打赏,只求点点在看,点点转发. CSRF漏洞概述 CSRF(Cross-Site Request Forgery),中 ...
- 【CSRF02】跨站请求伪造——DVWA靶场实操(含CSRF+XSS协同攻击实验)
目录 1 实验简介 1.1 实验目的 1.2 实验环境 2 Low难度 2.1 前戏 2.2 实验步骤 2.3 代码审计 3 Medium难度 3.1 前戏 3.2 实验思路 3.3 方法一:诱导点击 ...
- 手绘10张图,把CSRF跨域攻击、JWT跨域认证说得明明白白的
作者 | 写代码的明哥 来源 | Python编程时光 这篇文章本应该是属于 HTTP 里的一部分内容,但是我看内容也挺多的,就单独划分一篇文章来讲下. 什么是跨域请求 要明白什么叫跨域请求,首先得知 ...
- 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击...
第三百九十二节,Django+Xadmin打造上线标准的在线教育平台-sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...
- csrf和xss攻击
XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求伪造(Cross-site request forgery) 在那个年代,大家一般用拼接字符串的方式来构造动态SQL 语 ...
- csrf和XSS攻击分别是什么?
csrf和XSS攻击分别是什么? CSRF的基本概念.缩写.全称:CSRF(Cross-site request forgery):跨站请求伪造. CSRF的攻击原理:要完成一次CSRF攻击,受害者必 ...
- Pikachu CSRF GET/POST/TOKE级别漏洞实战Pikachu exec “ping“ exec “evel“OS命令执行漏洞
Pikachu CSRF GET/POST/TOKE级别漏洞实战&&Pikachu exec "ping" && exec "evel&q ...
- 缓慢的http拒绝服务攻击 tomcat_攻击技术
一.跨站脚本攻击 概念 跨站脚本攻击(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML 和 JavaScript. 攻击原理 例如有一个论 ...
- 攻防演练中攻击队攻击的必备能力
蓝队攻击的必备能力 开展网络渗透对蓝队人员的岗位技能和动手能力都有较高的要 求,这些能力要求侧重于攻防实战,是蓝队人员综合能力水平的体 现.因为蓝队人员在实战攻防演练中面对的是十分契合真实网络条件 的 ...
最新文章
- mac系统下,解决git clone速度慢导至失败的问题
- 百步斋诗钞【绝句四首】
- 程序基础:数据结构(郝斌讲解)(4)
- 迄今看到的较为客观的一篇分析编程语言的文章
- winfrom 点击按钮button弹框显示颜色集
- AWS CEO Andy Jassy 专访:我们一直思考的是未来 2-5 年的事 | 人物志
- 9.List的子类特点
- ios---NSNotificationCenter传值
- WinCE下音频频谱显示效果图
- UI初学者必备知识|最好的Sketch App 素材资源都在一流设计导航
- 这届 Windows 不行,是因为微软不卖“软件”改卖“服务”?
- 【Linux】文件描述符与重定向
- [c#] HttpContext.Cache和AppFabric的性能对比
- 用PHP ping 一个 IP
- python selenium文件下载
- KVM地址翻译流程及EPT页表的建立过程
- MySQL 根据身份证查找年龄段
- ESP32学习笔记(18)——光强度GY-30(BH1750)使用
- zabbix纯内网环境监控服务器发送邮件报警
- ajax 服务路由,Angular自定义服务路由
热门文章
- Metasploit--MS17_010(永恒之蓝)
- C# MenuStrip中的item快捷键设置
- 暨南大学第一任计算机学院院长,暨南大学信息学院院长姚国祥天堂纪念馆
- Kaggle 注册显示 Unable to load captcha. Captcha may be unavailable in your country.
- 使用PostMan进行API测试
- 电影推荐系统(037~039)
- MySQL集群部署(使用多个MySQL实例模拟)
- Java定义数组的三种方式
- Tomcat配置的10个技巧
- 关于51单片机数码管消影