AVISO: No intentar reproducir lo que a continuación se expone, ya no funcionará, y lo único que se conseguirá es ser baneado en fresqui. El objetivo de este post es Informar.
Hace escasos días se publicaba en un sitio web un código que permitía realizar votaciones fraudulentas en las noticias de fresqui.
El funcionamiento era colocarse un plugin de wordpress para que cada visitante de tu blog sin saberlo, votara positivamente la noticia que especificaste previamente. Este vulnerabilidad se basa en el ataque CSRF.
Se ocultan los campos específicos para no dar publicidad a dicho sitio.
Pero veamos más detenidamente el código del plugin.
Funcionamiento:
1. Es válido para cualquier noticia, como si la mandas tú o una que quieres que salga a portada. Tienes que conseguir el ID único para esa noticia, en el caso de que la votes, puedes verlo a través de uno de los plugins de firefox que comenté anteriormente.
2.El código anterior realiza la consulta en la base de datos de worpress con los parametros especificados, la key="fresqui" y la ID de la noticia="XXXX".
Esta cadena:
http://tec.fresqui.com/?q=fresqui/vote_up_node/&nid=' . $fresqui .
es la que ejecuta el voto en la noticia, y
return $text;
devuelve el número total de votos de la misma.
El tag "img" es la parte donde entra el ataque CSRF,
ya que el navegador de el usuario que visite el blog donde esta este plugin procesara este tag, realizando el voto, pero no verá ningúna imagen asociada. disply:none
El creador de este código actuó de mala fé, lo primero que hay que hacer al descubrir una vulnerabilidad en un sitio web es avisar a los responsables, pero no intentar aprovecharse de ello.
Más datos:
http://codex.wordpress.org/Using_Custom_Fields
http://codex.wordpress.org/Function_Reference/wpdb_Class
http://shiflett.org/articles/foiling-cross-site-attacks
"El éxito es la habilidad de ir de fallo en fallo sin perder el entusiasmo." ¿Sir Winston Churchill?
30 noviembre 2006
29 noviembre 2006
Software Indispensable
Relacionado con el post anterior sobre las extensiones de mozilla, esta vez voy a realizar una pequeña recopilación de los programas que uso a diario y no podría pasar sin ellos, se trata de una lista personal de los programas que utilizo en mi equipo para trabajar, hay de todo soft libre y propietario. Obviamente están excluidos los programas de los servidores que administro. Quizás esto para otro post.
Aunque no son muchos, con esta lista de programas en mi equipo, ya podría empezar a trabajar.
Putty 0.58
SecureCRT 5.2
KeePass 1.0.6
Ethereal 0.9.9.0
Firefox 2.0
Thunderbird 1.5.0.8
WinScp 3.8.2
SSH secure Shell 5.1
Jabbin 2.0B
OpenOffice 2.0.4
Winrar 3.6.1
7-Zip 4.4.2
Visio 2003
Winamp 3.4
Con Putty conecto de manera rápida a cualquier servidor, con SecureCRT tengo todos los servidores organizados por servicio y lo puedes configurar para acceder sin prompt de password. Thunderbird es como la agenda de trabajo, sólo hay que saber gestionar bien carpetas, filtros y método de trabajo con los mails. Con Firefox me lo configuro con todos los plugins que ya comenté, y con Jabbin intercambio links y frases rápidas con los compañeros de trabajo. Para hacer gráficas de esquemas de servicios con Visio está bien, con OpenOffice lo documento, si hay algún problema investigo con ethereal o ayuda de algún plugin, y todo ello mientras escuchas música en Winamp.
Update (5/12/06): Copio este enlace relacionado con este post, para tener a mano los 30 programas Open esenciales.
Vía fresqui.
Update 2 (5/12/06): 7-Zip es free software y sirve tambien para archivos rar.
Aunque no son muchos, con esta lista de programas en mi equipo, ya podría empezar a trabajar.
Putty 0.58
SecureCRT 5.2
KeePass 1.0.6
Ethereal 0.9.9.0
Firefox 2.0
Thunderbird 1.5.0.8
WinScp 3.8.2
SSH secure Shell 5.1
Jabbin 2.0B
OpenOffice 2.0.4
Winrar 3.6.1
7-Zip 4.4.2
Visio 2003
Winamp 3.4
Con Putty conecto de manera rápida a cualquier servidor, con SecureCRT tengo todos los servidores organizados por servicio y lo puedes configurar para acceder sin prompt de password. Thunderbird es como la agenda de trabajo, sólo hay que saber gestionar bien carpetas, filtros y método de trabajo con los mails. Con Firefox me lo configuro con todos los plugins que ya comenté, y con Jabbin intercambio links y frases rápidas con los compañeros de trabajo. Para hacer gráficas de esquemas de servicios con Visio está bien, con OpenOffice lo documento, si hay algún problema investigo con ethereal o ayuda de algún plugin, y todo ello mientras escuchas música en Winamp.
Update (5/12/06): Copio este enlace relacionado con este post, para tener a mano los 30 programas Open esenciales.
Vía fresqui.
Update 2 (5/12/06): 7-Zip es free software y sirve tambien para archivos rar.
28 noviembre 2006
Extensiones Firefox útiles
Hace escasos días reinstale mi equipo, siempre tienes una copia de todo lo necesario y que tanto tiempo y esfuerzo te ha costado conseguir, o al menos eso crees. Llevaba año y medio sin realizar un mantenimiento a mi equipo por lo que decidí empezar de cero, pero esto siempre conlleva problemas humanos, a despistes me refiero, una vez que instalo el equipo y empiezo a restaurar todo tal y como lo tenía antes, veo una de las cosas que no había caido y tanto me había costado. Me refiero a las extensiones de firefox. Por ello me decido hoy a crear una lista de las extensiones que utilizo y mis favoritas de uso casi diario en el trabajo.
Live HTTP Headers 0.13.1
About this site 1.1
Auto Copy 0.64
Google PageRank Status 0.9.7
GreaseMonkey 0.6.6
ForeCastFox 0.9.3.1
Linkification 1.3.0
Allow Right Click 0.3
PrefBar 3.3.3
SearchStatus 1.18
Session Saver 2 (no compatible con Firefox 2.0)
SwitchProxy 1.4 (no compatible con Firefox 2.0)
FoxyProxy 2.2.1 (como sustituto de SwitchProxy)
View Cookies CS 1.0.1
Temporary Inbox 1.5.5
Download StatusBar 0.9.4.5
Nagios Checker 0.3.1
Mis favoritas y de uso diario como admin de sistemas son:
FoxyProxy: Te permite probar rápida y facilmente diferentes proxys, para testearlos individualmente.
Nagios Checker: No puede faltar si Nagios es tu sistema de monitorización de todos tus servidores. Esta extensión te evita estar continuamente revisando la página de nagios por si hay cambios en los estados.
LiveHttpHeaders: Con esta extensión podremos ver exactamente que cabeceras HTTP esta enviando nuestro cliente web y que nos contesta el servidor, tambien para depurar errores de navegación con algunos sitios.
ForeCastFox: Imprescindible por lo menos en mi caso, que no tengo ventanas, cuando sales del trabajo, siempre es bueno saber el día que hace.
Live HTTP Headers 0.13.1
About this site 1.1
Auto Copy 0.64
Google PageRank Status 0.9.7
GreaseMonkey 0.6.6
ForeCastFox 0.9.3.1
Linkification 1.3.0
Allow Right Click 0.3
PrefBar 3.3.3
SearchStatus 1.18
Session Saver 2 (no compatible con Firefox 2.0)
SwitchProxy 1.4 (no compatible con Firefox 2.0)
FoxyProxy 2.2.1 (como sustituto de SwitchProxy)
View Cookies CS 1.0.1
Temporary Inbox 1.5.5
Download StatusBar 0.9.4.5
Nagios Checker 0.3.1
Mis favoritas y de uso diario como admin de sistemas son:
FoxyProxy: Te permite probar rápida y facilmente diferentes proxys, para testearlos individualmente.
Nagios Checker: No puede faltar si Nagios es tu sistema de monitorización de todos tus servidores. Esta extensión te evita estar continuamente revisando la página de nagios por si hay cambios en los estados.
LiveHttpHeaders: Con esta extensión podremos ver exactamente que cabeceras HTTP esta enviando nuestro cliente web y que nos contesta el servidor, tambien para depurar errores de navegación con algunos sitios.
ForeCastFox: Imprescindible por lo menos en mi caso, que no tengo ventanas, cuando sales del trabajo, siempre es bueno saber el día que hace.
25 noviembre 2006
Sourceforge y el software libre.
Hace unos días, me entero de que Sourceforge está planteando introducir en su sitio web un servicio que sería positivo tanto para la comunidad Open Source como para aquellas empresas que se plantean el uso de este tipo de software pero su mayor miedo son cuestiones del tipo ¿Quién me dará soporte?, ¿Qué ocurre si algo falla?, ¿Quién está detrás?.
Sourceforge es conocido por ser el mayor sitio web de referencia con mayor número de proyectos open source hospedados. Hay empresas cuya fuente de negocio es un programa open source, teniéndolo alojado en este gran repositorio se benefician de todas las herramientas que dispone para llevarlo a cabo. Pero el mayor beneficio para una empresa que se apoya en este método es el dar a conocer su software alrededor de todo el mundo sin más esfuerzo que el tener el proyecto en sourceforge. Otra principal ventaja es que la comunidad open es tan proclive a la participación que pueden coger ese programa y adaptarlo a sus necesidades específicas de su zona de residencia y customizarlo según sus necesidades. Como ejemplo de este tipo podemos ver el ERP Openbravo que actualmente es utilizado en multitud de países gracias al apoyo de la comunidad, el soporte de la propia empresa y el marco de el proyecto en sourceforge.
No hace falta que sea un proyecto muy grande para alojarlo en sourceforge, incluso hay proyectos de una sola persona
Como comentaba al principio, el equipo de sourceforge esta pensando en un nuevo concepto para ofrecer como servicio, lo explico a continuación;
CONCEPTO.
El uso corporativo de el software open source esta creciendo alrededor de todo el mundo. Las principales razones de esta tendencia en alza son bajo coste, gran valor, calidad, seguridad, flexibilidad y adherencia a los estándares abiertos. Pero muchas organizaciones y empresas citan la dificultad de obtener servicio y soporte como una de las principales barreras a la hora de adoptar Open Source Software.
Sourceforge.net el mayor sitio web de hosting para desarrollos de software Open Source está pensando en acelerar el crecimiento del OSS solucionando el problema comentado anteriormente. El mercado en sourceforge.net añadirá funcionalidades basadas en transacciones que habilitarán a los administradores de proyectos y desarrolladores a vender servicios y soporte a los profesionales que usen el sitio web.
Cualquier usuario registrado de sourceforge (con buena posición) podrá participar en este mercado. Los proveedores de servicio (vendedores) serán capaces de ofrecer una lista de sus servicios; tanto en proyectos específicos o especializados por tecnología. Por ejemplo un administrador de el proyecto A, será capaz de vender servicio y soporte de su proyecto. Como añadido, un especialista de el servicio será capaz de ofrecer servicio y soporte por categoría de tecnología, por ejemplo CRM, o VoIP. Los profesionales de la tecnología (compradores) serán capaces de buscar a través de diferentes ofertas de servicios y comprarlas directamente en el sitio.
En mi opinión, sourceforge.net es un referente en cuanto al mundo del open source se refiere y creo que iniciativas como estas pueden beneficiar tanto a la comunidad que está detrás, aportándoles beneficios extra, como a las empresas que tienen como handicap lo que se ha comentado anteriormente.
De todas maneras es bien sabido que el soporte de un programa Open Source es extraordinario, existiendo multitud de herramientas para ello, foros, lista de correo, IM. Y la primera pregunta que se hará una empresa a la hora de adoptar Open Source es ¿Quién será responsable de lo que ocurra?. La respuesta es la misma que para la mayoría de Software Propietario "Nadie". Pero no es necesario llegar a tales extremos si detras de un buen software hay un mejor servicio.
Sourceforge es conocido por ser el mayor sitio web de referencia con mayor número de proyectos open source hospedados. Hay empresas cuya fuente de negocio es un programa open source, teniéndolo alojado en este gran repositorio se benefician de todas las herramientas que dispone para llevarlo a cabo. Pero el mayor beneficio para una empresa que se apoya en este método es el dar a conocer su software alrededor de todo el mundo sin más esfuerzo que el tener el proyecto en sourceforge. Otra principal ventaja es que la comunidad open es tan proclive a la participación que pueden coger ese programa y adaptarlo a sus necesidades específicas de su zona de residencia y customizarlo según sus necesidades. Como ejemplo de este tipo podemos ver el ERP Openbravo que actualmente es utilizado en multitud de países gracias al apoyo de la comunidad, el soporte de la propia empresa y el marco de el proyecto en sourceforge.
No hace falta que sea un proyecto muy grande para alojarlo en sourceforge, incluso hay proyectos de una sola persona
Como comentaba al principio, el equipo de sourceforge esta pensando en un nuevo concepto para ofrecer como servicio, lo explico a continuación;
CONCEPTO.
El uso corporativo de el software open source esta creciendo alrededor de todo el mundo. Las principales razones de esta tendencia en alza son bajo coste, gran valor, calidad, seguridad, flexibilidad y adherencia a los estándares abiertos. Pero muchas organizaciones y empresas citan la dificultad de obtener servicio y soporte como una de las principales barreras a la hora de adoptar Open Source Software.
Sourceforge.net el mayor sitio web de hosting para desarrollos de software Open Source está pensando en acelerar el crecimiento del OSS solucionando el problema comentado anteriormente. El mercado en sourceforge.net añadirá funcionalidades basadas en transacciones que habilitarán a los administradores de proyectos y desarrolladores a vender servicios y soporte a los profesionales que usen el sitio web.
Cualquier usuario registrado de sourceforge (con buena posición) podrá participar en este mercado. Los proveedores de servicio (vendedores) serán capaces de ofrecer una lista de sus servicios; tanto en proyectos específicos o especializados por tecnología. Por ejemplo un administrador de el proyecto A, será capaz de vender servicio y soporte de su proyecto. Como añadido, un especialista de el servicio será capaz de ofrecer servicio y soporte por categoría de tecnología, por ejemplo CRM, o VoIP. Los profesionales de la tecnología (compradores) serán capaces de buscar a través de diferentes ofertas de servicios y comprarlas directamente en el sitio.
En mi opinión, sourceforge.net es un referente en cuanto al mundo del open source se refiere y creo que iniciativas como estas pueden beneficiar tanto a la comunidad que está detrás, aportándoles beneficios extra, como a las empresas que tienen como handicap lo que se ha comentado anteriormente.
De todas maneras es bien sabido que el soporte de un programa Open Source es extraordinario, existiendo multitud de herramientas para ello, foros, lista de correo, IM. Y la primera pregunta que se hará una empresa a la hora de adoptar Open Source es ¿Quién será responsable de lo que ocurra?. La respuesta es la misma que para la mayoría de Software Propietario "Nadie". Pero no es necesario llegar a tales extremos si detras de un buen software hay un mejor servicio.
22 noviembre 2006
Script de chequeo de quotas
Este perl script es útil para servidores linux donde tenemos cientos o quizás miles de unidades personales de usuario. El como tenemos montado el servidor esta fuera de este post, pero en mi caso es un servidor linux conectado a una SAN con un terabyte de espacio, y samba para los homes de usuario.
Tendremos que hacer una adaptación mínima a este script para adaptarlo a la ruta correspondiente y el tamaño que queremos chequear, y ya estará listo.
---------------------------------------------------------------------
#!/usr/bin/perl
#use strict;
########################################################
# Check homedirectorys/dir specified size in Megabytes
#
# Show by screen the size / homedirectory / owner
# of directorys reaching the SIZEMAX value specified.
#
# Autor: logadmin
# Last modified: 16/11/06
# Feel free to use or modify to suit your needs.
#
#########################################################
system("date");
#Size max in Megabytes
$SIZEMAX=1000;
#Directorys to check
@direc=qw(
/home
);
foreach $dir (@direc)
{
print "---- \U$dir-----\n";
opendir my $dh, $dir or die "Cannot open '$dir' $!";
@USERS = map !/\A\.\.?\z/ && -d "$dir/$_" ? "$dir/$_\n" : (),
readdir $dh;
$num_users=@USERS;
for ($i=0; $i < $num_users; $i++){
check_size(@USERS[$i]);
}
}
#Function to check homedir size
sub check_size{
my ($homedir, $category) = @_ ;
$tempsize = `du -sh $homedir`;
chomp($tempsize);
@size = split (/\//,$tempsize); #size array with each field of homedirectory
if ( $size[0] =~ (/^(\d+)+[M.G][^.0K].*/) )
{
if ($size[0] > $SIZEMAX || $size[0] =~ (/[G]/))
{
$owner = show_owner($homedir);
write;
}
}
}
sub show_owner{
my ($homedir) = @_;
chomp($homedir);
$infols = `ls -l $homedir | head -2`;
@grupo = split (/ +/,$infols);
$devolv = $grupo[3];
return($devolv);
}
#size is an array like "4.0K /home/mike
#so you have to calcule the array position you want.
#in the example the values will be size[0] for 4.0K and size[2] for user
format STDOUT =
@<<<<<<<< @<<<<<<<<<<< @<<<<<<<<<<
$size[0], $size[2] $owner
.
format STDOUT_TOP =
Page @<<
$%
SIZE USER OWNER
==== ========== ========
.
---------------------------------------------------------------------
Yo lo he llamado "check-sizes.pl" un salida de este script sería:
#[root@machine etc]# perl check-sizes.pl
---------------------------------------------------------------------
Wed Nov 20 09:30:20 CET 2006
---- /HOME-----
Page 1
SIZE USER OWNER
==== ========== ========
1.4G mike root
511M david david
262M alfred alfred
594M robert robert
406M alice alice
...
...
---------------------------------------------------------------------
Vemos 3 columnas, el tamaño que ocupa el directorio, el usuario, y el propietario de dicho directorio. En el primer caso el propietario es root porque ha sobrepasado la cuota establecida a 1Giga (esto aún no lo hace el programa, sólo lo muestra), en los
demas podemos ver la información relativa a cada usuario.
Tendremos que hacer una adaptación mínima a este script para adaptarlo a la ruta correspondiente y el tamaño que queremos chequear, y ya estará listo.
---------------------------------------------------------------------
#!/usr/bin/perl
#use strict;
########################################################
# Check homedirectorys/dir specified size in Megabytes
#
# Show by screen the size / homedirectory / owner
# of directorys reaching the SIZEMAX value specified.
#
# Autor: logadmin
# Last modified: 16/11/06
# Feel free to use or modify to suit your needs.
#
#########################################################
system("date");
#Size max in Megabytes
$SIZEMAX=1000;
#Directorys to check
@direc=qw(
/home
);
foreach $dir (@direc)
{
print "---- \U$dir-----\n";
opendir my $dh, $dir or die "Cannot open '$dir' $!";
@USERS = map !/\A\.\.?\z/ && -d "$dir/$_" ? "$dir/$_\n" : (),
readdir $dh;
$num_users=@USERS;
for ($i=0; $i < $num_users; $i++){
check_size(@USERS[$i]);
}
}
#Function to check homedir size
sub check_size{
my ($homedir, $category) = @_ ;
$tempsize = `du -sh $homedir`;
chomp($tempsize);
@size = split (/\//,$tempsize); #size array with each field of homedirectory
if ( $size[0] =~ (/^(\d+)+[M.G][^.0K].*/) )
{
if ($size[0] > $SIZEMAX || $size[0] =~ (/[G]/))
{
$owner = show_owner($homedir);
write;
}
}
}
sub show_owner{
my ($homedir) = @_;
chomp($homedir);
$infols = `ls -l $homedir | head -2`;
@grupo = split (/ +/,$infols);
$devolv = $grupo[3];
return($devolv);
}
#size is an array like "4.0K /home/mike
#so you have to calcule the array position you want.
#in the example the values will be size[0] for 4.0K and size[2] for user
format STDOUT =
@<<<<<<<< @<<<<<<<<<<< @<<<<<<<<<<
$size[0], $size[2] $owner
.
format STDOUT_TOP =
Page @<<
$%
SIZE USER OWNER
==== ========== ========
.
---------------------------------------------------------------------
Yo lo he llamado "check-sizes.pl" un salida de este script sería:
#[root@machine etc]# perl check-sizes.pl
---------------------------------------------------------------------
Wed Nov 20 09:30:20 CET 2006
---- /HOME-----
Page 1
SIZE USER OWNER
==== ========== ========
1.4G mike root
511M david david
262M alfred alfred
594M robert robert
406M alice alice
...
...
---------------------------------------------------------------------
Vemos 3 columnas, el tamaño que ocupa el directorio, el usuario, y el propietario de dicho directorio. En el primer caso el propietario es root porque ha sobrepasado la cuota establecida a 1Giga (esto aún no lo hace el programa, sólo lo muestra), en los
demas podemos ver la información relativa a cada usuario.
Suscribirse a:
Entradas (Atom)