|
4231
|
Programación / PHP / Re: [Proyecto] Codificador de múltiples algoritmos
|
en: 8 Octubre 2008, 23:35 pm
|
Si lo habia pensado pero como deberías insertarlo en la pagina? talves el script pueda tomar desde el primer carácter '\x' hasta el último mas 2 carácteres para abarcar el último decimal y eliminar todo lo que no sea letra, número o '\' y a eso hacerle un explode por cada '\x' y con un for strlen($buffer) decodificar cada carácter y devolverlo en htmlspecialchars.
Lo malo es que como controlo si alguien no ingresa ese tipo de conversión pero tampoco ingresa la función completa sino solamente los carácteres de escape en hexadecimal... bueno ahi lo pienso.
Gracias.
|
|
|
4232
|
Programación / PHP / [Proyecto] GreenCode-Coder V1.1.3
|
en: 8 Octubre 2008, 23:22 pm
|
Hola, estoy haciendo un codificador de múltiples algoritmos parecido al sneak ( vease sneak) pero creando cada función yo mismo. Quería saber si alguien desea aportar al proyecto y poder aprender cada ves mas de forma unida. La fuente la dejo => acáy el demo => acáLa idea es hacer un solo codificador y decodificador para cualquier tipo de tarea que necesitemos. La conversión puede ser en cualquier formato que pueda ser escrito o descargado. Si alguien quiere dar algún aporte aparecerá en el readme que integraré cuando lo suba a sourceforge. V1.1.3 Conversiones soportadas: 21 (11/10/2008)- Ascii a Base64
- Ascii a decimal
- Ascii a Hexadecimal
- Ascii a HTML (con semicolones)
- Ascii a HTML (sin semicolones)
- Ascii a HTMLSpecialChars
- Ascii a MD5
- Ascii a Octal
- Ascii a PHP(Base64+GZ+Hexa)
- Ascii a PNG PHP
- Ascii a Sha1
- Ascii a SQLi DWord(0x00)
- Ascii a SQLi Char(dec)
- Ascii a Unescape javascript
- Ascii a Urlencode
- Base64 a Ascii
- Hexadecimal a Decimal
- Octal a Decimal
- PHP(Base64+GZ+Hexa) a Ascii
- Protección de código PHP
- Urlencode a Ascii
- Hexadecimal a Ascii
- Ascii a Binario IO
- Binario IO a Ascii
- Decimal a Ascii
- htmlspecialchars_decode
- Decimal a octal
- Generar htpasswd md5
- Generar htpasswd sha
- Generar htpasswd crypt
EjemploASCII a SQLi DWord(0x00) => ../../../../../etc/passwd => funcion(0x2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f6574632f706173737764) Usohttp://www.site.com/?page_id=-1+union+select+1,load_file(0x2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f6574632f706173737764),3
Ideas, aportes, opiniones, criticas contructivas y no constructivas?¿?
|
|
|
4234
|
Seguridad Informática / Nivel Web / Re: SMF 1.1.6 Filter Post Bypass
|
en: 5 Octubre 2008, 17:12 pm
|
Y eso esta para que lo utilize el que sepa sdc o es que muy dificil tapar ese fallo, lo voy a utilizar algun dia... Así parece ser, un usuario hero de simple machines respondió que era tan dificil de resolver que simplemente no será reparado This is a known 'bug' however it isn't something we're going to fix. The reason for this is that checking for every single way of getting around the filter would take a lot of time. http://www.simplemachines.org/community/index.php?topic=266023.0Además como dicen mis amigos arabes این مورد مشکل امنیتی نیست . در واقع راهی برای دور زدن فیلترینگ هست که اگر چک کنید بقیه forum ها هم همین مشکل رو دارن vBulletin - PHPBB - SMF & .... También se puede usar en todos los foros que utilizen este sistema. http://www.mambolearn.com/forum/index.php?action=printpage;topic=16766.0
|
|
|
4235
|
Seguridad Informática / Nivel Web / SMF 1.1.6 Filter Post Bypass
|
en: 4 Octubre 2008, 10:15 am
|
Bueno en realidad esto lo pude descubrir o redescubrir pero hasta ahora nadie lo ha posteado en ningún lado, se trata sobre un sistema de foros llamado Simple Machines Forum donde puedes administrar el tipo de contenido que puede tener el foro, por ejemplo puedes evitar entre comillas que alguier escriba la palabra "fuck" o "n00b", etc pero es muy facil de sobrepasar tal sistema de seguridad: El problema está en que SMF no verifica si algún BBCode es núlo insertando divisiones de estilos en el post y en algunos casos sin ser cerrados causando un pequeño deface en la página evitando filtros de spam y control de palabras. En algunos casos sitios webs donde debes registrarte para ver los links puedes utilizar esta técnica para bypasear su MOD que impide su visualización interrumpiendo los carácteres "http://" Aquí una demostración: Fuente: http://www.jccharry.com/blog/2008/10/04/whk_smf-116-filter-post-bypass.htmlhttp://milw0rm.com/exploits/6665
|
|
|
4236
|
Programación / PHP / Re: Refrescar un php desde otro php
|
en: 3 Octubre 2008, 05:28 am
|
Para mi gusto no puedes poner funciones que funcionen en un explorador y en otro no, debes de llebar la compatibilidad basada en estandares. Claro, me podrías decir como hacerlo en ambos exploradores?
|
|
|
4237
|
Programación / PHP / Re: Refrescar un php desde otro php
|
en: 3 Octubre 2008, 05:15 am
|
Algo así está bién? Demo: http://lab.jccharry.com/seguridad_web_doc/captcha1.php<?php if($_GET['accion'] == 'captcha'){ header("Content-type: image/png"); echo "No se puede inicializar el módulo GD"; } $_SESSION['clave'] = md5(rand(1,100)); $_SESSION['clave'] = substr($_SESSION['clave'], 0, 6); imagestring($imagen, 12, 5, 5, $_SESSION['clave'], $color_texto); }else{ if($_POST['clave']){ $estado = "La clave es válida"; }else{ $estado = "La clave es inválida"; } }else{ $estado = "Sin acciones"; } } ?> <html> <head> </head> <body> <b>Ingresa el siguiente código:<br> <img src="<?php echo $_SERVER[PHP_SELF]; ?>?accion=captcha" onclick="this.src='<?php echo $_SERVER[PHP_SELF]; ?>?accion=captcha';" /><br> <form method="post"> <input type="text" name="clave"> <input type="submit" value="Enviar"> </form> <br><br> Estado: <b><?php echo $estado; ?></b> </body> </html>
El único detalle es que la función ... onclick="this.src ... solo funciona en Internet Explorer.
|
|
|
4238
|
Programación / PHP / Re: Refrescar un php desde otro php
|
en: 2 Octubre 2008, 16:39 pm
|
No es ajax, simplemente esa función que pusiste dice que al hacer click sobre la imagen esta se reemplazará por la imagen que aparezca en esta url:
captcha.php?newtime= + (new Date()).getTime()
Donde newtime es un identificador de la captcha pero eso sería muy manipulable por un atacante asi que te recomiendo que uses sesiones con session start y cookies.
cuando haces una petición a captcha.php dejas en una base de datos el hash que debes responder y si respondes a loguin.php con ese mismo hash que estaba en la base de datyos entonces puedes ingresar, cuando refrescas la imagen el hash se modifica con UPDATE dentro de la MySQL ovbiamente ese hash sería el resultado de la imagen, o también puedes alojar la respuesta dentro de la cookie pero con $_SESSION[] para que el visitante no pueda modificarlo.
Cuando buelva del trabajo haré algunos ejemplos.
|
|
|
4239
|
Programación / PHP / Re: Tutorial: Crear area restringida con php en nuestra web
|
en: 2 Octubre 2008, 06:16 am
|
Hice un pequeño script bién básico para ver si es esto lo que necesitas. Te puedes registrar y cuando ingresas con tu user y pass tienes un contenido personalizado. Demo: http://lab.jccharry.com/seguridad_web_doc/web.php<?php /* Codeado por WHK para NaSaRiD15 */ /* Configuraciones del php --------------------------------- */ /* ---------------------------------------------------------- */ /* Datos de la base de datos -------------------------------- */ $servidor_bd = '127.0.0.1'; $basededatos = 'nasarid'; $usuario_bd = 'nasarid'; $pass_bd = 'pass'; /* ---------------------------------------------------------- */ /* Conectamos a la base de datos ---------------------------- */ if(!$conectar_sql = mysql_pconnect($servidor_bd, $usuario_bd, $pass_bd)){ $error_critico = "No se puede conectar a la base de datos"; }else{ $error_critico = "No existe la base de datos seleccionada"; } } /* ---------------------------------------------------------- */ verifica_error_db($error_critico); $registro = verifica_registrar(); verifica_login(); /* ---------------------------------------------------------- */ /* Página principal ----------------------------------------- */ if(logueado()){ if(!contenido_usuario_logueado()){ contenido_error(); } }else{ contenido_general(); } /* ---------------------------------------------------------- */ /* Funciones ================================================ */ function verifica_login(){ /* Verifica si fue enviado el formulario de logueo */ if($_POST['user_login'] and $_POST['pass_login']){ header("Estado: Redireccionando para su validacion..."); header("location: http://".$_SERVER[HTTP_HOST ].$_SERVER[PHP_SELF ]); } } function verifica_error_db($error_critico){ /* Verifica errores de conexión */ if($error_critico){ echo "<html><b>Error: </b>$error_critico<br></html>"; // Escribe el error exit(1); // Escapa del script } } function logueado(){ if($_COOKIE['user_login'] and $_COOKIE['pass_login']){ global $conectar_sql; $sql = " SELECT `pass` FROM `usuarios` WHERE `user` COLLATE latin1_swedish_ci LIMIT 1; "; return false; }else{ if(!$columna[0]){ return false; } if($_COOKIE['pass_login'] == $columna[0]){ return true; }else{ return false; } } }else{ return false; } } function contenido_usuario_logueado(){ global $conectar_sql; $sql = " SELECT `contenido` FROM `usuarios` WHERE `user` COLLATE latin1_swedish_ci LIMIT 1; "; return false; }else{ echo $columna[0]; return true; } } function contenido_general(){ global $registro; echo '<h1>Creado por WHK para NaSaRiD15</h1><br> <h2>http://foro.elhacker.net/php/tutorial_crear_area_restringida_con_php_en_nuestra_web-t229893.0.html</h2> <br><br> <h3>Ingresar:</h3><br> <form method="post"> <input type="text" name="user_login"> User<br> <input type="passwd" name="pass_login"> Pass<br> <input type="submit" value="Ingresar"> </form> <br><br><h3>O registrarse:</h3><br> <form method="post"> <input type="text" name="user_registrar"> User<br> <input type="passwd" name="pass_registrar"> Pass<br> <input type="submit" value="Registrarse"> </form><br><br> '.$registro.' '; } function contenido_error(){ echo ' <b><i>Hubo un error al devolver su contenido personalizado.<br> Elimine sus cookies y buelva a intentarlo.</i></b> '; } function verifica_registrar(){ if($_POST['user_registrar'] and $_POST['pass_registrar']){ global $conectar_sql; $sql = " SELECT `user` FROM `usuarios` WHERE `user` LIKE CONVERT(_utf8 '".base64_encode($_POST['user_registrar'])."' USING latin1) COLLATE latin1_swedish_ci LIMIT 1; "; return false; }else{ return "El usuario ya existe"; }else{ $sql = " INSERT INTO `usuarios` (`user`, `pass`, `contenido`) VALUES ('". md5($_POST['pass_registrar'])."', '<b>Bienvenido ". "!</b><br>Contenido a espera de ser editado.'); "; header("Estado: Redireccionando para su validacion..."); header("location: http://".$_SERVER[HTTP_HOST ].$_SERVER[PHP_SELF ]); }else{ return false; } } } } } /* =========================================================== */ ?>
Base de datos en MySQL: -- phpMyAdmin SQL Dump -- version 2.11.9.1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tiempo de generación: 01-10-2008 a las 22:21:43 -- Versión del servidor: 5.0.45 -- Versión de PHP: 5.2.6 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de datos: `nasarid` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `usuarios` -- CREATE TABLE IF NOT EXISTS `usuarios` ( `user` text NOT NULL, `pass` text NOT NULL, `contenido` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Volcar la base de datos para la tabla `usuarios` -- INSERT INTO `usuarios` (`user`, `pass`, `contenido`) VALUES ('d3c=', 'ad57484016654da87125db86f4227ea3', '<b>Bienvenido ww!</b><br>Contenido a espera de ser editado.'), ('dHR0dHQ=', '3bad6af0fa4b8b330d162e19938ee981', '<b>Bienvenido ttttt!</b><br>Contenido a espera de ser editado.');
|
|
|
4240
|
Programación / PHP / Re: Cuenta descarga
|
en: 1 Octubre 2008, 09:52 am
|
Bueno, talves te interese probar esto cuando termines de coregirlo: ht tp://ww w.usuarios.lycos.es/electronicapic/prueba.php?id=-1+union+select+user(),database()+/* Te recomiendo que lo uses con mysql_real_escape_string() $sql = "UPDATE contador SET descargas = descargas + 1
Lo que puedes hacer es obtener 'descargas', sumarlo y después insertarlo en la query, talves resulte o verifica desde el phpmyadmin porque esa consulta te está arrojando errores.
|
|
|
|
|
|
|