某网站密码逆向(一)
- aHR0cHM6Ly93d3cuaGZheC5jb20vbG9naW4uaHRtbA==
- username: admin
- password: 123456
- 调试查看信息如下,显然密码是经过加密的,找出代码的加密逻辑,模拟即可
password: "2bc3d344845b58a87cd0b0f34f84ff79"
username: "admin"
- 点击请求的
启动器,直接定位到toLogin代码块,分析如下
password的值为a,而a = encryptByDES(this.password);
发请求的地方打上断点,然后进入encryptByDES的逻辑
encryptByDES: function(t) {
return CryptoJS.MD5(t + "TuD00Iqz4ge7gzIe2rmjSAFFKtaIBmnr8S").toString()
},
- 参数t就是password,后面一堆字符串就是'盐'
- 注意事项: 这个'盐'有可能是固定值(很幸运就是),也有可能是随机算法生成的(比较绕了)
import hashlib
def encrypt_by_des(t: str) -> str:
# 固定盐值(与 JavaScript 代码一致)
salt = "TuD00Iqz4ge7gzIe2rmjSAFFKtaIBmnr8S"
# 拼接原始字符串和盐值
salted_data = t + salt
# 计算 MD5 哈希值
md5_hash = hashlib.md5(salted_data.encode("utf-8")).hexdigest()
return md5_hash
# ---------------
# 使用示例
# ---------------
if __name__ == "__main__":
plaintext = "123456"
hashed_result = encrypt_by_des(plaintext)
print(f"输入: {plaintext}") # 输入: 123456
print(f"输出: {hashed_result}") # 输出: 2bc3d344845b58a87cd0b0f34f84ff79





