同源策略
同源策略规定:不同域的客⼾端脚本在没有授权的情况下,不能读写对方的资源。
即:一个浏览器打开多个页面,这几个页面只能读取自己的数据。
同域:相同域名,端口相同,协议相同,缺⼀不可。
跨域
AJAX
Asynchronous JavaScript AND XML,全称是异步的Javascript和XML。是指⼀种创建交互式、快速动态 ⽹⻚应⽤的⽹⻚开发技术,⽆需重新加载整个⽹⻚的情况下,能够更新部分⽹⻚的技术。XML是说数据传输 的格式是XML,但其实返回的数据还有可能是JSON(⽬前已经成为主流),⽂本,HTML等。
AJAX虽然好用,但是他没法获取跨域数据。
可以跨域的标签
<scriptsrc="..."></script>
<imgsrc="...">
<videosrc="..."></video>
<audiosrc="..."></audio>
<embedsrc="...">
<framesrc="...">
<iframesrc="..."></iframe>
<linkrel="stylesheet"href="...">
........
可以使用这些标签来跨域请求远程资源,但 是,这些标签是负责执行JS的,但是AJAX返回的是JSON数据,不符合JS语法,所以我们只有想办法整一个回调函数,这里我们就要用到JSONP了。
JSONP
JSONP 全称是 JSON with Padding ,是基于 JSON 格式的为解决跨域请求资源而产⽣的解决⽅案。他实 现的基本原理是利用了HTML里<script></script>
标签,远程调⽤JSON⽂件来实现数据传递。
JSONP过滤不当可能会造成反射型XSS导致信息泄露:
网站B对网站A的JSONP请求没有过滤时,B对A直接返回数据。B存在JSONP漏洞。
挖掘思路
- 找JSONP接口
site:target.cominurl:?callback=
- 在请求(F12)中寻找JSONP接口
- 工具生成payload测试
JSON注入
类似与sql注入,只是注入到JSON数据格式里去。