中国移动飞信WAP网页版 http://f.10086.cn/im5/

用WAP飞信登录并向好友发送信息,同时用wireshark抓包。

1.过滤POST表单提交数据包(wireshark规则: http.request.method == POST),查找分析登陆数据

从上图可知:

  1. 登陆URLhttp://f.10086.cn/im5/login/loginHtml5.action?t=1393041438687
  2.  
  3. POST数据:m=手机号&pass=密码&captchaCode=&checkCodeKey=null
  4.  
  5. Refererhttp://f.10086.cn/im5/login/login.action?mnative=0&t=1393041438687
  6.  
  7. CookieUUID=...; JSESSIONID=...; infoversion=[部分省略]

2.根据这个数据包向前寻找Cookie等参数的来源

(wireshark规则: http and ip.addr = 221.130.45.197)

从上图可知:

登陆数据包前,有2个前置页面,可获取Cookie等参数

红色框中的参数根据其数值变化情况,可推测出是距1970年1月1日之间的毫秒数


3.根据以上信息即可成功登陆WAP飞信,下面寻找向好友发送消息的数据包

从上图可知:

  1. 登陆URLhttp://f.10086.cn/im5/chat/sendNewMsg.action
  2.  
  3. POST数据:touserid=用户ID&msg=消息内容
  4.  
  5. Refererhttp://f.10086.cn/im5/login/login.action?mnative=0&t=1393041417548
  6.  
  7. CookieUUID=...; JSESSIONID=...; infoversion=; cell_cookie=...; loginstatusCookie=; MarkTips=--[部分省略]
  8.  
  9. 发送消息POST数据包含用户ID及消息内容
  10.  
  11. 红色框请求可查询用户ID

4.请求查询用户ID页面

从上图可知:

  1. 登陆URLhttp://f.10086.cn/im5/index/searchFriendsByQueryKey.action
  2.  
  3. POST数据:queryKey=消息接受者手机号
  4.  
  5. Refererhttp://f.10086.cn/im5/login/login.action?mnative=0&t=1393041417548
  6.  
  7. CookieUUID=...; JSESSIONID=...; infoversion=; cell_cookie=...; loginstatusCookie=; MarkTips=--[部分省略]
  8.  
  9. 通过手机号可以查询用户ID

实现流程

1.通过前置页面获取Cookie等参数

2.提交账号、密码表单登陆

3.查询消息接受者用户ID

4.发送消息

各个页面携带Referer、Cookie等参数(必须时需要user_agent参数)


