1年前 (2015-11-14)  网络 |   6 条评论  1716 
文章评分 0 次,平均分 0.0

wechat-logo-vector-image

1、原理:

微信运动的原理还是读取的协处理器,比如iPhone的M系列处理器读数,而iOS这个API是开放的,诸多第三方配件或者软件都可通过该特性与微信结合,也就是说微信在取数时不仅可以从iOS本身的“健康”程序中获取,也可以从第三方APP获取。

而问题的关键就在于微信并没有对第三方的数据做验证,从理论来说这个验证有一定难度,因为运动数据可能来自各种手环或者周边配件而非iPhone本身,虽然该漏洞不会危及安全,但是对运动结果有较大影响,随意修改天天都可以当运动第一名了。

2、修改:

为了装逼可以用乐动力的提交过程来修改运动最终参数,因为乐动力是明文传输可以随意修改, 那么就用python运行该代码,更改运动步数:

#coding: utf-8

#date: 刷微信步数

#usage: edit steps and ledongli's uid(u need to download this app) .That would be ok .Good luck. ^_^

import requests

import sys

import json

import datetime

import time

def isnum(value):

    try:

        temp = int(value)

    except Exception as e:

        return False

    else:

        return True

# like 2015-09-25 00:00:00 converts to unix time stamp

def formatDate():

    nowtime = datetime.datetime.now()

    date = time.strftime('%Y-%m-%d')

    strtemp_date = date + ' 00:00:00'

    ledongli_date = time.strptime(strtemp_date, '%Y-%m-%d %H:%M:%S')

    finaldate = time.mktime(ledongli_date) # rusult is 1443456000.0(float type), but still need to format to 1443456000

    finaldate = int(finaldate)

    return finaldate

def main(steps, uid):

    if not isnum(steps):

        print('param error. steps must be an integer.')

    url = 'http://pl.api.ledongli.cn/xq/io.ashx'

    fake_headers = {

                        'User-Agent'     : 'le dong li/5.4 (iPhone; iOS 9.1; Scale/2.00)',

                        'Content-Type'   : 'application/x-www-form-urlencoded; charset=UTF-8',

                        'Accept-Encoding': 'gzip'

                    }

    keycontentjson = [

                        {

                            "date": formatDate(),
                            "calories": 0,
                            "activeValue": 108,
                            "steps": steps,
                            "pm2d5": 0,
                            "duration": 0,
                            "distance": 0,
                            "report": "[]"

                        }

                     ]

    # key is a str type

    # key must be a json data convert to string

    key = json.dumps(keycontentjson)

    param = {

                'action': 'profile',

                'pc':     '29e39ed274ea8e7a50f8a83abf1239faca843022',

                'cmd':    'updatedaily',

                'uid':    uid,

                'list':   key,
                 'v'  :   '5.4%20ios',
                 'vc' : '540%20ios'
            }

    r = requests.post(url, data = param, headers = fake_headers)

    print(r.text)

    print('装逼成功')

if __name__ == '__main__':

    steps = 199999

    uid = '1111111'

    main(steps, uid)

 

3、当然,也可以用sohoer挂好的js来直接修改:

http://china.newcrawler.com/run.html 其中ID就是你乐动力的ID,点好直接提交,在微信同步即可。

EA3E165C-5518-497E-8C0E-A598E479BC50

原文来自:http://www.v2ex.com/t/236084#reply60

相关漏洞报告:https://www.wooyun.org/?action=view&bugnumber=wooyun-2015-0139632

 

 

  
 

除特别注明外,本站所有文章均为AbcLite原创,转载请注明出处来自http://www.abclite.cn/1730.html

关于

发表评论

表情 格式

  1. 似乎没了。

    电* 1年前 (2015-11-24) [0] [0]
  2. 登入网站提示要用户名,是不是没交钱被清空了

    大保健 1年前 (2015-11-22) [0] [0]
  3. 被和谐了?

    大楠 1年前 (2015-11-22) [1] [0]
  4. 同步了,但还是原来的数据

    流沙 1年前 (2015-11-15) [0] [0]
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册