Bypass de un filtro XSS

Iniciado por Debci, 19 Julio 2010, 20:39 PM

0 Miembros y 1 Visitante están viendo este tema.

KaozC9

Ando con la misma duda, he intentado muchas cosas, pero ya veremos que resulta


Debci

Cita de: ~ Yoya ~ en 20 Julio 2010, 00:17 AM
lo que veo es que escapa las comillas simples y dobles con barras invertidas xD, al parecer tiene la directiva  Magic_quotes_gpc ON o usa la funcion addslashes()...

Aunque nose porque tu mismo escapas las comillas, algo raro no xD
Citar"\'<script>alert();</script>'\"
XD porque ya harto de probar y no saber que hacerle ya...
Alguna recomendación?

Saludos

KaozC9

el terreno es este, esta como si fuese un
Código (php) [Seleccionar]
<? echo addslashes(htmlentities($mensaje)); ?>

Debci

Cita de: KaozC9 en 21 Julio 2010, 01:34 AM
el terreno es este, esta como si fuese un
Código (php) [Seleccionar]
<? echo addslashes(htmlentities($mensaje)); ?>
Y aunque intente cosas como:
Código (php) [Seleccionar]
'" style="a:b;margin-top:-1000px;margin-left:-100px;width:4000px;height:4000px;display:block;" onmouseover=alert(1); a="'
'" onmouseover=alert(1) a="'
'"><script>alert(1)</script><'


No funciona :S
Y es lo que sugiere el siguiente post para bypassear el addslashes:

http://r00tsecurity.org/forums/topic/9924-workaround-strip-tags-and-addslashes-in-the-xss/

Saludos

cgvwzq

Si lo que hace es simplemente escapar las comillas simples y dobles (con barra invertida), no tiene mayor dificultad:

" onevent=foo() tr="

"><script>foo()</script><a tr="

Si eso no funciona, es que hace algo más... Si pegas el cacho de html entero, igual lo veo mejor.
Some stuff:

  • www.a] parsed as www.a]
  • Bypass elhacker's img filter with ALT attribute!
  • ¿Para cuándo SQLi I y II? WZ



Debci

Eso hice yo en un principio pero nada :s
La pagina del reto es esta:

http://www[.]diosdelared[.]com/home/retos/competencia/cassini/

Tienes que hacer que la zapateria cassini redirecione a otra URL, automaticamente.

Saludos

Shell Root

Pero es que se necesitaría saber el entorno en el que se trabaja. Por ejemplo, supongamos que sea como lo dice KaozC9, pero en que ámbito se muestra/imprime el valor.
Código (php) [Seleccionar]
<html>
<body>
   <form action="index.php" method="GET">
      <input type="text" name="txtPoC" />
      <input type="submit" value="Enviar" />
   </form>
   <?php # Bypassing de filtro
      
echo "<input name='txtResult' value='".addslasheshtmlentities$_GET['txtPoC'] ))."' />";
   
?>

</body>
</html>

Se podría fácilmente bypassear como lo dice el LINK que pusisteis.
Código (PoC) [Seleccionar]
' onmouseover=alert(1) a='
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Debci

Cita de: Shell Root en 21 Julio 2010, 18:19 PM
Pero es que se necesitaría saber el entorno en el que se trabaja. Por ejemplo, supongamos que sea como lo dice KaozC9, pero en que ámbito se muestra/imprime el valor.
Código (php) [Seleccionar]
<html>
<body>
   <form action="index.php" method="GET">
      <input type="text" name="txtPoC" />
      <input type="submit" value="Enviar" />
   </form>
   <?php # Bypassing de filtro
      
echo "<input name='txtResult' value='".addslasheshtmlentities$_GET['txtPoC'] ))."' />";
   
?>

</body>
</html>

Se podría fácilmente bypassear como lo dice el LINK que pusisteis.
Código (PoC) [Seleccionar]
' onmouseover=alert(1) a='
Yo tampoco puedo saber el entorno porque es un wargame, si puediese descargarlo lo haria pero no puedo.

Saludos

KaozC9

#19
Yo creo que el entorno es como digo [aunque al reves, me corrijo... htmlentities(addslashes())
], pero no se puede bypassear como dices Shell Root porque el codigo fuente es asi

Código (html4strict) [Seleccionar]

<div id="stuff">
<center>
<img src=images.jpg><br>
<br>
___________________________________________________<br>
<a href=#>Nicolas:</a><br>
Quiero comprar zapatos al por mayor, espero su respuesta.<br>
___________________________________________________<br>
<a href=#>Juan:</a><br>
Estos zapatos si que molan, no como los de Leonpole.<br>
___________________________________________________<br>
<a href=#>Pedro:</a><br>
Me encataron los zapatos, gracias.<br>
___________________________________________________<br>
<a href=#>Don Leonpole:</a><br>
Leonpole es el mejor!! Estos zapatos son muy malos.<br>
___________________________________________________<br>
<br>
Deje su mensaje:
<form method=post>
Su nombre:<br>
<input name=nombre type=text><br>
Su web:<br>
<input name=mensaje type=text><br>
Su mensaje:<br>
<input name=mensaje2 type=text><br>
<input type=submit value=enviar>
</form>
</div>


Cuando se postea algo, queda asi

Código (php) [Seleccionar]

<? echo '___________________________________________________<br>
<a href="http://ddlr.servepics.com/rd.php?go='.htmlentities(addslashes($_POST["mensaje"])).'">'.htmlentities(addslashes($_POST["nombre"])).'</a><br>'.htmlentities(addslashes($_POST["mensaje2"])).'<br>
___________________________________________________<br>';


Resultado:
" -> \&quot;
' -> \'
< -> &lt;
> -> &gt;
& -> &amp;

al colocar solo la cremilla doble seria
Código (html4strict) [Seleccionar]
<a href="http://ddlr.servepics.com/rd.php?go=\&quot;">\&quot;</a><br>\&quot;<br>

A todo esto, debci, estoy en el puesto 99 y tu?