前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CORS-Vulnerable-Lab:与COSR配置错误相关的漏洞代码靶场

CORS-Vulnerable-Lab:与COSR配置错误相关的漏洞代码靶场

作者头像
FB客服
发布2019-08-20 11:33:03
1.5K0
发布2019-08-20 11:33:03
举报
文章被收录于专栏:FreeBufFreeBuf

此存储库包含与CORS配置错误相关的易受攻击代码。你可以在本地机器上配置易受攻击的代码,以实际利用与CORS相关的错误配置问题。

在此,我想首先感谢@albinowax,AKReddy,Vivek Sir,Andrew Sir和@vanderaj对该项目的支持以及对我的鼓励!

实验环境设置

以下是在本地/远程机器上配置易受攻击代码的必要条件:

Apache web server PHP 5/7 MySQL Database

配置步骤:

1.下载并解压缩Web服务器的“htdocs”或webroot目录中的代码。

2.打开PHPMyAdmin并创建名为“ica_lab”的新数据库。

3.如果你想使用MySQL“root”用户帐户,请跳过以下步骤直接到第5步。

4.通过执行以下SQL命令,创建一个名为“billu”的新用户:

代码语言:javascript
复制
grant all on ica_lab.* to billu@localhost IDENTIFIED BY 'b0x_billu';

5.在文本编辑器中打开“c0nnection.php”,并在PHP中进行如下更改:

代码语言:javascript
复制
change $conn = mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab");  to$conn = mysqli_connect("127.0.0.1","root","","ica_lab");

6.在PHPMyAdmin中,选择“database”,然后单击数据库名称“ica_lab”。

7.单击“Import”按钮,然后在本地计算机上浏览找到SQL转储文件“ica_lab.sql”。该文件位于存储库目录“database”中。

8.找到SQL数据库文件后,单击“Go”按钮。现在,数据库已准备就绪。

9.访问“CORS Vulnerable Lab”应用。

10.登录凭证已在输入字段中指定,只需单击“Let Me In”按钮即可。

靶场中的可用挑战

该实验环境中共模拟了3种错误配置。

应用程序信任任意来源

应用程序接受来自任意Origin的CORS请求。代码将“Origin”值放置在HTTP响应头“Access-Control-Allow-Origin”中。现在,此配置将允许来自任意“Origin”的任意脚本向应用发出CORS请求。Web浏览器将执行标准的CORS请求检查,而来自恶意域的脚本将能够窃取数据。

应用程序错误的“正则表达式”实现检查可信来源

应用程序已实施CORS策略,并对列入白名单的域/子域执行“正则表达式”检查。在这种情况下,应用程序在代码中实现了一个弱正则表达式,该代码仅检查在HTTP请求“Origin”头中的任意位置是否存在“b0x.com”域。如果HTTP头“Origin”的值为“inb0x.com”或b0x.comlab.com,则正则表达式会将其标记为pass。这种错误配置将导致跨域共享数据。

应用程序信任 Origin 头中指定 null 值

在此场景中,应用程序HTTP响应头“Access-Control-Allow-Origin”始终设置为“null”。当用户指定除null值以外的任意值时,应用程序将不会处理它,并在HTTP响应中保持“null”。很少有技巧允许攻击者执行攻击,并且可以使用CORS请求过滤受害者的数据。

示例

应用程序信任任意来源

应用程序接受“Origin”头中指定的任意值。

应用程序错误的“正则表达式”实现检查可信来源

应用程序信任白名单列表中的Origin。

应用程序不允许任何任意Origin。

在域名启动时应用弱正则表达式允许具有白名单域名字符串的Origin。

在域名末尾应用弱正则表达式允许具有白名单域名字符串的Origin。

应用程序信任 Origin 头中指定 null 值

应用程序接受“Origin”头中指定的“null”值。

应用程序不接受除“null”“Origin”之外的任意值。

*参考来源:GitHub,FB小编secist编译,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验环境设置
    • 配置步骤:
    • 靶场中的可用挑战
      • 应用程序信任任意来源
        • 应用程序错误的“正则表达式”实现检查可信来源
          • 应用程序信任 Origin 头中指定 null 值
          • 示例
            • 应用程序信任任意来源
              • 应用程序错误的“正则表达式”实现检查可信来源
                • 应用程序信任 Origin 头中指定 null 值
                相关产品与服务
                云数据库 MySQL
                腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档