Pikachu靶场——CSRF漏洞

漏洞简述

CSRF全称为跨站请求伪造(Cross-site request forgery),是一种网络攻击方式,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。也被称为 one-click attack 或者 session riding。

CSRF攻击原理

CSRF攻击利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作。

CSRF攻击防护

1.只使用JSON API
2.验证HTTP Referer字段
3.在请求地址中添加token验证

如何确认一个web系统存在CSRF漏洞

1.对目标网站增删改的地方进行标记,并观察其逻辑,判断请求是否可以被伪造
例如修改管理员账号时,不需要验证旧密码,导致请求容易被伪造;对于敏感信息的修改并没有使用安全的token验证,导致请求容易被伪造

2.确认凭证的有效期
虽然退出或关闭了浏览器,但cookie仍然有效,或者session并没有过期,导致CSRF攻击变得简单

第1关 CSRF(get)

进入靶场发现是一个登陆界面,所以我们直接点击提示得到账号密码进行登录。

成功登陆

点击修改个人信息进入修改界面点击submit进行修改 

发现url没有变化,点击提交之后就跳转到上图这个显示个人信息的页面了,信息也修改成功了

 使用burpsuit进行抓包修改,在提交修改个人信息的时候,可以抓包,看到下面的内容

从上面的url可见,修改用户信息的时候,是不带任何不可预测的认证信息的。那么,这里应该是可以被利用的。

登录状态下(其实这个链接里面是不包含用户名的,谁登录都无所谓,只要有人登录着就行,登录着的用户的信息就会被改成url提供的那些),试试改一改上面的链接,比如把电话号码改一改。浏览器地址栏输入payload:

127.0.0。1/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=123456789&add=nbaluckhouse&email=allen%40qq.com&submit=submit

 如果被攻击者此时登录状态或cookie/session没有过期,则她的信息被修改。

跳转到显示用户信息的地方,手机号已经被成功修改,攻击成功。

如下图:

如果觉得这个url过于明显,网上有很多短链接网站可以修饰url(百度搜索“短链接”就有很多)

第2关 CSRF(post) 

进入第二关,也是一个登陆界面,登陆的账号密码和第一关一样,依旧登陆allen账号进行修改

进入修改信息界面,点击submit 使用BP进行抓包
可以看到下图

 上图的请求报文来看,和前一关一样,没有不可预测的认证信息,可以被利用。

但是这一关是post类型,URL不再显示修改参数,所以无法再使用上述办法(即通过URL来伪造请求)进行修改,但是抓包可以知道本页面中有的标签以及name,方便后面构造表单时使用。

此时,黑客可以通过构造恶意站点,将POST请求隐藏在站点中的表单中,然后诱骗用户进行点击,当用户点击后触发表单,数据自然就POST到存在CSRF漏洞的网站,用户的信息则被恶意修改。

将写好的表单部署到黑客站点,这里因为是本机做演示,所以我放到Pikachu/vul/csrf/目录下

 最后,当用户在登录状态下,访问黑客站点(本机伪造的页面)并点击提交按钮,那么其个人信息将会被恶意修改,可以在控制台中看到点击按钮后触发的POST请求。

点击前:

点击后:

 成功修改。

第3关 CSRF (token) 

 登陆:

点击修改个人信息的按钮:

使用burp进行抓包:

 观察一下,很明显多了一个token,,在前面暴力破解那一关已经有解析过,这里就不作过多的解释了。

 尝试对token进行绕过:将请求包发送到Intruder模块

 攻击模式设置为Pitchfork,这里只把电话号码和token设置为了变量

 设置电话号码的payload,这里就不使用字典了,直接随便指定一个号码段

 下面这一步是关键,主要为了获取“上一次响应数据包”中的token值,在响应包中找到token值,规则添加成功

 把token值选中,并且复制下来,然后点OK。

 因为要重定向响应,这里设置为总是跟随重定向,选择always

 返回设置Payload2,选择Recursive grep,刚才抓取的代码就自动过来了,把初始值填在下面,打个勾就行了。

 因为需要提交token,所以不能使用多线程,需要把线程数改为1,使用单线程。

 点击Start attack开始攻击。

返回网页查看攻击成果

 第3关(方法2,使用插件)

继续账号登录。

安装和配置csrf插件,选择bp的 Extender 扩展模块,点击 BApp Store,找到 CSRF Token Tracker,点击 Install 进行安装

 选中新安装的这个模块,配置请求地址和请求参

 再次进行抓包

 配置攻击设置,把数据包发送到重发模块

 就修改一下电话号码值

 点击Send发送数据包

 再点击上面的Follow redirection按钮,页面刷新如下

 返回查看插件,查看结果

 释放包,浏览器查看页面

 成功!!!

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值