Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: neopuerta360 en 18 Octubre 2010, 23:39 pm



Título: Necesito ayuda con esto.
Publicado por: neopuerta360 en 18 Octubre 2010, 23:39 pm
Hola atodos tengo una pregunta como hago que si index.php?id=hola no existe salga una pagina de error entienden.

como un include error.php  :D


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 18 Octubre 2010, 23:44 pm
Supongo que ese ?id=hola, es una consulta a la base de datos o en su defecto archivo de texto. xD


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 19 Octubre 2010, 00:39 am
Este elcodigo que estoy usando

Código:
 <? 
if($id == "") {
include("principal.php");
}
else {
if(file_exists("$id.php")) {
$id = htmlspecialchars(trim($_GET["id"]));
$id = eregi_replace("<[^>]*>","",$id) ;
$id = eregi_replace(".*//","",$id) ;
include("$id.php");
}
else {
echo "Puede que la página solicitada ya no exista haya cambiado de nombre</br> o  no esté disponible temporalmente.";
}
}
?>



Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 19 Octubre 2010, 01:51 am
string eregi_replace  ( string $pattern  , string $replacement  , string $string  )
   Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.


Título: Re: Necesito ayuda con esto.
Publicado por: [u]nsigned en 19 Octubre 2010, 03:41 am
En este caso es mejor usar switch que if/else:

Código
  1. switch($_GET[id]){
  2. case "Hola":
  3. //codigo
  4. break;
  5. case "otracosa":
  6. //otro codigo xD
  7. break;
  8. default:
  9. //codigo si no se cumple ninguna condicion deseada
  10. //algo como
  11. echo "Error, opcion invalida";
  12. break
  13. }

ademas de ser mas estructurado, te evitas todo el filtrado...

Saludetes


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 19 Octubre 2010, 03:58 am
@[ u ]nsigned y si son 100 paginas las que se piensa incluir?


Título: Re: Necesito ayuda con esto.
Publicado por: ~ Yoya ~ en 19 Octubre 2010, 04:13 am
ese source lo hiciste o lo copiaste, porque puedes estar preguntando algo y el source dice otra cosa sin darte cuenta


Título: Re: Necesito ayuda con esto.
Publicado por: VLestat en 19 Octubre 2010, 07:27 am
No entiendo del todo bien la pregunta.. pero si quieres comprobar la existencia de ?id=loquesea puedes hacerlo con isset o no?
Si no es eso explicate un poco mejor  :rolleyes:


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 19 Octubre 2010, 21:24 pm
@VLestat, NO!. Él no esta verificando si la variable tiene valor. Él quiere verificar si existe un archivo que es pasado por GET[] e incluirlo, de lo contrario, incluir un archivo de error.


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 19 Octubre 2010, 23:27 pm
No ese codigo no lo hice yo; Mi preguna es la siguiente:
que si por ejemplo la pagina ?id=hola no existe como hago que salga la siguiente pagina de error error.php entienden?


*Ha el siguiente codigo funciona de que cada vez que hagamos una nueva pagina no debamos de poner todo el grafico entienden! y de ven abrir la pagina asi hola.php se abre index.php?id=hola asi pra que pueda funcionar.

Código:
<? 
if($id == "") {
include("principal.php");
}
else {
if(file_exists("$id.php")) {
$id = htmlspecialchars(trim($_GET["id"]));
$id = eregi_replace("<[^>]*>","",$id) ;
$id = eregi_replace(".*//","",$id) ;
include("$id.php");
}
else {
echo "Puede que la página solicitada ya no exista haya cambiado de nombre</br> o  no esté disponible temporalmente.";
}
}
?>


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 19 Octubre 2010, 23:30 pm
... de que cada vez que hagamos una nueva pagina no debamos de poner todo el grafico entienden!
No!

string eregi_replace  ( string $pattern  , string $replacement  , string $string  )
   Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 19 Octubre 2010, 23:42 pm
Lo que quiero decir es que si este es el codigo del grafico:

-----------------
---------------
----------
----------

por "ejemplo". No hay que volverlo poner por que se pone automaticamente  y en donde queramos que la  pagina salga  ponemos el codigo que les di que funciona como un include. Ya entendiste?

Ha asi esta mejor el codigo

Código:

<?
if($id == "") {
include("principal.php");
}
else {
if(file_exists("$id.php")) {
$id = htmlspecialchars(trim($_GET["id"]));
$id = string $pattern("<[^>]*>","",$id) ;
$id = string $pattern(".*//","",$id) ;
include("$id.php");
}
else {
echo "Puede que la página solicitada ya no exista haya cambiado de nombre</br> o  no esté disponible temporalmente.";
}
}
?>



Título: Re: Necesito ayuda con esto.
Publicado por: ~ Yoya ~ en 19 Octubre 2010, 23:54 pm
hiciste el codigo o lo copiaste???

Veo como raras esas regexp xD


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 19 Octubre 2010, 23:56 pm
string $pattern. WTF!  ;-)

