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

网站创意策划方案wordpress侧边栏加速

网站创意策划方案,wordpress侧边栏加速,c2c的盈利模式,网站模板绑定域名进入实验随意进入一篇博客 我们可以尝试随意提交一些恶意代码看看会发生什么 很显然我们提交成功了但是我们的恶意代码貌似被过滤了 查看源码发现这里有一个过滤框架 我们打开源码分析 function loadComments(postCommentPath) {let xhr new XMLHttpRequest();xhr.onreadys…进入实验随意进入一篇博客 我们可以尝试随意提交一些恶意代码看看会发生什么 很显然我们提交成功了但是我们的恶意代码貌似被过滤了 查看源码发现这里有一个过滤框架 我们打开源码分析   function loadComments(postCommentPath) {let xhr new XMLHttpRequest();xhr.onreadystatechange function() {if (this.readyState 4 this.status 200) {let comments JSON.parse(this.responseText);displayComments(comments);}};xhr.open(GET, postCommentPath window.location.search);xhr.send();function escapeHTML(data) {return data.replace(/[]/g, function(c){return # c.charCodeAt(0) ;;})} //我们主要分析这里以下的代码上面是通过ajax重新将过滤后的页面展示在前端function displayComments(comments) {let userComments document.getElementById(user-comments);for (let i 0; i comments.length; i){comment comments[i];let commentSection document.createElement(section);commentSection.setAttribute(class, comment);let firstPElement document.createElement(p);//它先是在寻找是否有头像如果没有的话它会使用默认的头像let defaultAvatar window.defaultAvatar || {avatar: /resources/images/avatarDefault.svg}let avatarImgHTML img classavatar src (comment.avatar ? escapeHTML(comment.avatar) : defaultAvatar.avatar) ;let divImgContainer document.createElement(div);divImgContainer.innerHTML avatarImgHTMLif (comment.author) {//可以看到这是对提交连接的一个展示if (comment.website) {let websiteElement document.createElement(a);websiteElement.setAttribute(id, author);websiteElement.setAttribute(href, comment.website);firstPElement.appendChild(websiteElement)}//对用户提交的名称做了过滤let newInnerHtml firstPElement.innerHTML DOMPurify.sanitize(comment.author)firstPElement.innerHTML newInnerHtml}//这里它使用了默认的时间if (comment.date) {let dateObj new Date(comment.date)let month (dateObj.getMonth() 1);let day dateObj.getDate();let year dateObj.getFullYear();if (month.length 2)month 0 month;if (day.length 2)day 0 day;dateStr [day, month, year].join(-);let newInnerHtml firstPElement.innerHTML | dateStrfirstPElement.innerHTML newInnerHtml}firstPElement.appendChild(divImgContainer);commentSection.appendChild(firstPElement);if (comment.body) {let commentBodyPElement document.createElement(p);//用框架过滤我们的评论内容commentBodyPElement.innerHTML DOMPurify.sanitize(comment.body);commentSection.appendChild(commentBodyPElement);}commentSection.appendChild(document.createElement(p));userComments.appendChild(commentSection);}} }; 通过分析我们知道了 对于提交的用户名称以及用户的评论的内容它使用了过滤框架对我们的提交内容做了过滤 对于提交的链接和邮箱它里面有正则对我们的提交的内容进行了限制 怎么办呢 我们分析代码可以看到它在获取头像和展示头像时没有使用框架进行过滤 这里可以看到它本身是没有defaultAvarat这个值的 我们可以想一想这个值是不是可以被替换如果可以被替换那我们最终的代码是不是可以被放在img标签的src中 这里就是一个由于⾮标准化的 DOM ⾏为浏览器有时可能会向各种 DOM 元素添加 name id 属性作为对⽂档或 全局对象的属性引⽤但是这会导致覆盖掉 document原有的属性或全局变量或者劫持⼀些变量的内容 通过这个例子我们可以看出这是完全可行的 也就是说如果我们可以让window.defaultAvatar 1 οnerrοralert(1) 然后放入到我们的img标签中我们是否就实现一个弹窗的效果   let avatarImgHTML img classavatar src (comment.avatar ? escapeHTML(comment.avatar) : defaultAvatar.avatar) ; 我们可以看到这段代码最终是将defaultAvatar.avatar放在了img中 这是一个两个层级的关系所以我们应该实现   img iddefaultAvatarimg iddefaultAvatar nameavatar 让它通过defaultAvatar拿到两个标签然后通过avatar拿到我们写有恶意代码的标签 这样的话我们可以构造我们的恶意代码   a iddefaultAvatara iddefaultAvatar nameavatar hrefcid:quot;onerroralert(1)// cid是过滤框架允许使用的协议但是这个协议不对双引号进行url编码所以我们需要写实体编码 我们就ok了
http://www.zqtcl.cn/news/211375/

相关文章:

  • 公司网站模板怎么做自适应网站设计尺寸
  • 滨州正规网站建设价格简单网站制作
  • 创建网站平台电商系统源码
  • 滕州本地网站建设网站维护中模版
  • 商城类网站设计制作开发公司 张庆
  • seo擦边球网站宝安网站制作
  • 文山北京网站建设wordpress漂亮破解主题
  • 做网站需要什么证明嘛wordpress和自己写
  • 蚌埠市网站建设公司网站建设 技术 哪些
  • 网站收录查询临沂seovisual c 网站开发
  • 国际空间站vs中国空间站做网站在哪里接活
  • 怎样宣传网站营销外包公司
  • 工程网站模板制作教程具有价值的专业网站建设平台
  • 用wex5可以做网站吗邯郸seo快速排名
  • 高端品牌网站建设兴田德润可信赖网络运营方案怎么写
  • 新公司网站建设合肥关键词排名优化
  • 网站排名优化+o+m西安网络推广平台公司
  • 找网站建设公司需要注意什么常州网站建设公司好么
  • 不备案的网站很慢网站双线主机优势
  • 南京电子商务网站建设23个营销专业术语
  • 建设银行官网官方网站学习网页制作的网站
  • 开发网站需要什么硬件今年最流行的装修风格
  • 门户网站建设中标结果百度资讯指数
  • 定制企业网站开发公司网站建设的6个基本步骤
  • 网站建设与维护案列网站作品怎么做
  • 茂名放心营销网站开发seo收费
  • 旅游网站品牌建设本地使用宝塔安装wordpress
  • 专门做外链的网站制作论坛类网站模板免费下载
  • 靖江建设行业协会网站投资做网站
  • 做网站视频背景潍坊网站制作建设