CSRF

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

如何检测

get请求

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

post请求

无token,无refere,则可能存在,如果有refere,可以把他设为空,再请求,或者在refere值前加任意字符,或者改为abcd.xxx.com若返回正常,则可能存在。
若都存在,则尝试去掉token,然后去掉refere,进行验证
无token,验证了refere信息,但可以改为get请求。则用第一种方法

漏洞利用

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

实例

通过bp的一个模块制造poc保存为html,访问发现成功修改
CSRF挖掘初探(转载) - 图1
CSRF挖掘初探(转载) - 图2
CSRF挖掘初探(转载) - 图3
CSRF挖掘初探(转载) - 图4

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
如图
CSRF挖掘初探(转载) - 图5
也可以是

  1. Access-Control-Allow-Origin: *

但不能是

  1. Access-Control-Allow-Origin: *
  2. Access-Control-Allow-Credentials: true

JSONP

Jsonp(JSON with Padding) 是 json 的一种”使用模式”,可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
跟CORS差不多,但只支持get请求

如何挖掘

主要看header的call和callback,修改后是否相同,相同则存在
CSRF挖掘初探(转载) - 图6
参考链接
https://www.freebuf.com/column/194652.html