JAVA教程之剖析cookie棍骗完成历程及详细使用
IDE是好。java中的IDE更是百花齐放,你用jbuilder能说jbuilder赶不上vs吗?用eclipse,netbeans也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。cookie|历程正如我们所晓得的,在收集辞汇中,cookie是一个特别的信息,固然只是服务器存于用户盘算机上的一个文本文件,但因为其内容的不平常性(与服务器有必定的互交性,且常会存储用户名,乃至口令,或是别的一些敏感信息,比方在江湖或是一些社区中,常会用cookie来保留用户集分,品级等等)。因此成为一些妙手存眷的对像,借此来获得特别权限,乃至霸占全部网站。自己出些拙作,以javascript中对cookie的使用,来讲开端申明cookie棍骗的完成历程及详细使用。1、cookie的创建
在讲怎样创建cookie之前,我们先来懂得一下cookie的基础格局:
cookiename+cookievalue;expire=expirationdategmt;path=urlpath;domain=sitedomain
个中各项以;分隔,起首是指定cookie的称号,并为其赋值。接上去分离是cookie的无效期,url路径和域名,在这几项中,除第一项之外,别的部分均为可先项。 上面我们来看一段代码,懂得一下cookie事实是如何创建的:
<HTML>
<HEAD>
<TITLE>Setacookiebasedonaform</TITLE>
<SCRIPTLANGUAGE="javascript"TYPE="TEXT/javascript">
<!--Hidescriptfromolderbrowsers
expireDate=newDate
expireDate.setMonth(expireDate.getMonth()+6)
userName=""
if(documents.cookie!=""){
userName=documents.cookie.split("=")
}
functionsetCookie(){
userName=document.myform.nameField.value
documents.cookie="userName="+userName+";expires="+expireDate.toGMTString()
}
//Endhidingscript-->
</SCRIPT>
</HEAD>
<BODYBGCOLOR="WHITE">
<formNAME="myform">
<H1>Enteryourname:<INPUTTYPE="TEXT"NAME="nameField"></H1>
</form>
</BODY>
</HTML>
这是一锻复杂的创建cookie的剧本。
1,<SCRIPTLANGUAGE="javascript"TYPE="TEXT/javascript">
剧本入手下手的标志,由此一句告知扫瞄器以下将是javascript.
2,<!--Hidescriptfromolderbrowsers
为了避免扫瞄器不克不及辨认剧本,而让扫瞄器误觉得是HTML正文而疏忽它。
3,expireDate=newDate
猎取以后日期,并存进变量expireDate中。
4,expireDate.setMonth(expireDate.getMonth()+6)
猎取以后月份值,将其加6后设置为expireDate的月份总值部分。这意味着本cookie的无效期为6个月。
5,if(documents.cookie!="")
假如document的值不为空,相称于反省用户硬盘上是不是已有了cookie。
6,userName=documents.cookie.split("=")
此处用到了split("=")函数,它的功效是把cookie纪录支解为数组,cookie的名为cookie,值为cookie,以此累推。以是此处documents.cookie.split("=")前往的值是此cookie的值。在此句中将值赋给了变量username。
7,functionsetCookie()
设置名为setCookie的函数。
8,documents.cookie="userName="+userName+";expires="+expireDate.toGMTString()
此句是将设置好的cookie写进用户硬盘。expireDate.toGMTString()把expireDate中的值转换为文本字符串,如许才干写进cookie中。
9,
当页面载进时,把username的值写进文本框(假如有的话)。
10,
当用户分开文本框时,onBlur挪用函数setCookie。
分离下面的正文,读那段代码信任不成成绩吧!既然我们能够创建cookie,那末读取也不是甚么难事,请接着往下看!
2、读取和显现cookie
一样平常来讲,cookie的作者其实不但愿cookie被显现出来,这是固然的!天晓得内里写了些甚么!?但是这也是我们想要读出它的缘故原由!~~~:D
<HTML>
<HEAD>
<TITLE>CookieCheck</TITLE>
</HEAD>
<BODYBGCOLOR="WHITE">
<H2>
<SCRIPTLANGUAGE="javascript"TYPE="TEXT/javascript">
<!--Hidescriptfromolderbrowsers
if(documents.cookie==""){
document.write("Therearenocookieshere")
}
else{
thisCookie=documents.cookie.split(";")
for(i=0;i<thisCookie.length;i++){
document.write("Cookienameis’"+thisCookie.split("="))
document.write("’,andthevalueis’"+thisCookie.split("=")+"’<BR>")
}
}
//Endhidingscript-->
</SCRIPT>
</H2>
</BODY>
</HTML>
以上的即是一段读取cookie的名字和值的剧本。上文中注释过的语句在此未几赘述,且看有甚么新的语法:
1,thisCookie=documents.cookie.split(";")[注重:并不是前文中呈现过的split("=")。
split(";")能够发生数组的了局,本句中,由documents.cookie.split(";")来猎取cookie的值,并将这个数组赋值缎带变量:thisCookie。
2,for(i=0;i<thisCookie.length;i++)
设置盘算器变量i的值为0,假如其值小于thisCookie.length(thisCookie中值的个数),将i的值加1。
3,document.write("Cookienameis’"+thisCookie.split("="))
此句中thisCookie.split("=")较难了解,下面的剧本中,thiscookie已被赋值为一个数组的值,那末thisCookie是指数组中第i个值,也就是第i个cookie,而由上文可知split("=")是指cookie的名字。
如许thisCookie.split("=")即是第i的cookie中cookie的名字!
4,document.write("’,andthevalueis’"+thisCookie.split("=")
跟3极其类似,便是第i个cookie中cookie的值。
到此,我们已熟习了怎样创建cookie和它的读取。这些也恰是cookie棍骗也必要的次要手艺!
3、cookie棍骗的完成
要做到cookie棍骗,最主要的是了解方针cookie中的储值情形,并想法改动它。由下面的进修我们晓得,基于cookie的格局所限,一样平常来讲,只要在Cookie.split("=")和Cookie.split("=")中的值对我们才是有效的。也就是说只需改动这两处或是处的值便可到达我们的目标。
而在实践操纵中,还得先办理另外一个成绩。因为受扫瞄器的外部cookie机制所限,每一个cookie只能被它的原服务器所会见!可我们总不克不及跑到人家服务器上操纵吧!这里就必要一个小技能了。
在下面我们提到过cookie的格局,最初两项平分别是它的url路径和域名。不难想到,服务器对cookie的辨认靠的就是这个!
而在平常,我们要扫瞄一个网站时,输出的url即是它的域名,必要经由域名办理体系dns将其转化为IP地点落后行毗连的。这个中就有一个空当。假如能在dns上做四肢举动,把方针域名的IP地点对应到别的站点上,我们即可以不法会见方针站点的cookie了!
做到这一点其实不难,固然我不并非要往利用dns,并且那也是不成能的事变。在win9下的安装目次下,有一名为hosts.sam的文件,以文本体例翻开后会看到如许的格局:
127.0.0.1lockhost#正文
使用它,我们即可以完成域名剖析的当地化!并且其优先权高于收集中的dns!
详细利用时,只需将IP和域名依下面的格局增加,并另存为hosts便可!(注重:此文件无后赘名,并不是hosts.sam文件自己!)
到此,cookie棍骗所需的以是常识已完备。上面以一个“假”的例子,演示一下怎样进进实战.(方便给出实在地点,以避免引发犯法!~~~:P)
假定方针站点是www.xxx.com
www.self.com是本人的站点。(能够用来寄存棍骗方针所需的文件,用来读取和修正对方的cookie.)
起首ping出www.self.com的IP地点:
pingwww.self.com
Replyfrom12.34.56.78:bytes=32time=20msTTL=244
然后修正hosts.sam文件以下:
12.34.56.78www.xxx.com
并保留为hosts。
将用来读取cookie的页面传至www.self.com(剧本如二所示)。
此时连上www.xxx.com。因为我们已对hosts动过四肢举动,这时候离开的并非www.xxx.com,而是www.self.com
www.xxx.com设在当地的cookie即可被读出!~~:D
然后依据详细情形修正一的剧本,用一样的办法,向此cookie中写进数据。修正终了后,删失落hosts文件,再从头进进www.xxx.com,此时已半途而废,可享用你的hack功效了!~~~:)
编后
cookie棍骗是一种发明较早,且较难利用的hack伎俩,除javascript能够把持之外,asp等也能够用来对其进进设置。以是在此声明,一定能对一切站点有较。但手艺实在,不必置疑!
增补:在win2000中hosts文件的创建与win98分歧,必要c:winntsystem32driversetc文件夹中创立!
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
页:
[1]