CSRF挖掘初探

CSRF

跨站请求伪造,盗用已登陆用户的身份发送,执行恶意请求,在所有执行操作的地方都有可能存在。

如何检测

get请求

如果包内没有token验证参数,而固定变量可以被控制则可能存在。

post请求

无token,无refere,则可能存在,如果有refere,可以把他设为空,再请求,或者在refere值前加任意字符,或者改为abcd.xxx.com若返回正常,则可能存在。

若都存在,则尝试去掉token,然后去掉refere,进行验证

无token,验证了refere信息,但可以改为get请求。则用第一种方法

漏洞利用

通过对参数增删改实现自己的目的
可以构造poc前端使用户访问执行

实例

通过bp的一个模块制造poc保存为html,访问发现成功修改

b6.png

b4.png

b7.png

b5.png

CORS

CORS,跨域资源共享(Cross-origin resource sharing),是H5提供的一种机制,WEB应用程序可以通过在HTTP增加字段来告诉浏览器,哪些不同来源的服务器是有权访问本站资源的,当不同域的请求发生时,就出现了跨域的现象。

当用户请求A网站的自己用户信息时,又恰好点击了攻击者构造的恶意网站页面B,则B会接收到用户的敏感信息!

如何挖掘

CORS的漏洞主要看当我们发起的请求中带有Origin头部字段时,服务器的返回包带有CORS的相关字段并且允许Origin的域访问。

打开BurpSuite,选择Proxy模块中的Options选项,找到Match and Replace这一栏,勾选Request header 将空替换为Origin:foo.example.org的Enable框。然后访问该网站,看发送后Origin是否为foo.example.org

如图
b8.png

也可以是
Access-Control-Allow-Origin: *

但不能是

Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

JSONP

Jsonp(JSON with Padding) 是 json 的一种”使用模式”,可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

跟CORS差不多,但只支持get请求

如何挖掘

主要看header的call和callback,修改后是否相同,相同则存在

b9.png

参考链接
https://www.freebuf.com/column/194652.html

  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2020 丰年de博客

请我喝杯咖啡吧~

支付宝
微信