请问如何破解网上银行的安全控件!
呃,其实我是标题党!严重声明俺不是要干犯法的事!
某银行有个项目想外包给我们做,业务流程简单的说就是银行把客户提交的申请资料给我们,我们来进行电话或上门核实资料是否有效,最终把结果反馈给银行。
由于银行对数据安全的要求非常高,我几乎是无计可施。银行不允许上网、不公开数据接口、不允许修改他们的系统、不允许动他们一切东西。
银行想让我们实现2个功能:
一、导出资料。银行的系统没有批量导出的功能,也就是说一天几千份的资料要手工一个个的点击导出,所以他们想有个什么东西可以帮助他们自动的完成这个导出工作。
二、反馈结果。银行希望我们能将结果生成固定格式的文档,然后批量自动的导入到他们的系统中。
由于上面提到一系列不允许,除了直接控制网页操作我实在想不出别的办法。
银行的业务系统我还没见到,只知道是java开发的网页,于是,拿着中行的网上银行开始做测试:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Url = New Uri("https://ebs.boc.cn/BocnetClient/PreLogin.do?_locale=zh_CN") End Sub Dim b As Boolean = False Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted Try Dim tbUserid As HtmlElement = WebBrowser1.Document.All("LoginName") Dim tbvalida As HtmlElement = WebBrowser1.Document.All("ValidationChar") Dim tbPasswd As HtmlElement = WebBrowser1.Document.All("pass") tbUserid.SetAttribute("value", "帐号") tbvalida.SetAttribute("value", "验证码") '只是测试,俺也不会识别验证码 tbPasswd.SetAttribute("value", "密码") '提示参数数目与需要的数据不符 Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
<tr> <td> </td> <td height="30" class="input_font">用 户 名:</td> <td valign="bottom"><input type="text" name="LoginName" class="login" maxlength="20" /></td> <td rowspan="2" align="left" valign="top" class="input_font2">用户名和密码对大小写字母敏感,请注意区分</td> </tr> <tr> <td> </td> <td height="30" class="input_font">密 码:</td> <td> <div id="passobject" class="login"> <script language="JavaScript"> passr = CreateControl("passobject", "document.form1", "pass", "0", "zh_CN"); </script> </div> </td> </tr>
[解决办法]
个人建议模拟键盘鼠标吧,至少可行性没问题
[解决办法]
我也觉得可以用模拟鼠标点击和键盘输入的WinodwsAPI可以搞定。 你有密码, 是正常登录, 也没有破解银行系统, 为什么说是犯罪呢?
[解决办法]
接着上面的说,网银登陆控件的破解存在可行性,因为它与其他不可破解的东西有区别。
比如网银的USBKEY不能破解,是因为它的算法和数据(主要是证书私钥)都放到了硬件内部,不可能反汇编;
WinRAR和Word的密码不以破解,是因为若口令不正确,加密算法得到的数据就是错误的数据。
网上论坛,网上银行的登陆密码不能破解,是因为若口令不正确,服务器就拒绝发送任何有价值的数据,而且服务器的算法是不可以反汇编的(因为不能物理接触)。