Pikachu新手教学之CSRF

admin 2022年11月18日14:13:06评论36 views字数 1040阅读3分28秒阅读模式

0x01

CSRF(跨站请求伪造) 原理:攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作。由于浏 览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行 当用户在同时打开服务器a、服务器b时,若b服务器的一个链接的请求指向a服务器,而a服务器并没 有对发来的链接的来源进行判断的时候:即不知道是由用户自己发送的,还是某个未知服务器发送的;则会把b服务器发来的请求当作用户自己发送的请求。

Pikachu新手教学之CSRF

0x02

  1. 服务端无法正确识别请求的来源 2. 已登录的浏览器,打开恶意网址后,被执行了相应操作。

  2. 已登录的浏览器,打开恶意网址后,被执行了相应操作。

Pikachu新手教学之CSRF

0x03

验证方式: 

查看去掉于token相关的字段和参数时,是否能正常请求成功 去掉referer是否可以提交成功 是否能用get替代post进行提交。

漏洞防范: 

  1. referer头:可知从哪个页面来的

  2. token值:身份验证,用于校验是否为用户自己提交的值

  3. 图片验证码


关于token值的防御方法:

在使用token防御csrf攻击的时候,需要注意: 

  1. 判断用户发来的token和服务器留存的token是否相同

  2. 判断token是否为空,若不对其进行防御则会使攻击者删除token依旧可以复现csrf漏洞

  3. 在每次验证完token值时要注意将token值清空


0x04

pikachu-CSRF

Pikachu新手教学之CSRF

使用bp的scrf的poc功能 ,修改其中的值:

Pikachu新手教学之CSRF

Pikachu新手教学之CSRF

将生成的表单生成一个html: 

Pikachu新手教学之CSRF

运行这个html

Pikachu新手教学之CSRF


若被目标用户点击这个提交按钮,他的信息将会被修改 发现信息已经被修改,发现信息已经被修改了

Pikachu新手教学之CSRF

POST:使用bp抓取修改信息的包:

Pikachu新手教学之CSRF

发现是post型提交的,使用bp的general csrf poc进行csrf进行攻击、 修改参数的值:

Pikachu新手教学之CSRF

复制表单生成一个html

Pikachu新手教学之CSRF

使用浏览器运行这个html文件,即假设目标用户访问这个html页面,目标用户的信息就会被修改

Pikachu新手教学之CSRF


Pikachu新手教学之CSRF


发现信息已经被修改 token:抓取含有token的信息的包

Pikachu新手教学之CSRF

使用bp的scrf工具修改信息:

Pikachu新手教学之CSRF

将表单复制然后自己生成一个html文件

Pikachu新手教学之CSRF

执行生成的html文件后,出现一个提交按钮

Pikachu新手教学之CSRF

但因为token会检验这条数据究竟是否为自己提交的,所以无法直接修改目标用户的信息 网页接受从后台发过来的token,类型不可见。将其一并提交给后台进行验证。每次刷新,后台发送过来 的token都会刷新,起到了防伪的作用。

Pikachu新手教学之CSRF

所以有不断刷新token的情况,就不会被csrf进行攻击。

原文始发于微信公众号(爱喝酒烫头的曹操):Pikachu新手教学之CSRF

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月18日14:13:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Pikachu新手教学之CSRFhttp://cn-sec.com/archives/1416304.html

发表评论

匿名网友 填写信息