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

织梦建站教程下载/360优化大师软件

织梦建站教程下载,360优化大师软件,软件测试工程师工资,ppt模板免费下载 素材第一pptES6中的模板字符串和新XSS Payload 众所周知,在XSS的实战对抗中,由于防守方经常会采用各种各样严格的过滤手段来过滤输入,所以我们使用的XSS Payload也会根据实际情况作出各种各样的调整,最常见的如避免括号,避免引号&…

ES6中的模板字符串和新XSS Payload

a15b4afegw1f9lxoekx7ej20i307taab

众所周知,在XSS的实战对抗中,由于防守方经常会采用各种各样严格的过滤手段来过滤输入,所以我们使用的XSS Payload也会根据实际情况作出各种各样的调整,最常见的如避免括号,避免引号,避免关键字等,以绕开过滤函数的检查,从而成功将代码注入到网页中运行。

在传统的XSS Payload变形中,常用的无非有以下几种:

  1. 使用String.fromCharCode来避免关键字,如String.fromCharCode(97,108,101,114,116,40,49,41);

  2. 使用URL编码来避免括号的识别,如location=’alert%281%29’;

  3. 使用正则对象的特点来避开引号,如alert(/1/);
    在多年的研究中基本上传统的变形手段都被研究的差不多了,很难找到创新的绕开手段。

然而,近几年ECMAScript新版本的不断发展和推行,在带来了各种激动人心的语言特性的同时,也不可避免地带来了一些新的安全挑战。本文中所说的模板字符串,便是ECMAScript 6草案中的一种新特性

MDN中所述,模板字符串(Template literals)允许嵌入表达式,并且支持多行字符串和字符串插补特性。基本语法为以下几种:

a15b4afegw1f9lxofa6byj20nl068dfv

其中第一行为最基本用法,即使用反引号 (‘`’) 来代替普通字符串中的用双引号和单引号。

第二行为多行字符串用法,即反引号中文本可以直接接受换行而不必使用\n换行符来强制换行。

第三行则为模板字符串的最核心用法,即反引号中的${expression}占位符中expression可以为任意的JavaScript表达式,甚至为模板字符串。

第四行则为使模板字符串变强大的最主要原因,如果一个模板字符串由表达式开头,则该字符串被称为带标签的模板字符串,该表达式通常是一个函数,它会在模板字符串处理后被调用,在输出最终结果前,你都可以在通过该函数对模板字符串来进行操作处理。

第三行的用法我们称之为“表达式插补“,在普通字符串中嵌入表达式时,必须使用如下语法:

a15b4afegw1f9lxog3ugxj20jf04eq3a

现在通过模板字符串,我们可以使用一种更优雅的方式来表示:

a15b4afegw1f9lxogyma9j20je046dg6

第四行的用法我们称之为”带标签的模板字符串“,模板字符串的一种更高级的形式称为带标签的模板字符串。它允许您通过标签函数修改模板字符串的输出。标签函数的第一个参数是一个包含了字符串字面值的数组(在本例中分别为“Hello”和“world”);第二个参数,在第一个参数后的每一个参数,都是已经被处理好的替换表达式(在这里分别为“15”和“50”)。 最后,标签函数返回处理好的字符串。在后面的示例中,标签函数的名称可以为任意的合法标示符。

a15b4afegw1f9lxohu0frj20jc09k3zr

在了解了以上知识后,我们不难发现,对于一个最简单的XSS Payload:alert(‘A’)来说,我们可以利用上述例子第一行的知识,使用“ `”来代替引号,即成为alert( `A `)。之后,使用第四行的标签用法,我们可以直接去除括号,将alert作为标签,写成 alert `A `。最后,由于ECMAScript 6中支持直接用码点(code point)来表示Unicode字符,即直接写成"反斜杠+u+码点"。因此为避免alert关键字被识别,我们可以使用Unicode字符来替换alert几个字符,将payload写成\u0061\u006c\u0065\u0072\u0074 `A `。 此时最终的payload已经完全见不到alert关键字,括号,以及引号了。测试结果如下:

a15b4afegw1f9lygce0qcj20jg0f1758

如果需要将这个payload当做字符串作为函数参数,则可以按照表达式插补的写法,直接在外层套一个`${}`即可,例如:`${alert `A`}` 或 `${\u0061\u006c\u0065\u0072\u0074`A`}` 。则console.log(`${alert `A`}`)也可以弹出。

以上的方法经测试,在最新版本的Chrome,Firefox以及Edge浏览器中均可以执行。我们可以看出,ES6的新方法给我们带来便利的同时,也给XSS字符的安全监测带来了新的挑战。

作者:负羽,更多安全类文章,请访问阿里聚安全博客

http://www.jmfq.cn/news/5031487.html

相关文章:

  • 贵阳做网站公司排名/手机百度识图网页版入口
  • 商城网站建设合同范本/seo模拟点击软件源码
  • 苏州园区网站制作公司/seo排名培训学校
  • 做网站公司南京/国外网站制作
  • 奉贤做网站制作/中国seo排行榜
  • 安装不了wordpress/宁波网站优化公司推荐
  • 织梦图片网站/网站友链查询接口
  • 伍佰亿网站怎样/国内新闻最近新闻今天
  • 中国建设银行网站怎么解绑设备/2023国内外重大新闻事件10条
  • 旅游网站开发实训报告/目前最流行的拓客方法
  • 做问卷的网站有那些/官方网站百度一下
  • 免费做图素材网站有哪些/北京网络网站推广
  • 江西网站开发科技公司/营销策略有哪些方法
  • wordpress首页添加logo/优化服务公司
  • 个人网站建立教程/seo排名赚app是真的吗
  • 建网站都要什么费用/营销模式有哪些
  • 挣钱最快的游戏/百度关键词优化师
  • 做网站工作怀孕/广告公司是做什么的
  • 网站建设网站建设哪家好/中视频自媒体账号注册下载
  • 国外服务器网站/广告投放平台系统
  • 企业网站报价表/培训心得简短200字
  • 如何自学建网站/什么是搜索引擎优化?
  • 佛山行业网站设计/百度推广课程
  • 泰安房产成交信息网/临沂seo顾问
  • 响应式做的比较好的网站/google推广教程
  • 做发型的网站/安卓系统最好优化软件
  • 建设厅网站沙场限期通知书/百度95099怎么转人工
  • 信誉好的福州网站建设/谷歌竞价推广教程
  • 北京微信网站建设公司/抖音搜索引擎推广
  • 网页设计作品html+css作品源码/seo上首页排名