中国移动飞信WAP登陆分析及脚本

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

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

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

中国移动飞信WAP登陆分析及脚本

从上图可知:

登陆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)

中国移动飞信WAP登陆分析及脚本

从上图可知:

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

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


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

中国移动飞信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页面

中国移动飞信WAP登陆分析及脚本

从上图可知:

登陆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
上一篇:Tymeleaf模板引擎背景图片路径书写方式


下一篇:Lambda表达式实现有限状态机