为降低密钥泄漏的风险,自2023年11月30日起,对所有主账号、子账号的密钥,关闭查询SecretKey的功能,仅支持在创建时查看,请及时保存SecretKey。
老服务器要到期了,更换新服务器,新服务器需要重新配置腾讯云COS,但是 SecretKey 忘了。老服务器的腾讯云COS有存储的 SecretKey。
解决
浏览器调试发现调用的接口 /plugin?action=a&name=txcos&s=get_config
分析可知使用的配置文件是 /www/server/panel/plugin/txcos/config.json,文件内是密文存储。
要获取配置信息,一般为 get_config,在 txcos_main.py 中查找一下
def get_config(self): default_config = { "secret_id": '', "secret_key": '', "region": '', "bucket_name": '', "backup_path": self.default_backup_path, 'pattern': '' } …… if isinstance(conf, str): try: conf = public.aes_decrypt(conf, decrypt_key) public.print_log(conf) ……
分析可知配置是 public.aes_decrypt(conf, decrypt_key) 解密得到,public 是文件引用,conf 是密文,decrypt_key 是读取 /www/server/panel/data/a_pass.pl 文件内容。
/www/server/panel/class/public.py
def aes_decrypt(data, key): import panelAes if sys.version_info[0] == 2: aes_obj = panelAes.aescrypt_py2(key) return aes_obj.aesdecrypt(data) else: aes_obj = panelAes.aescrypt_py3(key) return aes_obj.aesdecrypt(data)
/www/server/panel/class/panelAes.py,分析 aescrypt_py2 和 aescrypt_py3,使用 aesdecrypt,默认 ECB 加解密、base64 编解码、utf-8。解密可得到 SecretKey。
测试截图
有好的文章希望我们帮助分享和推广,猛戳这里我要投稿
还没有评论,来说两句吧...