Tak trochę nawiązując do posta @Wibowita https://4programmers.net/Forum/1583932
Mam jakiś prawie pusty widok Index.cshtml
, a w nim button do wysłania GETa na serwer, który zwraca View
jako string, oraz diva do wstrzyknięcia tego stringa.
Wstrzykiwanie:
document.getElementById("Injectable").innerHTML = response;
Index.cshtml
<button onclick="xss()">Inject html</button>
<div id="Injectable">
</div>
Tutaj kod XSS.cshtml
którego renderuje i zwracam jako string do w/w GETa i wstrzykuje w diva Injectable
@{
Layout = "";
}
<script>
alert('XSSdd')
</script>
<b>test</b>
<img src="https://www.w3schools.com/html/pic_trulli.jpg" alt="Italian Trulli">
I ku mojemu zdziwieniu b
oraz img
są poprawnie renderowane, a script
się nie wykonuje
Dlaczego? jeżeli w zwrotce z kontrolera jest:
<script>
alert('XSSdd')
</script>
<b>test</b>
<img src="https://www.w3schools.com/html/pic_trulli.jpg" alt="Italian Trulli">
W ogóle jak jest z bezpieczeństwem takiego rozwiązania?