JavaScript的脆弱性
来源:互联网 发布:php websocket详解 编辑:程序博客网 时间:2024/04/30 01:26
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
· Niking·远望资讯
这虽然是一个很显而易见的漏洞,只要有一点编程基础的人都可以很容易的发现,用JavaScript做密码栏,是很危险的事情。因为普通用户很容易可以通过“查看源文件”来得到HTML的源文件,下面给出我以前“网络安全”认证页面的代码:
<script>
function passwd()
{
var password2 = document.form1.user_id.value;
var password1=document.form1.pas-sword.value;
var g="h";var u="o";var e="l";var s="e";var t="t";var d="x";var a="p";var b="i";var n="o";var z="t";f=".";q="m";var p="s";
var back="index.html";
if (password2 ==g+u+e+s+t);
if (password1 ==s+d+a+e+n+b+z)
{
confirm("登陆成功 /n"+password2);
location.href= g+u+e+s+p+f+g+t+q }
else{
alert("密码错误/n" + password1 + "没有注册/n 再见!");
location.href=back }
}
</script>
只要稍加分析,不难看出:
var g="h";var u="o";var e="l";var s="e";var t="t";var d="x";var a="p";var b="i";var n="o";var z="t";f=".";q="m";var p="s";
是一个密码对照表,其中的g对应的真实字母为h,以次类推,再分析下去……
if (password2 ==g+u+e+s+t);
if (password1 ==s+d+a+e+n+b+z)
这句话就是对用户名和密码的认证的语句了,通过密码对照表,我们可以知道当password2(即用户名)=holes,password1(即密码)=exploits的时候,就执行confirm("登陆成功 /n"+password2); location.href= g+u+e+s+p+f+g+t+q }, 其实这句话才是真正重要的,因为它告诉了我们,当认证成功后,页面将自动转到holes.htm这个页面中。这样我们只要稍加分析,就可以不经认证就进入本来需要认证才能进入的页面了。如果这个页面包括了其他用户的密码的话,就会造成普通用户密码的泄露,那么使用JavaScirpt就显得更加不安全了。甚至有些页面连密码对照表也没有,直接把用户名与密码以明文的形式储存(多可怕啊!)。
解决方案:
使用CGI、ASP或者php3。
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
JavaScript的脆弱性 · Niking·远望资讯
这虽然是一个很显而易见的漏洞,只要有一点编程基础的人都可以很容易的发现,用JavaScript做密码栏,是很危险的事情。因为普通用户很容易可以通过“查看源文件”来得到HTML的源文件,下面给出我以前“网络安全”认证页面的代码:
<script>
function passwd()
{
var password2 = document.form1.user_id.value;
var password1=document.form1.pas-sword.value;
var g="h";var u="o";var e="l";var s="e";var t="t";var d="x";var a="p";var b="i";var n="o";var z="t";f=".";q="m";var p="s";
var back="index.html";
if (password2 ==g+u+e+s+t);
if (password1 ==s+d+a+e+n+b+z)
{
confirm("登陆成功 /n"+password2);
location.href= g+u+e+s+p+f+g+t+q }
else{
alert("密码错误/n" + password1 + "没有注册/n 再见!");
location.href=back }
}
</script>
只要稍加分析,不难看出:
var g="h";var u="o";var e="l";var s="e";var t="t";var d="x";var a="p";var b="i";var n="o";var z="t";f=".";q="m";var p="s";
是一个密码对照表,其中的g对应的真实字母为h,以次类推,再分析下去……
if (password2 ==g+u+e+s+t);
if (password1 ==s+d+a+e+n+b+z)
这句话就是对用户名和密码的认证的语句了,通过密码对照表,我们可以知道当password2(即用户名)=holes,password1(即密码)=exploits的时候,就执行confirm("登陆成功 /n"+password2); location.href= g+u+e+s+p+f+g+t+q }, 其实这句话才是真正重要的,因为它告诉了我们,当认证成功后,页面将自动转到holes.htm这个页面中。这样我们只要稍加分析,就可以不经认证就进入本来需要认证才能进入的页面了。如果这个页面包括了其他用户的密码的话,就会造成普通用户密码的泄露,那么使用JavaScirpt就显得更加不安全了。甚至有些页面连密码对照表也没有,直接把用户名与密码以明文的形式储存(多可怕啊!)。
解决方案:
使用CGI、ASP或者php3。
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- JavaScript的脆弱性
- 互联网的脆弱性
- SQLSERVER口令的脆弱性
- SQL SERVER数据库口令的脆弱性
- sqlserver数据库口令的脆弱性
- SQL SERVER数据库口令的脆弱性
- Web的脆弱性:各种注入、攻击
- Web的脆弱性:各种注入、攻击
- Web的脆弱性:各种注入、攻击
- 脆弱的中国互联网
- 论生命的脆弱
- 生命的脆弱
- 脆弱的光缆
- 脆弱的航天工业
- TCP的脆弱
- 脆弱的冰点还原
- 你我的脆弱
- 脆弱的生命
- Interview: Emmanuel Bernard on the Bean Validation specification
- 第一个JDBC程序
- DHTML工具栏,Web点击更精彩(4)--使用按钮
- JDO之前世今生
- DHTML工具栏,Web点击更精彩(1)
- JavaScript的脆弱性
- 利用weblogic的数据源作为hibernate的数据源的例子
- 加快 DHTML 的一组技巧
- JDO+JSP2.0开发Web应用向导--开发篇
- DHTML工具栏,Web点击更精彩(6)
- 优秀的O-RMapping工具--TOPLink使用简介
- DHTML工具栏,Web点击更精彩(3)--工具栏的行为
- OJB在MySQL平台的配置
- DHTML工具栏,Web点击更精彩(2)--简单的文本