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
Supongo que ese ?id=hola, es una consulta a la base de datos o en su defecto archivo de texto. xD
Este elcodigo que estoy usando
<?
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.";
}
}
?>
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.
En este caso es mejor usar switch que if/else:
switch($_GET[id]){
case "Hola":
//codigo
break;
case "otracosa":
//otro codigo xD
break;
default:
//codigo si no se cumple ninguna condicion deseada
//algo como
echo "Error, opcion invalida";
break
}
ademas de ser mas estructurado, te evitas todo el filtrado...
Saludetes
@[ u ]nsigned y si son 100 paginas las que se piensa incluir?
ese source lo hiciste o lo copiaste, porque puedes estar preguntando algo y el source dice otra cosa sin darte cuenta
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:
@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.
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.
<?
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.";
}
}
?>
Cita de: neopuerta360 en 19 Octubre 2010, 23:27 PM
... de que cada vez que hagamos una nueva pagina no debamos de poner todo el grafico entienden!
No!
Cita de: 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.
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
<?
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.";
}
}
?>
hiciste el codigo o lo copiaste???
Veo como raras esas regexp xD
string $pattern. WTF! ;-)
Cita de: ~ Yoya ~ en 19 Octubre 2010, 23:54 PMVeo como raras esas regexp xD
+1
lo copieeeeeeeeeeeee!
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!
y porque no lo haces mejor? eso es basico man
Asi esta bien el codigo?
<?
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");
}
}
?>
No, creo que tiene LFI.
Que??
tampoco pruebas lo que haces...
como si no puedo.
Cita de: neopuerta360 en 20 Octubre 2010, 01:00 AMcomo si no puedo.
A Tí y otras 100 personas más les gusta esto.
Ok.vere como lo hago que funcione gracias!
y si no puedes quieres que probemos tus sources?
Cita de: ~ Yoya ~ en 20 Octubre 2010, 01:15 AM
y si no puedes quieres que probemos tus sources?
Bueno si pueden.
Cita de: neopuerta360 en 20 Octubre 2010, 00:10 AM
Asi esta bien el codigo?
<?
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");
}
}
?>
No funciona. xD
Ok.Gracias
Dejemosnos de bromas. XD.
Sabes que hace el código, entiendes las funciones que tiene?
si!
Podrías decirme que es string $pattern?
Si es el codigo que me diste.
No, solo te dije que ya no se utiliza.
Citarstring 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.
Entonces como hago.XD
Algo así, aunque tiene LFI. XD
function _validate($sFile){ #function include file
if(empty($sFile)){
return "The variable is empty.\n";
}else{
if(file_exists($sFile)){
return "The file exist.\n";
}else{
return "The file not exist.\n";
}
}
}
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.
$id = htmlspecialchars(trim($_GET["id"]));
$id = eregi_replace("<[^>]*>","",$id) ;
$id = eregi_replace(".*//","",$id);
Modifica eregi_replace, por
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
Así,
$sRegex = "/<[^>]*>/i";
$sReplace = "";
$sString = "<script>javascript:alert(/XSS/);</script>";
echo preg_replace($sRegex, $sReplace, $sString)."\n";
Resultado,
shellroot@alex-laptop:~/Escritorio$ php PoC.php
javascript:alert(/XSS/);
[^>]*
Esa patron eliminara todo excepto el >
Codigo solucionado que si funcionona: :D
<?
// Donde se incluyen las paginas de forma automatica (con la url index.php?id=nombrepagina
// se abriria la pagina nombrepagina.php en esta parte).
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 {
include("error.php");
}
}
?>
;-)
No entiendo el funcionamiento de eso, supongamos que tengo un archivo con el siguiente nombre,
<'PoC.php
En la siguiente linea verifica si existe el nombre del archivo,
if(file_exists("$id.php")){
pero después realiza unos REPLACE's, así que al incluirlo quedaría así,
include('<'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,
$id = eregi_replace("<[^>]*>","",$id);
$id = eregi_replace(".*//","",$id);
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?
Y...
Leíste mi POST anterior? Lo entendiste?
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!
jajajajjajajajajaajajajajajajajajajajaajajajajajajajajajajaajajajajajajajajajajaajajajajajaajaajajajajajajajajajajaajajajajajajajajajajaajajajaja
Respondeme lo que te pregunte,
Cita de: Shell Root en 25 Octubre 2010, 03:56 AMLeíste mi POST anterior? Lo entendiste?
No no lo entendi,Lo que pasa es que yo no estudie esos codigos.
OMG! Los usas y sin saber para que sirven y cómo funcionan? OMG! ;-)
Ya veo que alguien algun dia te dira que el codigo funciona, que hace maravillas y tendra una shell a tu servidor.
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.
Cita de: neopuerta360 en 25 Octubre 2010, 22:14 PMY si se como sirve el codigo y para que funciona.para quelo sepas.
Cita de: neopuerta360 en 25 Octubre 2010, 04:12 AM...,Lo que pasa es que yo no estudie esos codigos.
Siiii, como digas...
jajaja que risa meda.Hablamos mañana por que tengo que estudiar XD.
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:
<?
if($id == "") {
include("principal.php");
}
else {
if(file_exists("$id.php")) {
include("$id.php"); }
else {
include("error.php");
}
}
?>
*Incluye la pagina por defecto...si no hemos activado la funcion "id" ejemplo: index.php?id=login
include("principal.php");
*Comprueba si la pagina existe ejemplo: login.php
if(file_exists("$id.php")) {
*Si la pagina existe la incluye...
include("$id.php"); }
*Si la pagina no existe incluye la pagina de error (error.php)
include("error.php");
Nota: Todas las paginas deben estar en el mismo directorio...
-Espero q hayan entendido, Gracias! ;D
Que bonito LFI! ;)
Lee sobre :http://projects.webappsec.org/w/page/13246949/Null-Byte-Injection
ok...