1.先说结论:
1,在密码组合是数字大小写字母的情况下。加密有截断作用,7-13位密码及16位以上没有其它长度的密码,13-15位有少量其它长度的密码。就是随着密码越长,密码组合也越多,但有长度限制。从下表中一定有你的密码
可以百度搜索10秒破某tp路由。你会更好理解。如:
此密码 66ULYn 的密文为: H4H1dqhc9TefbwK 长度为 6 位
此密码长度小于13位,没有比它长的密码。
此密码长度等于 6 位长度的密文的密码有: 240 个,总共有 240 个密码. 集合为:
['6Mw', '6orWz', 'oU', 'Ly', 'uY', 'nz'] 结束!
当您密码为66ULYn,以上集合任意组合密码都能登录您的路由器,很神奇吧。这就是加密算法带来的小漏洞。代码后面给出,会自动生成上面的表格。
本人小白。如有错误,欢迎批判。希望对你的密码爆破有帮助!
2.过程及实现代码:
tp-link 登录提交方式
- POST {"method":"do","login":{"password":"WbZ6onhc9TefbwK"}}
- 路由器加密代码:
-
short = "RDpbLfCPsJZ7fiv" # a Lng = 'yLwVl0zKqws7LgKPRQ84Mdt708T1qQ3Ha7xv3H7NyU84p21BriUWBU43odz3iP4rBL3cD02KZciXTysVXiV8ngg6vL48rPJyAUw0HurW20xqxv9aYb4M9wK1Ae0wlro510qXeU07kV57fQMc8L6aLgMLwygtc0F10a0Dg70TOoouyFhdysuRMO51yY5ZlOZZLEal1h0t9YQW0Ko7oBwmCAHoic4HYbUyVeU3sfQ1xtXcPcf1aT303wAQhv66qzW' # c #PawD = '123456@...' PawD = 'd52533' # b # ord与JS的charCodeAt方法类似,返回指定位置的字符的 Unicode 编码 def encrypt_passwd(a, b, c): e = '' f, g, h, k, l = 187, 187, 187, 187, 187 n = 187 g = len(a) h = len(b) k = len(c) if g > h: f = g else: f = h for p in list(range(0, f)): n = l = 187 if p >= g: n = ord(b[p]) else: if p >= h: l = ord(a[p]) else: l = ord(a[p]) n = ord(b[p]) e += c[(l ^ n) % k] #print (e) return e pw=encrypt_passwd(short, PawD, Lng)
Python代码: