利用Python无限爆破路由器密码,数据查询接口协议

 必赢亚州手机网站     |      2019-11-20 03:12

图片 1

1.概述

image

1.1.用途

向集成客商端提供查询数据和登陆服务。
大器晚成旦能源必要授权才具查看和应用,请首先阅读“5.登入验证”小节。

在院子里面看见了一个没人用的路由器(ws860s卡塔尔国,看起来像个黑科学和技术的玩具,就想着进去看看,到底有何有意思的。看见前面包车型大巴竹签上有web分界面包车型地铁地点,然后登录进去看看,开掘成密码,然后自个儿想,路由器的密码应该都是足以reset的,然后笔者就用笔戳那么些reset键,奇迹未有发生,原本那一个reset键坏了。

1.2.通讯商量

客商端和服务器通过HTTP左券通讯,顾客端应用HTTP Get向服务器发送伏乞,服务器再次来到json格式的作业数据或操作结果给客商端。

图片 2

1.3.接口恳求

接口地址是三个HTTP公约的url地址,具体魄式是:

ip替换到实际服务器的ip或域名,就算端口不是默许端口,供给把端口加上。
token是认证字符串,在报到接口中获得,若无登入则省略。
其它内容参见接口的概念。
当UKugaL央浼参数值中隐含U奥迪Q5L地址保留字符时,应对参数值举行U昂科拉L编码。
实际参见“纳瓦拉FC2396: Uniform Resource Identifiers (U奇骏I): Generic Syntax”。
当倡议参数饱含中文字符时,应对汉语字符采取UTF-8编码。

image

1.4.回去音信结构

回到的json新闻数据结构具备从严的风姿洒脱致性,客商端能够运用同大器晚成的接受和分析方法管理回来信息。
简单新闻
简易的回到音信富含对诉求的管理结果,结构如下:

{
    "code":0,
    "err_desc":""
}

其中:
code 为0表示管理成功,此外值表示处理退步。
err_desc是对不当的叙说,在code为0时err_desc会被轻松。
优异情形,在客户认证的login1和login2接口中,err_desc具备独特用项用法,具体参见接口描述。除那多个接口之外,err_desc都代表错误描述。
带业务数据的新闻
局地再次回到音信除了包括管理结果音讯,还隐含业务数据记录集,结构如下:

 {
        "code":0,
        "data":{
            "count":1,
            "items":[...]
        }
    }

其中:
data 业务数据的根节点:
count 业务数据的条数,大概的值为0 ~ n
items 业务数据,是一个数组,数据条数由count属性定义。当count为0时,items属性大概为null只怕不设有。
本文书档案后续章节中,在描述items成分的性质时,会轻巧一些天性的叙说,即事实上调用接口重回的习性在本文书档案中恐怕会并未有描述,这种情况下请直接忽略被忽视描述的属性值。本文书档案中描述的质量是实际上重临内容的多个子集,未有描述到的内容对集开支系统绝非影响。
带分页数据的音信
只要回去数据非常多,服务器会对回到的数目举行分页,客商端能够遵照页码央求钦定范围的数额。带分页音信的回来数据结构如下:

    {
    "code":0,
    "data":{
        "page":1,
        "page_size":"20",
        "pages":"1",
        "total":"2",
        "count":2,
        "items":[...]
                }
}

分页数据新闻在data元素下,意义如下:
page 当前页码
page_size 每页数据记录条数
pages 总共的页数
total 总量据条数
count 当前归来页的数量条数
假如回到的数额带有分页音信,则能够在调用接口时行使page参数来号令内定页码的数量。

图片 3

1.5.参考

[1] RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1[S].
[2] RFC 3986, Uniform Resource Identifier (URI): Generic Syntax[S].
[3] Introducing JSON

image

2.询问分类

浅析进度

2.1.查询分类

  • 用途
    询问CMS上的分类消息。
    请求

    parent 上级分类编号。假使忽略,会重临超级分类列表。
    如果要询问超级分类,请去掉parent参数。

  • 响应

{
    "code": 0,
    "data": {
        "count": 2,
        "items": [
            {
                "id": 1,
                "name": "公共栏目",
                "comment": "",
                "upper_catalog_id": 0
            },
            {
                "id": 2,
                "name": "私有栏目",
                "comment": "",
                "upper_catalog_id": 0
            }
        ]
    }
}

id 编号
name 名称
comment 备注
"upper_catalog_id 上级分类编号, 0 表示近些日子分类一下是一级分类。

抓包

2.2.询问分类树

  • 用途
    询问全体分类及其下属分类。
    请求

  • 响应

{
    "code": 0,
    "data": {
        "count": 2,
        "items": [
            {
                "id": 1,
                "name": "公共栏目",
                "comment": "",
                "upper_catalog_id": 0,
                "sub_items": [
                                {
                                    "id": 5,
                                    "name": "二级分类1",
                                    "comment": "",
                                    "upper_catalog_id": 1
                                },
                                ...
                    ]
            },
            ...
        ]
    }
}

id 编号
name 名称
comment 备注
"upper_catalog_id 上级分类编号, 0 表示近来比物连类是一级分类。
sub_items 下级分类数组,包涵 0 或多少个下级分类。

1、展开路由的web页面:192.168.3.1,路由器再次回到

3.查询媒体能源

图片 4

3.1.查询媒体财富

  • 用途
    查询媒体能源。
    能够查询有些编号的财富的新闻,也能够查询有个别分类下的具备资源新闻。
    请求

    parent 分类编号,假设要查询有些分类下的富有能源,请忽视下三个参数。
    media_id 资源编号,尽管给出该参数,则只询问号码为media_id的三个财富的音讯,并忽视parent参数。

  • 响应

{
    "code": 0,
    "data": {
        "page": 1,
        "page_size": "20",
        "pages": 9,
        "total": "18",
        "count": 2,
        "items": [
            {
                "id": 79,
                "catalog_id": 2,
                "title": "vod - 8898",
                "sub_title": "G3视频",
                "abstract": null,
                "text": null,
                "resource_type": "vod",
                "cover": "/mserver/cms/covers/res_cover_79.jpg?1515729601",
                "duration": 98,
                "add_time": "2018-01-08 19:19:26",
                "view_times": 0,
                "open_status": 0
            },
            ...
        ]
    }
}

再次来到0个或多个财富新闻。
id 财富编号
catalog_id 所属分类编号
title 标题
sub_title 小标题
abstract 摘要描述
text 描述
resource_type vod或live
cover 封面地址
duration 播放时间长度
add_time 增添大运
view_times 观察次数
open_status 开放处境

image

4.查询播放地址

图片 5

4.1.查询播放地址

  • 用途
    查询有些媒体财富的广播地址。
    请求

    media_id 能源编号。
    protocol 播出公约,点播财富能够是hls,http-flv或http-mp3;直播能源得以是 rtmp或hls。假使轻易,重返全体公约的地点。
    客户端请依据终端类型采取合适的放映左券:
    android、ios或任何援救H5的浏览器,能够选择:hls, http-VCD左券
    PC选用http-flv或rtmp协议

  • 响应

{
    "code": 0,
    "data": {
        "count": 1,
        "items": [
            {
                "id": 104,
                "resource_id": 39,
                "web_url": "/mp4/vod/yellowstone/yellowstone.mp4",
                "web_io_protocol": "http-mp4",
                "add_time": "2017-08-25 16:35:16"
            }
        ]
    }
}

重临0个或八个广播地址,三个财富可能有多个例外协商的广播地址。
resource_id 财富编号
web_url 播出地址
"web_io_protocol 播出左券

image

5.登陆验证

会收获csrf和cookie和所须求的值,那么些值都要封存下来,后边会用。

概述

  • 1卡塔 尔(阿拉伯语:قطر‎登入的必要和意义
    顾客端应当首要推荐推断服务器是不是供给必得登入。即使要求,则应率先调用登陆接口登陆,然后再诉求别的接口。
    是还是不是供给强制登入,跟运维供给有关,网址运维者可以经过管理平台安装这些选项。
    若是未有强制供给,客商端可以登入,也足以不登录。
    客户不利登入后,会获取二个token值,在世襲的接口中,应当将该token值带入。举例:

  • 2卡塔 尔(英语:State of Qatar)登入的流水生产线
    服务器和客户端通过“挑衅->应答”情势(challenge-response卡塔 尔(阿拉伯语:قطر‎进行居民身份注脚人机联作,在此个进度中,客商端要求调用三回接口向服务器注明身份。认证进度中无需传递密码,密码用于签字验证。
    地点注明的过如下:
    1)顾客端应用“顾客名”作为参数调用“login1”接口,向服务器发出身份认证诉求
    1.1)服务器确认客商是不是是有效的顾客:
    1.2)若不是,则不做进一步管理,重返错误新闻
    1.3)假使,服务器爆发一个“随机数(挑衅字符串卡塔尔国”发送给顾客端
    2)顾客端应用“顾客密码”和“随机数(挑战字符串卡塔尔国”作为输入,按预定的算法生成三个hash值,用该hash值作为 调用“login2”接口的参数,乞求login2接口。
    2.1)服务器用收到的hash值与协和的臆想结果相比较,若双方相同,则通过认证;不然,认证战败
    2.2)若注解通过,服务器重回“token”给客商端,否者重临错误信息。

2、输入顾客名密码后:

5.1.肯定是或不是必得登陆

  • 用途
    看清是不是需要必得登入。
    只要供给必得登陆,则必要首先登场入,否者查询数据的接口会回来没有权限的大谬否则。

请求

  • 响应
{
    "code": 0,
    "err_desc": "no"
}

err_desc 属性描述了对登陆的渴求。no 代表不强制要求, yes 表示必需要求登入。

图片 6

5.2.login1

  • 用途
    交付认证申请,接口再次来到挑战字符串。
    请求

    username 登入顾客名。

  • 响应

{
    "code": 0,
    "data": {
        "count": 1,
        "items": [
            {
                "id": 37,
                "chcode": "9luqgrnj5vvszmjw"
            }
        ]
    }
}

id session识别号,用于login2接口,原样传递给login2就可以。
chcode 挑衅字符串,顾客端按预约准绳使用该字符串生成四个hash值,然后调用login2接口。

image

5.3.login2

  • 用途
    采取login1重回的chcode总计出贰个hash值,提交给本接口申请到三个token。该token值用于其余接口的证实。
    请求

    id login1接口回到的id值,原样带入。
    hash 依据约定总计出的hash值。算法:
    hash=md5(md5(password)+chcode)
    陈述:首先总计出密码的hash值,然后在扭转的密码hash值尾部拼接上挑战字符串产生新的字符串,最后计算那些新字符串的hash值。
    hash算法采纳md5算法,生成的摘要采取16进制编码,编码生成的字符选拔小写字母。
    例如,字符串111111的hash值是 96e79218965eb72c92a549dd5a330112

  • 响应

{
    "code": 0,
    "data": {
        "count": 6,
        "items": [{
            "id": 2,
            "name": "王工",
            "sex": 1,
            "logo": null,
            "token": "c9xpghlmgxn58kdq",
            "group_id": 1
        }]
    }
}

name 用户名
sex 性别,1男 0女
logo 客户头像,null可能头像url
token 认证令牌,在无法维持session的情事下,在倡议别的接口中应当将token参数带入
group_id 客商所属的顾客组

图片 7

5.4.logout

  • 用途
    脱离登入,退出应用前请尽量调用该接口。
    请求
    =abcdefg
    token 登陆接口中收获的token

  • 响应

{
    "code": 0,
}

image

图片 8

image

图片 9

image

3、路由器重返数据

图片 10

image

密码的改变方法

从地点抓包的结果来看,Password字段是通过加密的,所以假设大家要Python暴力破解,必要把那些password的成形算法寻找来。

开发web登入页面,查看源代码,找找算法

图片 11

image

图片 12

image

图片 13

image

图片 14

image

图片 15

image

在linux上退换ip地址,超级粗略一条命令就足以杀绝:

图片 16

image

[password:bbbbbbbb];{"errorCategory":"user_pass_err","csrf_param":"FcnG919l8J7XhQsOYQEMS3WhsC2liSX","count":2,"csrf_token":"IQ/LfSZSx7gTp6VflYnZelobNSpoMy2"}