Duda sobre RFI e include

Iniciado por dimitrix, 11 Enero 2008, 21:08 PM

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

dimitrix

Bien, cuento mi problema, tenía pensado hacer una web para traducir las letras "Kana" (hiragama & katakana) a letras normales a Romanji.
Quería importar por include la página web que quería traducir por ejemplo: http://www.lenapark.jp/news.php y una vez importada modificar los caracteres ya con un código mio.
La miedo que tengo es... si alguien tiene en su web un código maligno que borra el index.php ¿Me afectaría?
Por una parte pienso que no ya que primero se ejecuta en su servidor y me lo manda como html, como mucho un XSS, cosa que no me importa, pero por otra parte está lo de RFI (Remote File Inclusion), así que por eso os pregunto a vosotros.

Gracias.




alone-in-the-chat


:-\

Al hacer un include el codigo php de esa pagina se ejecutara en tu pagina
por que no pruebas con un file_get_contents


Saludos
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

dimitrix

Cita de: alone-in-the-chat en 11 Enero 2008, 21:29 PM

:-\

Al hacer un include el codigo php de esa pagina se ejecutara en tu pagina
por que no pruebas con un file_get_contents


Saludos

Pero hay una cosa que no entiendo, si eso es cierto, se podría conseguir el código php de cualquier web ¿No?




alone-in-the-chat

Al contrario cualquier web podria acceder a las variables que tu manejas
te pongo un ejemplo , ves esos usuarios que se colocan nicks como conozco tu ip , etc , etc
Ellos juegan con los valores que tiene este servidor , el codigo se ejecuta en ese servidor y este servidor nunca lo ve pero ellos pueden acceder a los parametros que el servidor del foro esta usando .
Lo maximo que podrias hacer es acceder a la salida que genere ese script .

Pero yo creo que si haces pruebas seria mucho mejor y verias como son las cosas en la practica.


Saludos

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

dimitrix

Valen, gracias, una última pregunta, entonces... ¿google que hace? por que su traductor no tendría el mismo problema?




alone-in-the-chat

El traductor de Google lo unico que hace es traducir la salida generada
, osea el codigo HTML , es un caso muy diferente .


Saludos


Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

baZZ

si haces un include a un documento PHP con extension .php estas importando ese documento después de ser ejecutado en el servidor del cual lo estas importando. El problema de RFI es cuando incluyes documentos externos que no tienen formato .php y que por tanto no son ejecutados en el servidor, en ese caso si por ejemplo pudieses incluir cualquier archivo y yo en un archivo incluyese un script php maligno y luego le pegases un include a ese archivo, ése codigo se ejecutaria en tu servidor, y es cuando tendrias un problema. Asegurate de incluir solo la salida HTML de las paginas. Ir haciendo includes de servidores externos al tuyo no es una practica en absoluto segura
- EVGA ATX - Intel X58
- i7 920 @ 3,2 Ghz
- 2x260 gtx 216 SLI
- 3x1 GB OCZ DIMM DDR3 1600 Mhz
- Tacens Sagitta II
- Seagate 7200.12
Falta:
- T.R.U.E ^^
- i7 @ 4,0 Ghz

???

Cita de: dimitrix en 11 Enero 2008, 21:08 PM
Bien, cuento mi problema, tenía pensado hacer una web para traducir las letras "Kana" (hiragama & katakana) a letras normales a Romanji.
Quería importar por include la página web que quería traducir por ejemplo: http://www.lenapark.jp/news.php y una vez importada modificar los caracteres ya con un código mio.
La miedo que tengo es... si alguien tiene en su web un código maligno que borra el index.php ¿Me afectaría?
Por una parte pienso que no ya que primero se ejecuta en su servidor y me lo manda como html, como mucho un XSS, cosa que no me importa, pero por otra parte está lo de RFI (Remote File Inclusion), así que por eso os pregunto a vosotros.

Gracias.

Estas tomando la vía facil y eso hace vulnerable tu web...

En lugar de hacer un Include has un script que lea el codigo generado por la pagina y lo filtre (busque y elimine comandos peligrosos, osea todo lo que sea codigo Php o JS) luego ya puedes traducir el contenido filtrado sin miedo de ser atacado... ;)

Salu2

dimitrix

Ya lo se, pero si filtro algunas cosas la web podría acabar dañada, por ejemplo si quito un include que ponía el menu lateral pues se quedará sin el menu lateral, no hay ninguna forma de que se ejecute como HTML o recibirlo como html? Ya que como no va ser de registrar cuentas me da igual los XSS, por que uso el código de limpiar para mucho, para variables get/post, para que no me hagan RFI ni XSS y por eso se, que hay que tener cuidado con lo que limpias.




WHK

#9
Con fgets (sockets) haces una petición get y guardas su contenido en una variable, luego usas tu traductor para poner en pantalla el texto


Código (php) [Seleccionar]
error_reporting(0);
$pagina $_GET["pagina"];
if (!$abre = fsockopen($pagina, 80, $errno, $errstr, 30)) {
echo "La p&aacute;gina no se encuentra disponible por el momento.<br />\n";
} else {
$salida = "GET / HTTP/1.1\r\n";
$salida .= "Host: $pagina\r\n";
$salida .= "Connection: Close\r\n\r\n";
fwrite($abre, $salida);
while (!feof($abre)) {
  echo fgets($abre, 128);
}
fclose($da);
}
echo traduccion($contenido);


No tendrás problemas de XSS a menos que el xss lo tenga la pagina que vas a pedir el texto y si intentan pedir una shell no se ejecutará sino que se traducirá solamente ya que no forma parte del código fuente como si fuera un include, este solo se aloja en la variable.