pikachu漏洞平台之CSRF

CSRF简介

CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造
在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接)
然后欺骗目标用户进行点击,用户一旦点击了这个请求,这个攻击也就完成了
所以CSRF攻击也被称为“one click”攻击

 

CSRF和XSS区别

XSS目标在于获取用户cookie,利用cookie伪装为受害者身份进行登录进而造成破坏,

CSRF并没有获取到用户的权限,而是利用用户的权限执行我们的payload进行攻击

 

1.CSRF(get实验)

首先我们先登录

 

 

 我们先将地址随意修改一个值,然后通过brup suite抓包查看一下,从get提交里面发现请求连同信息都包含在了url里面,包括敏感信息,这时假如我是攻击者,我在这个平台上申请一个账号,然后修改密码,通过这样抓包我就获取到了这个get请求,稍作修改我就可以将其变成一个链接,发给lucy后就可以把他的信息修改了。

 

 

 例如我现在伪造一个链接192.168.42.122/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=zhangjiakou&email=lucy%40pikachu.com&submit=submit

现在我们将地址修改为zhangjiakou 把这穿链接让lucy点击就可以了

 

 

 输入这个链接后,地址已经被修改了。

2.CSRF(post实验)

还是像之前一样登录进去先修改一次信息,抓包查看

 

 

 这次我们发现post提交并没有将敏感信息放在url中提交,而是放在了最下面的表单中提交。我们这次的思路是和xss post一样伪造一个表单页面,让用户点击然后修改用户信息

 

 

 

 

 这是我们伪造的页面代码,我们把这个html放在www目录下,只要用户点击这个页面的链接,我们就可以将其地址信息修改为hacker

 

 

3.CSRF(token)

打开CSRF(token)登录后,我们修改信息抓包后发现,url中多了token一串字符,token是随机生成的,如果后台是对比token的值来操作的话,我们就无法伪造url了。

 

 

 

 

 

 

防护:

  • 增加Token验证(常用做法)
    • 对关键操作增加Token参数,token必须随机,每次都不一样
  • 关于安全的会话管理(避免会话被利用)
    • 不要在客户端保存敏感信息(比如身份验证信息)
    • 退出、关闭浏览器时的会话过期机制
    • 设置会话过机制,比如15分钟无操作,则自动登录超时
  • 访问控制安全管理
    • 敏感信息的修改时需要身份进行二次认证,比如修改账号密码,需要判断旧密码
    • 敏感信息的修改使用POST,而不是GET
    • 通过HTTP头部中的REFERER来限制原页面
  • 增加验证码
    • 一般在登录(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)

 

posted on 2020-04-04 18:38  匠心a  阅读(1438)  评论(0编辑  收藏  举报

导航