So che questa domanda è stata discussa in rete varie volte. e le persone danno qualche esempio su come bypassare queste funzioni passando il codice. Ma qui un problema, Tutti gli esempi di htmlentities / htmlspecialchars sono correlati quando incorporiamo come valore di attributo come
<a href="" title="<?php echo htmlentities([XSS_CODE]) ?>"></a>
OR
<img onerror="<?php echo htmlentities([XSS_CODE]) ?>" />
Ma se ho bisogno di mostrare i dati come contenuti come di seguito.
<div><?php echo htmlentities([XSS_CODE]) ?></div>
Come potrebbe essere insicuro. Dato che il codice non ha trigger / eventi come nel caso di attributi, questo dovrebbe essere sicuro in tutti i casi.
Ho studiato link . Quasi tutti gli esempi di attacco XSS / filtro bypass non funzionano per un determinato caso. Ho provato il valore con codifica esadecimale di < & > come indicato nell'ultimo paragrafo dell'URL, ma che ancora una volta ha fallito e si è rivelato semplicemente come dati.
In realtà ho dei dubbi su link che hanno alcune combinazioni che non sono gestite da htmlentities come \ x3c, \ u003c,% 3C. Mentre io stesso non sono in grado di produrre e sfruttare il loro utilizzo.
Ho provato un esempio come
$code = "\x3cstrong\x3eHello World\x3\cstrong\x3e";
// OR
$code = "\u003cstrongu003eHello Worldu003c\cstrongu003e";
<div><?php echo htmlentities($code); ?></div>
Nota: ho provato tutti gli attacchi su Firfox 40 in una macchina Ubuntu.