一次渗透测试引发的Json格式下CSRF攻击的探索

0x00 前言

漏洞背景

hw时期在电信三巨头之一旗下的子公司出差,做一下渗透测试。公网的业务主挖逻辑漏洞,但是每次挖着挖着就变成了CSRF攻击,出差半个月算是把这辈子的CSRF都给挖完了。

testme师傅说的一句话:开发者修或不修,挖洞者觉得鸡肋不鸡肋,CSRF漏洞就躺着那里。这一次的体会很深,某云基本所有的业务逻辑都存在CSRF洞。

CSRF原理

一次渗透测试引发的Json格式下CSRF攻击的探索_第1张图片

还是来梳理一下大致的流程

1.用户C浏览并登录信任网站A

2.验证通过,Web A产生一个Cookie返回给用户C

3.用户在没有等处的情况下访问Web B

4.B要求访问第三方站点Web A,发出一个请求

5.浏览器带着步骤2产生的Cookie,根据步骤4的请求访问Web A

这就造成了一次CSRF攻击,原理是利用目标用户的合法身份,以用户的名义执行非法操作

0x01 常见CSRF利用

GET型CSRF

这里选择DVWA的low级,可以抓包查看修改密码的请求如下

一次渗透测试引发的Json格式下CSRF攻击的探索_第2张图片

可以看到发送了一个GET请求,来看看有哪些HTML元素可以实现这一请求

HTML中能够设置src/href等链接地址的标签都可以发起一个GET请求,具体如下: