Ich habe gelesen, dass AngularJs eine Art Sandbox verwendet, um das Ausführen beliebiger Ausdrücke in {}} geschweiften Klammern zu verhindern. Abhängig von der Angular-Version gibt es mehrere Beispiele dafür, wie diese Sandbox zu entfernen ist. In der Version 1.4.0 - 1.4.9 funktioniert der folgende Codeausschnitt beispielsweise, wenn ich ihn in den Code einfüge.Was sind die Auswirkungen von Angularjs Sandbox Escaping?
{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}
Was ich nicht verstehe ist, warum es so eine große Sache ist? Das obige Beispiel funktioniert nur, wenn der Ausdruck bereits in HTML war. Warum sollte ich Sandbox entkommen anstatt nur < 'Skript> mit regulären XSS injizieren?
{{<script>alert(1)</script>}}
Wie funktioniert diese Sandbox entkommen, was bezieht sich auf $ sanieren und $ sce?
Ich kenne den Unterschied zwischen $ sce und $ sanitize. Was ich nicht weiß ist, ob diese Sandbox-Umgehung verwendet werden kann, um der Bereinigung zu entgehen oder die Sicherheit auf andere Weise zu verletzen. Wenn nicht, sollte ich mich dann darum sorgen? Ich frage, weil ich [einige Artikel] (http://blog.portswigger.net/2016/01/xss-without-html-client-side-template.html) darüber gelesen habe, aber ich tue immer noch ' t wie es in der Praxis eingesetzt werden kann. – JakubM