CORS配置错误漏洞

基础概念

在部署SOP的情况下,为了实现跨域通信,开发人员必须使用不同的技术来绕过SOP,以便传递敏感信息。这种“绕过”发生了太多次,本身已经成为一个安全问题。因此,为了在不影响应用程序安全状态的前提下实现信息共享,HTML5中引入了跨域资源共享(CORS)这种机制,但这并没有解决所有问题。当人们想偷工减料,或者没有意识到潜在风险而开始使用默认配置或者错误配置的CORS时,就会出现一些问题。

错误配置的通配符

HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

在这个例子中,头部字段中包含一个通配符(*),这意味着任何域都可以访问目标资源。

利用错误匹配的不完整域名

HTTP/1.0 200 OK
Access-Control-Allow-Origin: requester.com
Access-Control-Allow-Credentials: true

if ($_SERVER['HTTP_HOST'] == '*requester.com')
 {
  //Access data
  else{ // unauthorized access}
}

使用如下请求头也可以成功获取到相应的请求。

GET /api/userinfo.php
Host: example.com
Connection: close
Origin: attackerrequester.com
posted @ 2024-08-17 18:04  Ho1d_F0rward  阅读(8)  评论(0编辑  收藏  举报