前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从HackerOne学Client-Side Template Injection with AngularJS

从HackerOne学Client-Side Template Injection with AngularJS

作者头像
鸿鹄实验室
发布2021-04-15 11:31:21
6620
发布2021-04-15 11:31:21
举报
文章被收录于专栏:鸿鹄实验室鸿鹄实验室

这几天一直跟着团队的小伙伴刷HackerOne,然后就遇到了这个漏洞,记录一下。

关于漏洞原理什么的,可以去看https://portswigger.net/research/xss-without-html-client-side-template-injection-with-angularjs而且就连微软也曾经中过招https://www.uedbox.com/post/12042/

这里就不再论述原理性的东西了,咱们来看一下这个漏洞的具体表现形式是什么样的。

关于漏洞的复现我们可以使用github的集成环境https://github.com/tkmru/client-side-template-injection-sample,也可以使用老外的在线环境,老外的环境的好处就是支持多个AngularJS版本的切换。

我这里以在线环境为例,给大家演示下该漏洞。

https://old.liveoverflow.com/php/angularjs/angular1.4.7.php?q=hello+world

在我们输入hello world的时候,会直接把我们的字符打印在页面上,而模板注入比如我们输入{{7+7}},就会得到14,说明语句已经成功运行。

这个时候我们就可以使用我们的相关语句,构造xss了。每个版本的bypass语句不同,列表如下:

以我们测试环境的1.4.9为例,我们使用下面的语句,就可以成功弹框:

代码语言:javascript
复制
{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}

所以以后在遇到AngularJS的站的时候i,我们不妨去试试这个漏洞。

除了手工检测之外,我们也可以使用对应的工具进行检测(有些误报),下载地址在最后:

只是最后,这个漏洞没通过,唉

工具下载地址:

代码语言:javascript
复制
https://github.com/tijme/angularjs-csti-scanner

-THE END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿鹄实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档