今天做的是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实战相关推荐

  1. burpsuite csrf攻击_WEB安全之CSRF

    大家好,我是阿里斯,一名IT行业小白.今天分享的内容是CSRF相关知识,不求表哥们打赏,只求点点在看,点点转发. CSRF漏洞概述 CSRF(Cross-Site Request Forgery),中 ...

  2. 【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 方法一:诱导点击 ...

  3. 手绘10张图,把CSRF跨域攻击、JWT跨域认证说得明明白白的

    作者 | 写代码的明哥 来源 | Python编程时光 这篇文章本应该是属于 HTTP 里的一部分内容,但是我看内容也挺多的,就单独划分一篇文章来讲下. 什么是跨域请求 要明白什么叫跨域请求,首先得知 ...

  4. 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击...

    第三百九十二节,Django+Xadmin打造上线标准的在线教育平台-sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...

  5. csrf和xss攻击

    XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求伪造(Cross-site request forgery) 在那个年代,大家一般用拼接字符串的方式来构造动态SQL 语 ...

  6. csrf和XSS攻击分别是什么?

    csrf和XSS攻击分别是什么? CSRF的基本概念.缩写.全称:CSRF(Cross-site request forgery):跨站请求伪造. CSRF的攻击原理:要完成一次CSRF攻击,受害者必 ...

  7. Pikachu CSRF GET/POST/TOKE级别漏洞实战Pikachu exec “ping“ exec “evel“OS命令执行漏洞

    Pikachu CSRF GET/POST/TOKE级别漏洞实战&&Pikachu exec "ping" && exec "evel&q ...

  8. 缓慢的http拒绝服务攻击 tomcat_攻击技术

    一.跨站脚本攻击 概念 跨站脚本攻击(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML 和 JavaScript. 攻击原理 例如有一个论 ...

  9. 攻防演练中攻击队攻击的必备能力

    蓝队攻击的必备能力 开展网络渗透对蓝队人员的岗位技能和动手能力都有较高的要 求,这些能力要求侧重于攻防实战,是蓝队人员综合能力水平的体 现.因为蓝队人员在实战攻防演练中面对的是十分契合真实网络条件 的 ...

最新文章

  1. mac系统下,解决git clone速度慢导至失败的问题
  2. 百步斋诗钞【绝句四首】
  3. 程序基础:数据结构(郝斌讲解)(4)
  4. 迄今看到的较为客观的一篇分析编程语言的文章
  5. winfrom 点击按钮button弹框显示颜色集
  6. AWS CEO Andy Jassy 专访:我们一直思考的是未来 2-5 年的事 | 人物志
  7. 9.List的子类特点
  8. ios---NSNotificationCenter传值
  9. WinCE下音频频谱显示效果图
  10. UI初学者必备知识|最好的Sketch App 素材资源都在一流设计导航
  11. 这届 Windows 不行,是因为微软不卖“软件”改卖“服务”?
  12. 【Linux】文件描述符与重定向
  13. [c#] HttpContext.Cache和AppFabric的性能对比
  14. 用PHP ping 一个 IP
  15. python selenium文件下载
  16. KVM地址翻译流程及EPT页表的建立过程
  17. MySQL 根据身份证查找年龄段
  18. ESP32学习笔记(18)——光强度GY-30(BH1750)使用
  19. zabbix纯内网环境监控服务器发送邮件报警
  20. ajax 服务路由,Angular自定义服务路由

热门文章

  1. Metasploit--MS17_010(永恒之蓝)
  2. C# MenuStrip中的item快捷键设置
  3. 暨南大学第一任计算机学院院长,暨南大学信息学院院长姚国祥天堂纪念馆
  4. Kaggle 注册显示 Unable to load captcha. Captcha may be unavailable in your country.
  5. 使用PostMan进行API测试
  6. 电影推荐系统(037~039)
  7. MySQL集群部署(使用多个MySQL实例模拟)
  8. Java定义数组的三种方式
  9. Tomcat配置的10个技巧
  10. 关于51单片机数码管消影