当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
注:下文涉及一种Web入侵方式的古老方法,即利用Cookie冒充已登录用户。熟知此方法的朋友请退散。

我们在做Web应用时,习惯把用户信息放到Session中,而这一举措,实际上有较大的潜在危险性,如果别人知道了我们的session id,就可能利用它以我们的身份进入Web应用。因为session的数据虽然存在于服务器中,但识别客户端各自的数据还是靠存放在客户端的session Id的,如果有人以某个已登录的用户的session Id进入Web应用,那么他就会被当作那个用户,下文将展示这一过程。

首先,我们让某个用户正常登录一个位于Tomcat上的应用,注意右上角的用户名的显示:



再取得他的session Id。这一步实际上有很多途径取到,比如url中有时带有它,Struts做前端的e
Web应用就时常可见;本地cookie中可以找到它,这个用程序就能知道,用js也行(使用document.cookie);用嗅探器也可以获得它,这个嗅探器可以放在想冒充用户的机器或是网关上。下面使用了TCPMon得到其session id(具体使用方法请参考 http://www.blogjava.net/heyang/archive/2010/12/10/340294.html)。

上面高亮的文字部分就是“关羽”这个用户的session id。

现在,url “http://localhost:8080/ProjectManager/GotoModifyUserPage.do” 和session id“4DC291FC36B2392BE440F70E5B3AA49D” 我们已经得到,接下来就是用它们来进入web应用了。

一般的浏览器没有可供输入 session id的地方,但从原理来看我们知道这并不复杂,因为http是基于文本的,只要有工具能把Url和cookie捏合起来成文本并发送就可以了,WebTool就是这样的一款工具,你可以从http://www.hackline.net/a/soft/tools/2010/0603/4198.html  来获得它。

得到下载文件解开包,执行里面的WebTool 4.2.exe,点击其菜单“设置”-->“自定义cookie浏览”,使其成为勾选状态,然后在地址栏输入http://localhost:8080/ProjectManager/GotoModifyUserPage.do,左下方的cookie处输入4DC291FC36B2392BE440F70E5B3AA49D,然后点击右上方的“Get”按钮,你将看到以下画面:


好了,看看其右上方把,用户名“关羽”已经显示出来了。我们这会不用得知关羽的密码也能以他的身份开始操作了,这就是冒充session id做到的。

好了,感谢您看到这里。可见,常规Web应用还是比较脆弱的,但这种入侵方式也好防范,将协议改成改成https就可以了(请参考 http://www.blogjava.net/heyang/archive/2010/12/13/340500.html)。另希望有人不要把上文的技巧用到不该用的地方,去动本不该属于自己的东西是危险而徒劳的。
posted on 2010-12-14 17:14 何杨 阅读(2073) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: