实验室:反映了带有Angularjs沙箱逃脱的XS
专家
该实验室使用Angularjs以一种不寻常的方式$评估
功能不可用,您将无法使用AngularJ中的任何字符串。
要解决实验室,执行跨站脚本逃脱沙箱并执行的攻击警报
功能不使用$评估
功能。
解决方案
访问以下URL,更换您的LAB-ID
使用您的实验室ID:
https://your-lab-id.beplay体育能用吗web-security-academy.net/?search=1&toString().constructor.prototype.charat type.charat%3d [] join; [1](120,61,97,108,101,114,116,40,49,41)= 1
利用用途tostring()
在不使用引号的情况下创建字符串。然后得到细绳
原型和覆盖charat
每个字符串的功能。这有效地打破了Angularjs沙箱。接下来,将数组传递给订单
筛选。然后,我们通过再次使用tostring()
创建一个字符串和细绳
构造函数属性。最后,我们使用从charcode
方法通过将字符代码转换为字符串来生成我们的有效载荷x =警报(1)
。因为charat
功能已被覆盖,AngularJS将允许此代码在通常不会。
社区解决方案beplay维护得多久
迈克尔·索默(Michael Sommer)