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

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

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

从上图可知:

登陆URL:http://f.10086.cn/im5/login/loginHtml5.action?t=1393041438687

POST数据:m=手机号&pass=密码&captchaCode=&checkCodeKey=null

Referer:http://f.10086.cn/im5/login/login.action?mnative=0&t=1393041438687

Cookie:UUID=...; JSESSIONID=...; infoversion=[部分省略]

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

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

从上图可知:

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

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


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

从上图可知:

登陆URL:http://f.10086.cn/im5/chat/sendNewMsg.action

POST数据:touserid=用户ID&msg=消息内容

Referer:http://f.10086.cn/im5/login/login.action?mnative=0&t=1393041417548

Cookie:UUID=...; JSESSIONID=...; infoversion=; cell_cookie=...; loginstatusCookie=; MarkTips=--[部分省略]

发送消息POST数据包含用户ID及消息内容

红色框请求可查询用户ID

4.请求查询用户ID页面

从上图可知:

登陆URL:http://f.10086.cn/im5/index/searchFriendsByQueryKey.action

POST数据:queryKey=消息接受者手机号

Referer:http://f.10086.cn/im5/login/login.action?mnative=0&t=1393041417548

Cookie:UUID=...; JSESSIONID=...; infoversion=; cell_cookie=...; loginstatusCookie=; MarkTips=--[部分省略]

通过手机号可以查询用户ID

实现流程

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

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

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

4.发送消息

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


Shell脚本如下:

 #!/bin/bash

 if [ $# -eq 0 ]; then
echo "Usage: fetion [-u name|tel] -m Message"
exit 1
fi while [ $# -gt 0 ]
do
case $1 in
-u) destination=$2
shift
;;
-m) message=$2
shift
;;
-*) echo "Usage: fetion [-u name|tel] -m Message"
exit 1
;;
*) break
;;
esac
shift
done user_id="用户ID"
password="密码" ##############################################################
#get cookie
curl -c cookie.txt http://f.10086.cn/im5/ &> /dev/null #login
post_data="m=$user_id&pass=$password&captchaCode=&checkCodeKey=null"
timestamp=$((`date +%s`+3600))
url="http://f.10086.cn/im5/login/loginHtml5.action?t=$timestamp"
curl -b cookie.txt -c cookie.txt -d $post_data $url &> /dev/null ###################################################################
#name->userid tel->userid url="http://f.10086.cn/im5/index/searchFriendsByQueryKey.action"
post_data="queryKey=$destination"
head_referer="Referer: http://f.10086.cn/im5/login/login.action?mnative=0&t=$timestamp"
result=`curl -s -b cookie.txt -H $head_referer -d $post_data $url`
#echo $result > temp
result=`echo $result | grep -o -E 'idContact":[0-9]+' | sed 's/.*://g'`
if [ -n "$result" ]; then
userid=$result
echo "Id: $userid"
else
userid="用户ID" #自己的ID,可通过添加上面注释行在temp中找到
echo "User ID does not exist!"
echo "\_[This message will be sent to your moblie phone]"
fi
#######################################################################
#seny message to myself message=${message// /%20} #replace spaces
echo "Message: $message"
msg_post_data="msg=$message&touserid=$userid"
send_url="http://f.10086.cn/im5/chat/sendNewGroupShortMsg.action"
head_referer="Referer: http://f.10086.cn/im5/login/login.action?mnative=0&t=$timestamp"
result=`curl -s -b cookie.txt -c cookie.txt -H $head_referer -d $msg_post_data $send_url` result=`echo $result | grep -o -E 'sendCode":"[0-9]{1,3}' | sed 's/.*"//g'` if [ $result -eq 200 ]; then
echo "send message success![$result]"
else
echo "send message failure![$result]"
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. java 5年规划---

    偶然看到别人,觉得写的很好,尤其对刚出来工作的人,不一定是最好,但至少可以给你一个方向,所以就把这篇文章放到自己博客来,时刻提醒自己 第一部分 在搭建SSM的过程中,可能会经常接触到一个叫maven的 ...

  2. 【技术分享】手把手教你使用PowerShell内置的端口扫描器

    [技术分享]手把手教你使用PowerShell内置的端口扫描器 引言 想做端口扫描,NMAP是理想的选择,但是有时候NMAP并不可用.有的时候仅仅是想看一下某个端口是否开放.在这些情况下,PowerS ...

  3. [2016-09-23]远程安装、更新windows服务bat脚本分享

    话不多说,有兴趣的自己可以仔细研究下涉及的命令:net use.sc.robocopy 脚本 set BuildConfig=[ENV] set BuildExeName=[your_exe_name ...

  4. javascript创建数组的所有方式【Array老师】

    1.采用直接量创建 var arr = [];//创建一个空数组 var arr2 = [1,2,3];//创建一个有三个元素的数组 2.采用构造函数创建 a.var arr1 = new Array ...

  5. 从源码分析java.lang.String.isEmpty()

    今天在写代码的时候用到了java.lang.String.isEmpty()的这个方法,之前也用过,今天突发奇想,就看了看源码,了解了解它的实现方法,总结出来,大家可以交流交流. 通常情况下,我们使用 ...

  6. Netty自娱自乐之协议栈设计

    ---恢复内容开始--- 俺工作已经一年又6个月了,想想过的真快,每天写业务,写业务,写业务.......然后就是祈祷着,这次上线不要出现线上bug.继续这每天无聊的增删改查,学习学习一下自己感兴趣的 ...

  7. 八大排序算法---基于python

    本文节选自:http://python.jobbole.com/82270/ 本文用Python实现了插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 1.插入排序 ...

  8. Java GC 日志详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt105 java GC日志可以通过 +PrintGCDetails开启 以Pa ...

  9. JVM启动参数设置

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt174 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正 ...

  10. Cassandra HBase和MongoDb性能比较

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp68这是一篇基于亚马逊云平台上对三个主流的NoSQL数据库性能比较,在读写 ...