XSS Cross-Site-Scripting - Jsp <Input> - tag
Den folgenden code in meine JSP verursacht eine cross-site-scripting-Schwachstelle auf der input-tag.
<form name="acctFrm" method="post" action="<%=contextPath%>/form/acctSummary?rpt_nm=FIMM_ACCT_SUMM_RPT">
<table>
<tr>
<td>Account Id:</td>
<td>
<input class="tbl1" type="text" id="acctId" name="acctId" size="20" maxlength="10" value="<%=rptBean.getAcctId()%>"/>
<a href="javascript:doAcctSubmit()"><img class="tbl1" src="<%=contextPath%>/img/Submit.gif" border="0" /></a>
</td>
</tr>
</table>
</form>
Während der Penetration Tests, die Sie in der Lage waren, warnen einige zufällige Nachricht an den Benutzer durch die Injektion eines alert-Skript in das value-Attribut der tag wie folgt
<input class="tbl1" type="text" id="acctId" name="acctId" size="20" maxlength="10" value="1"><script>alert(12345)</script>" />
Was ist das problem hier, und was wäre das fix.
War ich mit dem Lesen durch einige online-Referenzen auf XSS ich noch nicht 100% sicher, was könnte das Problem sein.
Jegliche Hilfe würde sehr geschätzt werden.
Dank,
Deena
InformationsquelleAutor Deena | 2012-08-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich die folgende Lösung,
Dem Scriptlet in das value-Attribut ist das problem, ich ersetzte es mit jstl-tag, ich habe irgendwo gelesen, dass jstl-tags haben inbuild Flucht-Mechanismus zu vermeiden, xss-Problemen.
Dies funktioniert gut für mein Problem.
Dank
InformationsquelleAutor Deena
Scheint es der penetration-Tester waren in der Lage zu manipulieren, um Ihre Sitzung so, dass rptBean.getAcctId() zurückgeben würde, für eine beliebige Zeichenfolge. Wenn Sie könnten Spritzen Anführungszeichen und eine Klammer, könnten Sie "force close" der
input
- tag und fügen Ihren eigenenscript
tag.Sieht es aus wie penetration-Testern bekam der Methode auf den string
1"><script>alert(12345)</script>
.Zeigt dies, dass Sie brauchen, um zu entkommen die Daten beim schreiben auf die Seite. Ich würde vorschlagen, dass Sie einen Blick auf die Antwort auf escaping von HTML in jsp.
Denken Sie auch daran, dass der code nicht "perfekt" formatiert für einen browser zu machen, es "richtig". Hier sind einige links auf, wie Angreifer kann versuchen auszuweichen XSS-Filter:
Immer behandeln, Benutzer-Daten, die als "gefährlich" und kümmern sich beim Rendern auf einer Seite.
InformationsquelleAutor ryucl0ud
Scheint es mit
jstl
tag<c:out value="">
im value-Attribut wird der zu Fehlern injstl
<form options>
tags,mehr info
XSS-Prävention in der JSP/Servlet web-Anwendung
InformationsquelleAutor Akhil S K
wenn
getAcctId()
zurückgegebenen Daten kommen aus der DB gefiltert werden kann vor dem senden an den client. zum Beispiel überprüfen Sie die Daten sollte eine Zahl sein.InformationsquelleAutor Jafar Mirzaei