Veo como raras esas regexp xD
+1


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 19 Octubre 2010, 23:56 pm
lo copieeeeeeeeeeeee!


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 00:00 am
el codigo esta bien por que me funciona,solo lo que quiero hacer es de ben
Puede que la página solicitada ya no exista haya cambiado de nombre o  no esté disponible temporalmente.

sea un include!


Título: Re: Necesito ayuda con esto.
Publicado por: ~ Yoya ~ en 20 Octubre 2010, 00:04 am
y porque no lo haces mejor? eso es basico man


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 00:10 am
Asi esta bien el codigo?

Código:

<?
if($id == "") {
include("principal.php");
}
else {
if(file_exists("$id.php")) {
$id = htmlspecialchars(trim($_GET["id"]));
$id = string $pattern("<[^>]*>","",$id) ;
$id = string $pattern(".*//","",$id) ;
include("$id.php");
}
else {
include("error.php");
}
}
?>




Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 20 Octubre 2010, 00:34 am
No, creo que tiene LFI.


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 00:42 am
Que??


Título: Re: Necesito ayuda con esto.
Publicado por: ~ Yoya ~ en 20 Octubre 2010, 00:47 am
tampoco pruebas lo que haces...


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 01:00 am
como si no puedo.


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 20 Octubre 2010, 01:00 am
como si no puedo.
A Tí y otras 100 personas más les gusta esto.


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 01:07 am
Ok.vere como lo hago que funcione gracias!


Título: Re: Necesito ayuda con esto.
Publicado por: ~ Yoya ~ en 20 Octubre 2010, 01:15 am
y si no  puedes quieres que probemos tus sources?


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 01:22 am
y si no  puedes quieres que probemos tus sources?


Bueno si pueden.


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 20 Octubre 2010, 01:23 am
Asi esta bien el codigo?

Código
  1.  
  2. <?
  3. if($id == "") {
  4. include("principal.php");
  5. }
  6. else {
  7. if(file_exists("$id.php")) {
  8. $id = htmlspecialchars(trim($_GET["id"]));
  9. $id = string $pattern("<[^>]*>","",$id) ;
  10. $id = string $pattern(".*//","",$id) ;
  11. include("$id.php");
  12. }
  13. else {
  14. include("error.php");
  15. }
  16. }
  17. ?>
  18.  
No funciona. xD


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 01:29 am
Ok.Gracias


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 20 Octubre 2010, 01:32 am
Dejemosnos de bromas. XD.

Sabes que hace el código, entiendes las funciones que tiene?


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 01:54 am
si!


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 20 Octubre 2010, 01:59 am
Podrías decirme que es string $pattern?


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 02:01 am
Si es el codigo que me diste.


Título: Re: Necesito ayuda con esto.
Publicado por: ~ Yoya ~ en 20 Octubre 2010, 02:01 am
Si es el codigo que me diste.

Que chico xD.


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 20 Octubre 2010, 02:05 am
No, solo te dije que ya no se utiliza.

Citar
string eregi_replace  ( string $pattern  , string $replacement  , string $string  )
   Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 20 Octubre 2010, 02:06 am
Entonces como hago.XD


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 20 Octubre 2010, 02:13 am
Algo así, aunque tiene LFI. XD

Código
  1.    function _validate($sFile){ #function include file
  2.        if(empty($sFile)){
  3.            return "The variable is empty.\n";
  4.        }else{
  5.            if(file_exists($sFile)){
  6.                return "The file exist.\n";
  7.            }else{
  8.                return "The file not exist.\n";
  9.            }
  10.        }
  11.    }

Y no entiendo porque haces esto después de que si se encuentra el archivo. Creo que debería ser antes. Aún así no entiendo del porque.
Código
  1.    $id = htmlspecialchars(trim($_GET["id"]));
  2.    $id = eregi_replace("<[^>]*>","",$id) ;
  3.    $id = eregi_replace(".*//","",$id);

Modifica eregi_replace, por
Código
  1. mixed preg_replace  ( mixed $pattern  , mixed $replacement  , mixed $subject  [, int $limit = -1  [, int &$count  ]] )

Así,
Código
  1.    $sRegex        = "/<[^>]*>/i";
  2.    $sReplace    = "";
  3.    $sString    = "<script>javascript:alert(/XSS/);</script>";
  4.    echo preg_replace($sRegex, $sReplace, $sString)."\n";

Resultado,
Código
  1. shellroot@alex-laptop:~/Escritorio$ php PoC.php
  2. javascript:alert(/XSS/);


Título: Re: Necesito ayuda con esto.
Publicado por: ~ Yoya ~ en 20 Octubre 2010, 02:21 am
Código
  1. [^>]*
Esa patron eliminara todo excepto el >


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 25 Octubre 2010, 01:08 am
Codigo solucionado que si funcionona: :D

