OWASP之CSRF跨站请求伪造

CSRF(Cross-site request forgery)跨站请求伪造

文章目录

  • 一、CSRF定义
  • 二、CSRF危害
  • 三、CSRF漏洞构成
    • 1.漏洞风险存在
    • 2.用户登录受信任网站A,并在本地生成Cookie
    • 3.攻击者伪装数据操作请求的恶意链接或者页面
    • 4.诱使未登出用户主动访问或登录恶意链接,触发非法操作
  • 四、CSRF的类型
    • 1.Get类型
    • 2.Post类型
    • 3.Get+token
  • 五、CSRF实操
    • 1.Pikachu靶场CSRF
      • a.CSRF(get) login
      • b.CSRF(post) login
      • c.CSRF Token login
    • 2.DVWA靶场CSRF
      • a.LOW
      • b.Mid
      • c.High
  • 六、蓝莲花靶场搭建与使用
    • 1.安装
      • a.将\BlueLotus_XSSReceiver-master\*.*拷贝到pikachu www目录下
      • b.浏览器打开
      • c.点安装
      • d.登录即可
      • e.进入主页面添加数据
    • 2.使用
      • a.打开DVWA LOW级别 反射型xss界面
      • b.蓝莲花创建”我的js”模块
      • c.点击生成payload
      • d.执行payload
      • e.蓝莲花打开接收面板
  • 七、XSS在线平台
    • 1.打开页面
    • 2.新建项目
    • 3.选择基础默认模块
    • 4.复制上面任意一条payload到DVWA里看效果

一、CSRF定义

CSRF是通过伪装用户的请求来利用网站。利用网站漏洞从用户那里恶意盗取信息

二、CSRF危害

以受害者名义发送邮件,发消息,盗取受害者的账号,甚至购买商品,虚拟货币转账,修改受害者的网络配置(比如修改路由器DNS、重置路由器密码)
造成的问题包括:个人隐私泄露、机密资料泄露、用户甚至企业的财产安全;
盗用受害者身份,受害者能做什么,攻击者就能以受害者的身份做什么。

三、CSRF漏洞构成

1.漏洞风险存在

目标站点或系统存在一个可以进行数据修改或者新增操作,且此操作被提交到后台的过程中,未提供任何身份识别或校验的参数。后台只要收到请求,就立即下发数据修改或新增的操作;存在以上情况说明存在漏洞风险。
出现比较多的场景有:个人资料修改、用户密码的修改、支付、购物地址的修改或后台管理账户的新增、数据库备份等等操作过程中。
CSRF一般与XSS结合使用

2.用户登录受信任网站A,并在本地生成Cookie

3.攻击者伪装数据操作请求的恶意链接或者页面

恶意攻击者只要将伪装好的“数据修改或新增”的请求发送给被攻击者,或者通过社工的方式诱使被攻击者在其cookie还生效的情况下点击了此请求链接,即可触发CSRF漏洞,成功修改或新增当前用户的数据信息

4.诱使未登出用户主动访问或登录恶意链接,触发非法操作

当前用户在不知情的情况下,访问了黑客恶意构造的页面或在链接,即在非本意的情况下完成黑客想完成的“非法操作”,实现了对当前用户个人信息的恶意操作。

四、CSRF的类型

get类型和post类型

1.Get类型

Get指的是向某个地方获取一些数据,这个获取的过程可以理解为一个简单的查询,专业名词叫做“幂等”。幂等也就是能够随意多次执行。
get类型的CSRF是CSRF中最常见,危害最大,但也是最简单的一种类型了,只要一个http请求就可以了,这种类型的CSRF一般是由于程序员安全意识不强造成的。GET类型的CSRF利用非常简单,只需要一个HTTP请求,所以,一般会这样利用:
抓包获取请求修改html代码
OWASP之CSRF跨站请求伪造_第1张图片

复制url,写个简单的html文件

