ng-app指令下的DOM XSS | AngularJS 表达式
ng-app作用是告诉子元素以下的指令是归angularJs的,angularJs会识别。
angularJs共有4大模块构成MVC,模块和依赖注入、指令,双向数据绑定,虽然分为四大块但是我觉得无论使用那一块的知识都离不开指令,也就是说指令贯穿整个angularJs的应用。MVC里的控制器ng-controller是指令,获取、同步数据ng-model是指令;模块和依赖注入ng-app也是指令;双向数据绑定更不用说。所以说指令是angularJs的基础
复现
目标是一个搜索框
发现使用 ng-scope 指令,随便输入一些内容
输入以下 AngularJS 表达式:
{{$on.constructor('alert(1)')()}}
内容被 AngularJS 识别并解析
所以遇见双引号和尖括号都被过滤的情况别立马就放弃,找找其他突破点
AngularJS 表达式
AngularJS 表达式写在双大括号内:{{ expression }}。
AngularJS 表达式把数据绑定到 HTML。
AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文字、运算符和变量。
例如 {{ 5 + 5 }}
更多实例可跳转至菜鸟教程
https://www.runoob.com/angularjs/angularjs-expressions.html