Shell脚本如下:

  1. #!/bin/bash
  2.  
  3. if [ $# -eq 0 ]; then
  4. echo "Usage: fetion [-u name|tel] -m Message"
  5. exit 1
  6. fi
  7.  
  8. while [ $# -gt 0 ]
  9. do
  10. case $1 in
  11. -u) destination=$2
  12. shift
  13. ;;
  14. -m) message=$2
  15. shift
  16. ;;
  17. -*) echo "Usage: fetion [-u name|tel] -m Message"
  18. exit 1
  19. ;;
  20. *) break
  21. ;;
  22. esac
  23. shift
  24. done
  25.  
  26. user_id="用户ID"
  27. password="密码"
  28.  
  29. ##############################################################
  30. #get cookie
  31. curl -c cookie.txt http://f.10086.cn/im5/ &> /dev/null
  32.  
  33. #login
  34. post_data="m=$user_id&pass=$password&captchaCode=&checkCodeKey=null"
  35. timestamp=$((`date +%s`+3600))
  36. url="http://f.10086.cn/im5/login/loginHtml5.action?t=$timestamp"
  37. curl -b cookie.txt -c cookie.txt -d $post_data $url &> /dev/null
  38.  
  39. ###################################################################
  40. #name->userid tel->userid
  41.  
  42. url="http://f.10086.cn/im5/index/searchFriendsByQueryKey.action"
  43. post_data="queryKey=$destination"
  44. head_referer="Referer: http://f.10086.cn/im5/login/login.action?mnative=0&t=$timestamp"
  45. result=`curl -s -b cookie.txt -H $head_referer -d $post_data $url`
  46. #echo $result > temp
  47. result=`echo $result | grep -o -E 'idContact":[0-9]+' | sed 's/.*://g'`
  48. if [ -n "$result" ]; then
  49. userid=$result
  50. echo "Id: $userid"
  51. else
  52. userid="用户ID" #自己的ID,可通过添加上面注释行在temp中找到
  53. echo "User ID does not exist!"
  54. echo "\_[This message will be sent to your moblie phone]"
  55. fi
  56. #######################################################################
  57. #seny message to myself
  58.  
  59. message=${message// /%20} #replace spaces
  60. echo "Message: $message"
  61. msg_post_data="msg=$message&touserid=$userid"
  62. send_url="http://f.10086.cn/im5/chat/sendNewGroupShortMsg.action"
  63. head_referer="Referer: http://f.10086.cn/im5/login/login.action?mnative=0&t=$timestamp"
  64. result=`curl -s -b cookie.txt -c cookie.txt -H $head_referer -d $msg_post_data $send_url`
  65.  
  66. result=`echo $result | grep -o -E 'sendCode":"[0-9]{1,3}' | sed 's/.*"//g'`
  67.  
  68. if [ $result -eq 200 ]; then
  69. echo "send message success![$result]"
  70. else
  71. echo "send message failure![$result]"
  72. fi

中国移动飞信WAP登陆分析及脚本的更多相关文章

  1. Xdebug文档(六) 分析PHP脚本

    分析PHP脚本Xdebug内置分析器能让你找到脚本中的瓶颈并用额外的工具诸如KcacheGrind或WinCacheGrind工具可视化. 介绍 Xdebug分析器是分析PHP代码和判断瓶颈或确定代码 ...

  2. Hadoop日志分析系统启动脚本

    Hadoop日志分析系统启动脚本 #!/bin/bash #Flume日志数据的根文件夹 root_path=/flume #Mapreduce处理后的数据文件夹 process_path=/proc ...

  3. 鸿蒙内核源码分析(编译脚本篇) | 如何防编译环境中的牛皮癣 | 百篇博客分析OpenHarmony源码 | v58.01

    百篇博客系列篇.本篇为: v58.xx 鸿蒙内核源码分析(环境脚本篇) | 编译鸿蒙原来如此简单 | 51.c.h.o 本篇用两个脚本完成鸿蒙(L1)的编译环境安装/源码下载/编译过程,让编译,调试鸿 ...

  4. ssh伪登陆执行远程主机脚本命令 C程序基于ssh passwordless执行远程主机命令及基于配置文件的验证伪登陆执行命令

    1,基于有密码及免秘钥在远程主机上执行命令及脚本 ssh -T ip "CLI or shell.sh"; 2,C程序实现上述功能--基于password-less

  5. Nmap源码分析(脚本引擎)

    Nmap提供了强大的脚本引擎(NSE),以支持通过Lua编程来扩展Nmap的功能.目前脚本库已经包含300多个常用的Lua脚本,辅助完成Nmap的主机发现.端口扫描.服务侦测.操作系统侦测四个基本功能 ...

  6. Oracle logmnr工具分析日志脚本

    在oracle:对logmnr工具分析日志这个不陌生:对数据恢复应用场景经常用到:这里为了方便对归档日志进行分析: 当然网上有一个logmnr界面的工具:感觉很人性化:下载需要积分:为此写一个脚本. ...

  7. nginx源码分析——configure脚本

    源码:nginx 1.13.0-release   一.前言      在分析源码时,经常可以看到类似 #if (NGX_PCRE) .... #endif 这样的代码段,这样的设计可以在不改动源码的 ...

  8. Nginx日志分析及脚本编写

    在我们日常的运维中,当Nginx服务器正常运行后,我们会经常密切关注Nginx访问日志的相关情况,发现有异常的日志信息需要进行及时处理. 那今天我将跟大家一起来研究和分析Nginx日志,nginx默认 ...

  9. 脚本重定向输出【错误、正确】——分析service脚本中用到的语法

    <1> >&2 即 1>&2 也就是把结果输出到和标准错误一样:之前如果有定义标准错误重定向到某log文件,那么标准输出也重定向到这个log文件如:ls 2&g ...

随机推荐

  1. WeQuant交易策略—Chaikin A/D

    策略名称:AD指标策略 多空双方力量浮标- AD(Chaikin A/D线)策略关键词:ChaikinA/D线.多空对比.AD指标是一种非常流行的平横交易量指标, 用于估定一段时间内该证券累积的资金流 ...

  2. Android辅助功能原理与基本使用详解-AccessibilityService

    辅助功能原理与基本使用详解 本文主要介绍辅助功能的使用 辅助功能基本原理 辅助功能基本配置和框架搭建 辅助功能实战解析 辅助功能基本原理   辅助功能(AccessibilityService)其实是 ...

  3. asp.net mvc 接入美圣短信 验证码发送

    第1步:登录美圣短信控制台 http://www.rcscloud.cn/hy/HY_ZH/login 账号:******* 密码:******* http://www.rcscloud.cn/com ...

  4. jQuery事件对象

    1.event.currentTarget 事件的监听者2.event.target 事件的目标3.event.delegateTarget 绑定了当前正在调用jQuery事件处理器的(当前事件的委托 ...

  5. jquery的2.0.3版本源码系列(6):2880-3042行,回调对象,对函数的统一管理

    目录 1 . 回调对象callbacks的演示 回调的使用有一点像事件绑定,先绑定好,等到有点击事件或者其他时就触发. <script src="js/jquery-2.0.3.js& ...

  6. 再起航,我的学习笔记之JavaScript设计模式18(观察者模式)

    观察者模式 观察者模式(Observer): 又被称为发布-订阅者模式或消息机制,定义了一种依赖关系,解决了主体对象与观察者之间功能的耦合. 创建一个观察者对象 首先我们创建一个闭包对象,让其在页面加 ...

  7. 插入排序与希尔排序Java实现

    public class TestMain { public static void main(String[] args) { Integer[] a = new Integer[5000]; fo ...

  8. JSON 理解

    转自: http://blog.csdn.net/qyf_5445/article/details/8635578 (json很全面的理解) http://www.cnblogs.com/haitao ...

  9. IEnumerable和IQueryable接口

    之间的区别 IQueryable继承于IEnumerable IEnumerable:IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等一些扩展方法之前数据就已经加 ...

  10. MPLS VPN随堂笔记2

    深入理解ospf 理解MPLS VPN 中对OSPF 层次化设计的补充 supper backbone area 2:理解MPLS VPN 中OSPF 的区域设计概念 3:理解MPLS VPN 中OS ...