0元充值 ![在这里插入图片描述](https://img-blog.csdnimg.cn/890b6761d4cd4d04be5f2ffcfa42e4b5.png)

里面的请求数据可以随意改,然后扔给未登出用户点击即完成攻击
在这里插入图片描述

2.Post类型

post是希望服务器做某项操作,也就是不幂等。因为是设计成有影响的操作,所以它不能被缓存。post请求一般都是表单提交,可以在body里面携带数据。
$_REQUEST既可以获取GET请求的数据,也可以获取POST请求的数据;
一般会这样利用:
Bp抓包获取html请求代码,里面的请求数据可以随意改,把我们刚刚复制出来的referer粘贴在这个里面,然后使用Engagement tools-Generate CSRF POC,然后扔给未登出用户点击即完成攻击

OWASP之CSRF跨站请求伪造_第2张图片
在这里插入图片描述

3.Get+token

OWASP之CSRF跨站请求伪造_第3张图片

应对方法1:跟暴力破解绕过token的方式一样
新密码、确认新密码要设置一样的字典,Grep - Extract 通过正则提取返回信息中的内容
应对方法2:bp插件 下载完成后填一下host和name
OWASP之CSRF跨站请求伪造_第4张图片

五、CSRF实操

1.Pikachu靶场CSRF

a.CSRF(get) login

OWASP之CSRF跨站请求伪造_第5张图片

首先BP抓包获取请求代码
OWASP之CSRF跨站请求伪造_第6张图片

复制url,写个简单的csrf.html文件

0元充值 修改请求数据后给前端用户点击 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fa49bc7f81c642248cb2c007f7923e11.png)

点击修改个人信息
用户编辑修改个人信息
OWASP之CSRF跨站请求伪造_第7张图片

BP抓包制作模仿链接
OWASP之CSRF跨站请求伪造_第8张图片

将数据提取出来
复制url,写个简单的csrf2.html文件,随意修改请求数据后给前端用户点击

csrf ![在这里插入图片描述](https://img-blog.csdnimg.cn/bf82f240bef64358aac4a033fb8da30d.png)

b.CSRF(post) login

OWASP之CSRF跨站请求伪造_第9张图片

先登录
OWASP之CSRF跨站请求伪造_第10张图片

点击修改个人信息
OWASP之CSRF跨站请求伪造_第11张图片

然后抓包制作模拟链接
OWASP之CSRF跨站请求伪造_第12张图片OWASP之CSRF跨站请求伪造_第13张图片

随意修改上面数据后保存成csrf-post.html给前端用户点击
OWASP之CSRF跨站请求伪造_第14张图片OWASP之CSRF跨站请求伪造_第15张图片

也是一样被篡改数据了

c.CSRF Token login

先登录
OWASP之CSRF跨站请求伪造_第16张图片OWASP之CSRF跨站请求伪造_第17张图片

点修改个人信息
OWASP之CSRF跨站请求伪造_第18张图片
抓包制作模拟链接,发现多了个token
OWASP之CSRF跨站请求伪造_第19张图片

但是发现要修改的参数太多,不是只是修改密码,不能用爆破的方法,因此这里使用插件CSRF Token Tracker实现
Extender–BApp Store–搜索CSRF Token Tracker–install
OWASP之CSRF跨站请求伪造_第20张图片

装完后主菜单会多出一个选项CSRF Token Tracker
CSRF Token Tracker–host填写127.0.0.1,Name填poc名称,勾选使用
OWASP之CSRF跨站请求伪造_第21张图片

然后抓包点send to repeater重放
OWASP之CSRF跨站请求伪造_第22张图片

可以修改下数据再点send
OWASP之CSRF跨站请求伪造_第23张图片

点Follow redirection后发现修改成功
OWASP之CSRF跨站请求伪造_第24张图片

重新登录验证下
OWASP之CSRF跨站请求伪造_第25张图片

说明也确实被修改成功了
但是发现这里有个问题就是只能重放一次,使用过后Follow redirection就不再出现了,需要重新再来,而且如果修改编码不对也不会出现Follow redirection

2.DVWA靶场CSRF

a.LOW

OWASP之CSRF跨站请求伪造_第26张图片

不知道是get还是post,先bp抓包再说
OWASP之CSRF跨站请求伪造_第27张图片

显然是get类型的
那就构造链接吧
复制url,写个简单的csrf3.html文件

0元充值 稍微改下它的密码,然后给前端点击 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c060613b8ff24a09bab7d649bad7265e.png)

