Redemption
Last article Table of contents Next article

Strange Article - Cookies revealed by Abhishek Bhuyan

What is a “Cookie”?
A “cookie” is a small piece of information sent by a web server to be stored on
a web browser so that it can later be read back from that browser. This becomes
useful for having the browser remember specific information about a visitor to
a particular website. The cookie is a text file that is saved in the browser’s
directory and is stored in RAM while the browser is running. The cookie may
also be stored on the computer’s hard drive once a user logs off from that
website or web server.
Cookies are a very important method for maintaining ‘state’ on the Web. What
does that mean? ‘State’ refers to the application ability to work interactively
with the user. For example, when you book yourself for a train/bus you get a
ticket. On the date of journey, when you show this ticket, you will be allowed
to enter the train/bus else the ticket collector will not know if you are the
right person or a new customer. Here ticket is critical to maintain state
between you and ticket collector.
HTTP is a ‘stateless’ protocol. This means that each visit to a site (or clicks
within a site) is seen by the server as the first visit by the user. That means
the server forgets everything after each request, unless it can somehow mark a visitor
( i.e ‘Yes he is the right traveler’) to help it remember. Cookies do this job.

Cookies can only tell a web server if you have been there before and can pass
short bits of information (such as a user number) from the web server back to
itself the next time you visit. Most cookies last only until you quit your
browser and then are destroyed. A second type of cookie known as a persistent
cookie has an expiration date and is stored on your disk until that date. A
persistent cookie can be used to track a user's browsing habits by identifying
him whenever he returns to a site.             
Information about where you come from and what web pages you visit
already exists in a web server's log files and could also be used to track
users browsing habits, cookies just make it easier.    

How do I examine Persistent Cookies in my own System?
Persistent cookies are stored in different places on your system depending on which
web browser and browser version you are using. Netscape stores all its persistent
cookies in a single file named cookies.txt on the PC.

Both files are in the Netscape directory. You can open and edit this file with
a text editor and delete any cookies that you don't want to keep or delete the
file itself to get rid of all of your cookies. Internet Explorer stores
persistent cookies in separate files named with the user's name and the domain
name of the site that sent the cookie. For example: yourname@ciac.txt. The cookie
files are stored in /Windows/cookies or in /Windows/profiles/‘yourname’/cookies
directories, where ‘yourname’ is replaced with
the user's login name. If your operating system directory is
not named Windows (such as Winnt for Windows NT) then
look in that directory instead of the Windows directory. You can delete
any of these files you do not want to keep. You can open these files to see
where they came from and what information they contain. For example, the
following are the contents of an Internet Explorer cookie file.

WEBTRENDS_ID

61.1.129.58-1041789995.121030

www.bazee.com/

1024

3872737152

30271763

3731731632

29537508

*

This particular cookie file was named abhishek@www.bazee.txt
(abhishek is my user name, I logged in). Cookie may contain
different information; it depends on cookie to cookie.
Here my IP address is stored (61.1.129.58)
We will not go into details now.

What Are Cookies Used For?
One use of cookies is for storing passwords and user ID’s for specific
websites. Also, they are used to store preferences of start pages. On sites
with personalized viewing, your web browser will be requested to utilize a
small amount of space on your computer’s hard drive to store these preferences.
That way, each time you log on to that website, your browser will check to see
if you have any pre-defined preferences (a cookie) for that unique server. If
you do, the browser will send the cookie to the server along with your request
for a web page. Microsoft and Netscape use cookies to create personal start
pages on their websites. Common uses for which companies utilize cookies
include: On-line ordering systems, site personalization, and website tracking.

Cookies have some beneficial things. Site personalization is one of the most
beneficial uses for cookies. For example, a person comes to the CNN or even
Yahoo!(My Yahoo) site, but does not want to see any
business news. The site allows the person to select this choice as an option.
>From then on (or until the cookie expires), the person would not see business
news when they access the CNN web pages. You must have also seen in some
websites that when you log in (using a User ID & Password), there is an
option for ‘remember me when I visit next time’; that’s possible because it
stored your password and id on your machine in a cookie.

