freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

SRC必会技巧——CORS跨域漏洞
小王的黑色短裤 2024-06-09 19:14:30 382512

一、同源策略介绍

同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读取对方的资源,所以,abc.com下的js脚本采用ajax读取def.com里面的文件数据是会被拒绝的。

同源策略限制了从同一源文件的文档或脚本如何与来自另一个源的资源进行交互,这是一个用于隔离潜在恶意文件的重要安全机制。

二、解决跨域问题

由于同源策略的影响,当我们从一个域名的网页去请求另一个域名的资源时,就无法成功获取资源。如果我们想要成功获取资源,那么就要用到跨域。

跨域解决方案:jsonp,cors,postMessage。

三、CORS跨域资源共享

CORS跨域资源共享漏洞一般在于请求包当中Origin请求头,然后去观察相应包当中Access-Control-Allow-Origin当网站发起跨域资源请求时,服务端将返回协议,并且浏览器添加Origin。

1717930816_66658b40ca9ef4472daab.png!small?1717930817869

请求头当中添加Origin:www.abc.com随意输入一个网址,查看相应包发现Access-Control-Allow-Origin:www.abc.com内容随之改变。

在正常情况下,服务器端返回Access-Control-Allow-Origin:*的时候资源可以被本地域进行访问,当变成null表明可以被任意外域进行访问。

1717930837_66658b551df1c777f3826.png!small?1717930838362

如图所示请求,在请求包当中不存在origin协议但是发现相应包存在目标协议,则可以进行具体分析,在请求包当中添加Origin协议,测试是否可以进行外域访问,当然这一步的前提是查看是否相应包当中存在敏感信息,如果存在在进行跨域。

  1. 是否存在敏感信息。
  2. 相应包是否存在Access-Control-Allow-Origin
  3. 查看请求头是否有Origin,有则尝试跨域,无则添加Origin协议
  4. 查看是否相应包协议跟随请求包协议进行变化

我们这里对请求包和相应包进行一下详解:

request:

1  GET /resources/public-data/ HTTP/1.1
2  Host: bar.com
3  User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre
4  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
5  Accept-Language: en-us,en;q=0.5
6  Accept-Encoding: gzip,deflate
7  Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
8  Connection: keep-alive
9  Referer: http://example.com/examples/access-control/simpleXSInvocation.html
10 Origin: http://example.com

response:

11  HTTP/1.1 200 OK
12  Date: Mon, 01 Dec 2020 00:23:53 GMT
13  Server: Apache/2.0.61 
14  Access-Control-Allow-Origin: *
15  Keep-Alive: timeout=2, max=100
16  Connection: Keep-Alive
17  Transfer-Encoding: chunked
18  Content-Type: application/xml

这里request是请求首部,在第十行Origin表明该请求来源于http://example.com.

response可以看到http://bar.com的服务端响应,响应中携带了响应首部字段Access-Control-Allow-Origin

使用OriginAccess-Control-Allow-Origin就能完成最简单的访问控制了,本例中,服务端返回的Access Access-Control-Allow-Origin:*表明,该资源可以被任意外域进行访问,如果服务端仅允许来自http://example.com的访问,该首部字段的内容如下:

Access-Control-Allow-Origin: http://example.com

如果跨域请求可以包含cookie的话,在服务端响应应该有这一字段:

Access-Control-Allow-Credentials: true

这样的话攻击者就可以利用这个漏洞来窃取已经在这个网站登录了的用户的信息(利用cookie)。

四、漏洞利用

1、这里以droabox靶场为例

1717930942_66658bbed63e1547f5cd7.png!small?1717930943541

这个接口会返回已经登录的用户信息数据,通过访问该网页的响应我们可以看到这里可能存在CORS跨域资源共享漏洞。

可试读前30%内容
¥ 19.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# web安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 小王的黑色短裤 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
小王的黑色短裤 LV.5
公众号:赤弋安全团队
  • 33 文章数
  • 69 关注者
【红队笔记】实战中如何用SPF识别钓鱼邮件
2025-03-14
代码审计——SpringBoot SpEL 表达式注入漏洞
2025-03-06
SRC必会技巧-Jsonp漏洞
2024-06-09
文章目录