点击submit
OWASP之CSRF跨站请求伪造_第28张图片

然后我们登出使用该密码登录
发现确实修改成功了

b.Mid

登录抓包
OWASP之CSRF跨站请求伪造_第29张图片

替换链接打开
OWASP之CSRF跨站请求伪造_第30张图片

登出用新密码登录,也成功了,中级的怎么一样的

c.High

OWASP之CSRF跨站请求伪造_第31张图片

不出所料,高级的多了token
这次用爆破试下
OWASP之CSRF跨站请求伪造_第32张图片

使用鱼叉模式,用修改密码和token做变量
grep-extract加入找到的token

OWASP之CSRF跨站请求伪造_第33张图片

第二个字典类型选用Recursive gep,并将token黏贴在此处
OWASP之CSRF跨站请求伪造_第34张图片

使用单线程和一直重定向
OWASP之CSRF跨站请求伪造_第35张图片

开始爆破
OWASP之CSRF跨站请求伪造_第36张图片

其他情况
OWASP之CSRF跨站请求伪造_第37张图片

注意。爆破字典里要有我们修改的密码,如这里的password,否则会全部失败的

六、蓝莲花靶场搭建与使用

1.安装

a.将\BlueLotus_XSSReceiver-master*.*拷贝到pikachu www目录下

OWASP之CSRF跨站请求伪造_第38张图片

b.浏览器打开

http://127.0.0.1/BlueLotus_XSSReceiver-master/
OWASP之CSRF跨站请求伪造_第39张图片

c.点安装

可以改下密码,其他默认提交
OWASP之CSRF跨站请求伪造_第40张图片

d.登录即可

OWASP之CSRF跨站请求伪造_第41张图片OWASP之CSRF跨站请求伪造_第42张图片

e.进入主页面添加数据

OWASP之CSRF跨站请求伪造_第43张图片

2.使用

a.打开DVWA LOW级别 反射型xss界面

在这里插入图片描述在这里插入图片描述

b.蓝莲花创建”我的js”模块

OWASP之CSRF跨站请求伪造_第44张图片

使用默认模块,插入模版,website使用dvwa的当前测试xss界面地址,自定义文件名,最后点下面的新增

c.点击生成payload

OWASP之CSRF跨站请求伪造_第45张图片

复制生成的payload

d.执行payload

将复制的payload,放到dvwa的xss模块执行
在这里插入图片描述

e.蓝莲花打开接收面板

(需要重新拼接地址,先访问一下
http://127.0.0.1/BlueLotus_XSSReceiver-master/,
再访问http://127.0.0.1/BlueLotus_XSSReceiver-master/admin.php)
在这里插入图片描述

七、XSS在线平台

1.打开页面

https://xssaq.com/?callback=project&act=view&id=12637,登录账号和密码:poilkjmnb,QWE123
OWASP之CSRF跨站请求伪造_第46张图片

2.新建项目

OWASP之CSRF跨站请求伪造_第47张图片

点下一步

3.选择基础默认模块

OWASP之CSRF跨站请求伪造_第48张图片

点下一步
OWASP之CSRF跨站请求伪造_第49张图片

4.复制上面任意一条payload到DVWA里看效果

OWASP之CSRF跨站请求伪造_第50张图片

但是好奇怪的是我这里并没收到cookie

漏洞提交平台
漏洞盒子:https://www.vulbox.com/
补天:https://www.butian.net/
CNVD:https://www.cnvd.org.cn/
教育SRC:https://src.sjtu.edu.cn/

信息收集平台
https://fofa.info/
https://hunter.qianxin.com/
https://www.zoomeye.org/
https://www.shodan.io/
https://quake.360.net/quake/

你可能感兴趣的:(csrf,网络,运维)