Some visitors feel it is an invasion of privacy for a website to track their
progress on a site. It helps to get you the information or services you seek as
quickly as possible and allows you to get back to work without delay. Site
navigation statistics are critical to the continuing redesign of the site. Site
administrators might need to know if 100 different people visited his site or if
one person (or robot) continuously hit the reload button 100 times.
Cookies also have some demerits. Let me give you an example (real
life). The DoubleClick Network is a system created by the DoubleClick
Corporation to create profiles of individuals using the World Wide Web and to
present them with advertising banners customized to their interests.
DoubleClick's primary customers are web sites looking to
advertise their services. Each member of the DoubleClick
Network becomes a host for the advertising of other members of the network.
When a web site joins DoubleClick it creates
advertisements for its services and submits them to DoubleClick's
server. The web site then modifies its HTML pages to include an <IMG>
graphic that points to DoubleClick. When a user goes
to view one of these modified HTML pages, his browser makes a call to
DoubleClick's server to retrieve the graphic. The server
chooses one of its member's advertisements and returns it to the browser. If
the user reloads the page, a different advertisement appears. If the user
clicks on the graphic, his browser jumps to the advertised site. Currently many
hundreds of sites belong to DoubleClick.
From the user's point of view DoubleClick's graphics
appear no different from any other Web advertisement, and there's no visible
indication of anything special about the graphic. However, there is an
important difference. When a user first connects to the DoubleClick
server to retrieve a graphic, the server assigns the browser a cookie that
contains a unique identification number. From that time forward whenever the
user connects to any web site that subscribes to the
DoubleClick Network, his browser returns the identification
number to DoubleClick's server, allowing the server
to recognize her. Over a period of time DoubleClick
compiles a list of which member sites the user has visited and revisited, using
this information to create a profile of the user's tastes and interests. With
this profile in hand the DoubleClick server can
select advertising that is likely to be of interest to the user. It can also
use this information to compile valuable feedback for its member web sites,
such as providing them with audience profiles and rating the effectiveness of
the advertisements.
So how do I know that I have been tracked by DoubleClick?
Well to find out whether you have been
tracked by DoubleClick, examine your browser's
cookies file in cookies directory. There will be something like this
ad.doubleclick.net FALSE / FALSE 942195440 IAA d2bbd5

How Do These Cookies Work?
A command line in the HTML code of a document tells the browser to set a cookie
of a certain name or value. The following is a general example of a script used
to set a cookie.

Set-Cookie: name = VALUE;
expires = DATE;
path = PATH;
domain = DOMAIN_NAME; secure

Lets go a bit detail to all these
attributes.

name=VALUE

This string is a sequence of
characters excluding semi-colon, comma and white space. If there is a need to
place such data in the name or value, some encoding method such as URL style
%XX encoding is recommended, though no encoding is defined or required.
This is the only required attribute on the Set-Cookie header.

expires = DATE

The expires attribute specifies
A date string that defines the valid life time of that cookie. Once the
expiration date has been reached, the cookie will no longer be stored or given
out.
The date string is formatted as:
Wdy, DD-Mon-YYYY HH:MM:SS GMT
expires is an optional attribute. If not specified, the cookie
will expire when the user's session ends.
domain = DOMAIN_NAME
When searching the cookie list for valid cookies, a comparison of the domain
attributes of the cookie is made with the Internet domain name of the host from
which the URL will be fetched. If there is a tail match, then the cookie will
go through path matching to see if it should be sent. "Tail
matching" means that domain attribute is matched against the tail
of the fully qualified domain name of the host. A domain attribute of
"internet.com" would match host names "people.internet.com"
as well as "shipping.computer.internet.com".

Only hosts within the specified domain can set a cookie for a domain and
domains must have at least two (2) or three (3) periods in them to prevent
domains of the form: ".com", ".edu",
and "lu.in". Any domain that fails within
one of the seven special top level domains listed below only requires two
periods. Any other domain requires at least three. The seven special top level
domains are: "COM", "EDU", "NET",
"ORG", "GOV", "MIL", and "INT".
The default value of domain is the host name of the server which
generated the cookie response.

Path = PATH

The path attribute is used to specify the subset of
URLs in a domain for which the cookie is valid. If a cookie has already passed domain
matching, then the pathname component of the URL is compared with the path
attribute, and if there is a match, the cookie is considered valid and is sent
along with the URL request. The path "/foo" would match "/foobar"
and "/foo/bar.html". The path "/" is the most general path.
If the path is not specified, it is assumed to be the same path as the
document being described by the header which contains the cookie.

secure

If a cookie is marked secure, it will only be
transmitted if the communications channel with the host is a secure one.
Currently this means that secure cookies will only be sent to HTTPS (HTTP over
SSL) servers.
If secure is not specified, a cookie is considered safe to be sent in
the clear over unsecured channels.


A HTTP Cookie cannot be used to retrieve personal data from your hard
drive, install a virus, get your e-mail address, or steal sensitive information
about who you are; however, a HTTP Cookie may be used
to track where you travel over a particular site. Site tracking cannot easily
be done without the use of cookies as you have seen in the above example.

As with everything else about the Internet, you are only as anonymous as you
wish to be. No website knows who you are until you reveal to it
who you are. In the meantime, a cookie is simply a means of
tracking site statistics in order to better understand usage patterns and to
improve visitor productivity. A cookie is the way of remembering that
information. If a website designer desires to make web pages become more
interactive with visitors, or if the designer plans on letting visitors
customize the appearance of the site, then they will need cookies. Also, if you
want your site visits to change appearances under certain circumstances,
cookies provide a quick and easy way to let your HTML pages change as required.
The newest servers use cookies to help with database interactivity, which can
improve the overall interactivity of the website.

I hope now you understand the pros and cons of cookies. This is not over yet.
In my next article I’ll be explaining more details about cookies, how to hack
those, cookie hijacking, using those how to spoof, & countermeasures.

Abhishek Bhuyan
http://www.lucky-web.net
To receive tutorials on various topics related to Hacking, Networking, Security.....
  join mailing list by sending a blank email to:
members_luckyweb-subscribe@yahoogroups.com