Código
  1. <?
  2. // Donde se incluyen las paginas de forma automatica (con la url index.php?id=nombrepagina
  3. // se abriria la pagina nombrepagina.php en esta parte).
  4. if($id == "") {
  5. include("principal.php");
  6. }
  7. else {
  8. if(file_exists("$id.php")) {
  9. $id = htmlspecialchars(trim($_GET["id"]));
  10. $id = eregi_replace("<[^>]*>","",$id) ;
  11. $id = eregi_replace(".*//","",$id) ;
  12. include("$id.php");
  13. }
  14. else {
  15. include("error.php");
  16. }
  17. }
  18. ?>
  19.  

 ;-)



Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 25 Octubre 2010, 01:29 am
No entiendo el funcionamiento de eso, supongamos que tengo un archivo con el siguiente nombre,
Código
  1. <'PoC.php

En la siguiente linea verifica si existe el nombre del archivo,
Código
  1. if(file_exists("$id.php")){

pero después realiza unos REPLACE's, así que al incluirlo quedaría así,
Código
  1. include('&lt;'PoC.php.php');
Así que no existiría... :p

Otra cosa, al pasar la función htmlspecialchars(); en la cadena, no creo que se cumplan la siguientes lineas,
Código
  1. $id = eregi_replace("<[^>]*>","",$id);
  2. $id = eregi_replace(".*//","",$id);


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 25 Octubre 2010, 03:48 am
El codigo funciona de la siguiente manera,para abrir una pagina en ben de asi hola.php se abre asi: index.php?id=hola, pero si por ejemplo la pagina no existe o en link esta rroto, etc. Nos diria un error el cual uno alla puesto.

ejemplo:

La pagina no existe.

entiendes?



Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 25 Octubre 2010, 03:56 am
Y...

Leíste mi POST anterior? Lo entendiste?


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 25 Octubre 2010, 03:57 am
Este codigo no es para saber si una pagina existe o no. Es para agregarle un efecto a nuestra web y tambien no ahorramos volver hacer una pagina desde el principio. La pagina que puse error.php es para hacer nuestra propia pagina de error ya que tengo problemas en hacerla en mi@.

XD entendiste?? :huh: ;D

NO!


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 25 Octubre 2010, 04:00 am
jajajajjajajajajaajajajajajajajajajajaajajajajajajajajajajaajajajajajajajajajajaajajajajajaajaajajajajajajajajajajaajajajajajajajajajajaajajajaja

Respondeme lo que te pregunte,
Leíste mi POST anterior? Lo entendiste?


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 25 Octubre 2010, 04:12 am
No no lo entendi,Lo que pasa es que yo no estudie esos codigos.


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 25 Octubre 2010, 04:18 am
OMG! Los usas y sin saber para que sirven y cómo funcionan? OMG!  ;-)


Título: Re: Necesito ayuda con esto.
Publicado por: [L]ord [R]NA en 25 Octubre 2010, 07:03 am
Ya veo que alguien algun dia te dira que el codigo funciona, que hace maravillas y tendra una shell a tu servidor.


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 25 Octubre 2010, 22:14 pm
Lo que quiero decir es que no entendi lo que me pregunto
Shell Root.

Y si se como sirve el codigo y para que funciona.para quelo sepas.


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 25 Octubre 2010, 23:44 pm
Y si se como sirve el codigo y para que funciona.para quelo sepas.
...,Lo que pasa es que yo no estudie esos codigos.

Siiii, como digas...


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 26 Octubre 2010, 03:34 am
jajaja que risa meda.Hablamos mañana por que tengo que estudiar XD.


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 15 Diciembre 2010, 01:23 am
Hola a todos ya arregle el codigo q nesesitava....si los dejo y se lo explico...Ha ya se mas de php.jejejeje :laugh: :laugh:


Código
  1. <?
  2. if($id == "") {
  3. include("principal.php");
  4. }
  5. else {
  6. if(file_exists("$id.php")) {
  7. include("$id.php"); }
  8. else {
  9. include("error.php");
  10. }
  11. }
  12. ?>
  13.  

*Incluye la pagina por defecto...si no hemos activado la funcion "id" ejemplo: index.php?id=login
Código:
include("principal.php"); 

*Comprueba si la pagina existe ejemplo: login.php
Código:
if(file_exists("$id.php")) {

*Si la pagina existe la incluye...
Código:
include("$id.php"); } 

*Si la pagina no existe incluye la pagina de error (error.php)
Código:
include("error.php"); 

Nota: Todas las paginas deben estar en el mismo directorio...

-Espero q hayan entendido, Gracias! ;D


Título: Re: Necesito ayuda con esto.
Publicado por: Shell Root en 15 Diciembre 2010, 01:31 am
Que bonito LFI! ;)

Lee sobre :http://projects.webappsec.org/w/page/13246949/Null-Byte-Injection


Título: Re: Necesito ayuda con esto.
Publicado por: neopuerta360 en 15 Diciembre 2010, 03:24 am
ok...