作者:
p0di
·
2014/02/18 10:40
0x00 背景
2013年網際網路金融對的發展令人震驚。不論是網上銀行、移動支付、三方支付、個人貸款都在迅速崛起。工作需要,上年12月初步探測(不能說研究)了下微信支付,其他小夥伴做的支付寶,現在就將探測到的一些成果比較後分享下。
概念性東西,例如微信支付不做過多說明,不瞭解的去看下百科。支付寶是小夥伴在研究我也不算很清楚,不過拿他測試的結果來和微信支付做下比對以更好的說明問題。
0x01 微信支付與支付寶錢包簡單介紹
微信版本號:5.1
支付寶錢包版本號:7.6
微信支付的整體消費流程是這樣子的:
微信賬號--->繫結--->驗證--->設定支付密碼--->消費
為了更好的測試,我就繫結了自己的銀行卡並消費。具體過程百科已經很詳細貼個圖說明下,繫結結果。大企鵝的繫結驗證過程是怎樣的呢?經過自己的測試我們不難發現驗證過程是這樣子:
1.初次繫結卡:
再次繫結其他卡相對簡單隻需要,預留手機、手機驗證碼。(這時候你會發現該微信只能繫結以第一張開戶的戶主的其他卡片,想繫結其他人卡與該微信對不起客官,不可以)。當以上資訊同時滿足時,銀行卡便被微信繫結,支付時只需要
--->支付密碼(6位數字)
不同的行銀行卡最高限額不同。
支付寶錢包消費:
支付寶賬號--->消費支付寶、消費信用卡、消費儲蓄卡、消費餘額寶
消費方式有三種:
1.複雜支付密碼
2.數字支付密碼(6位)
3.小額面密。
仍用一張圖說明3種支付方式的依賴關係:
0x02 探測結果及比對
經過以上的消費過程,我們不難發現這些的全部過程我們的銀行卡密碼是完全沒有用到的。ok,個人認為這些可稱作快捷支付吧?那麼我們的銀行卡會不會被別人惡意繫結並消費呢?看微信給出的答案:可以。支付寶錢包給出的答案是:不可以。為什麼呢?我們來分析下:
微信的繫結過程在上面已經瞭解過了:重新去註冊個新的微信按以上步驟去繫結、消費。我們發現是完全行的同的。而且不同的微信賬號,設定不同的支付密碼去同時消費同一張銀行卡。繫結過程:卡號+身份證+卡片預留手機號+手機驗證碼。做一個不要臉的假設,社工蒐集(可以對自己的同事下手,哈哈)一旦搞定手機(借收機打個電話、也有小夥伴說補卡)你錢就沒了。小心同事借你手機打個電話你的銀行卡上的錢就莫名其妙的少了………… 恭喜你,他可以隨意消費你的銀行卡了。
卡號+身份證+預留手機+驗證碼---|---|-->錢少了
一個圖說明下銀行卡和微信直接多對多(一個微信可以繫結多個第一個卡片戶主下的其他卡片)的關係:
那麼支付寶錢包為什麼不可以呢?我們都知道,註冊支付寶的時候會有實名驗證,而且你一但註冊是不能二次註冊的。而後期的消費過程中密碼設定更是逐層要求相加。例如你想小額免密支付,必須有以上兩個密碼設定。支付寶安全首先從,根本抑制了以上微信中的問題。當然Tencent註冊的底層基數已經不可能抑制,那麼是不是從安全形度去思考是不是該比阿里做的好點呢?為了表明本次探測的真實性,貼幾張探測過程中的圖片證明:
同一張卡被不同微信繫結:
兩個手機最後消費成功的證明:
根據上面的圖示我們可以清晰的分辨事實的可行性。
0x03 其他
本diaosi,在Java空白加上本身程式設計能力不強,所以沒對相關apk做反編譯。另外,對於微信銀行做了簡單探測,發現絕大數都是跳到自身銀行WAP頁面進行的相關操作,要想做神一步的研究需要偽造生成證照,過程較麻煩且資料量大,所以沒有諸個測試。資料傳輸和資料儲存部分沒技術不過關沒發現什麼東西,有興趣的小夥伴可以研究一下。本文僅僅起到拋磚引玉的作用,移動安全、網際網路金融是熱門,大家衝啊!
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!