解决服务器取证过程中宝塔强制绑定手机号的问题

随笔2个月前发布 曙光
33 0 0

声明

本文中提及的方式仅是为了便于服务器取证的研究,仅适用于无法出网的真实取证鉴定情况。

请不要在生产环境随意修改宝塔服务的任何文件!

分析

目前,宝塔面板已经强制要求绑定手机号。这给取证工作带来很大的不便,尤其是在实际工作中,服务器是不可以连接互联网的,因此必须解决掉这个问题。好在我们知道,宝塔面板是使用python开发的,我们可以轻松地修改代码。

解决服务器取证过程中宝塔强制绑定手机号的问题

先从路由入手,路由是bind

解决服务器取证过程中宝塔强制绑定手机号的问题

vscode连上服务器,选/www/server/panel作为工作目录,搜索/bind

/BTPanel/__init__.py中找到路由定义,从这个写法能看出宝塔面板的服务端用的的Django框架

解决服务器取证过程中宝塔强制绑定手机号的问题

直接看一眼顶针的is_bind函数,位于public下,这是自己写的包,也就是/class/public.py

解决服务器取证过程中宝塔强制绑定手机号的问题

找一下函数,明显发现是获取了get_user_info的返回值

解决服务器取证过程中宝塔强制绑定手机号的问题

看一眼get_user_info,具体逻辑就是从宝塔面板服务端的目录下的/data/userInfo.json读取数据,如果文件不存在就返回一个空字典,存在就拿值。所以我们只需要给值就可以了

解决服务器取证过程中宝塔强制绑定手机号的问题

先随意给值,添加到文件/www/server/panel/data/userInfo.json,重启宝塔

{
  "uid":1,
  "address":"",
  "access_key":"",
  "username":"WXjzc",
  "serverid":""
}

现在就不会强制要求绑定手机号了,但是获取软件列表会失败,问题出在get_cloud_list这个函数

解决服务器取证过程中宝塔强制绑定手机号的问题

定位代码,尝试直接注掉看看

解决服务器取证过程中宝塔强制绑定手机号的问题

抛了个KeyError,看了一下是后面字典里给list赋值了

解决服务器取证过程中宝塔强制绑定手机号的问题

解决服务器取证过程中宝塔强制绑定手机号的问题

加一句softList.update({'list':[]})

解决服务器取证过程中宝塔强制绑定手机号的问题

重启后报下一个错,这是专业版判断的字段,为0时是永久专业版,这个值同样是在get_cloud_list里给的,应该是请求网络时拿到的,不过我们没有登录,直接赋一个上去

解决服务器取证过程中宝塔强制绑定手机号的问题

解决服务器取证过程中宝塔强制绑定手机号的问题

解决服务器取证过程中宝塔强制绑定手机号的问题

重启之后就再也没有弹窗了,缺点是没法拿到软件列表

解决服务器取证过程中宝塔强制绑定手机号的问题

总结

总结一下修改的点

添加文件/www/server/panel/data/userInfo.json,并写入以下内容

{
  "uid":1,
  "address":"",
  "access_key":"",
  "username":"",
  "serverid":""
}

修改文件/www/server/panel/class/panelPlugin.py,将如下代码注释或删除

if not 'list' in softList:
    if 'msg' in softList:
        raise public.PanelError(softList['msg'])
    else:
        raise public.PanelError('获取插件列表失败!')

在上述代码的下方添加如下代码

softList.update({'list':[]})
softList.update({'pro':0})

随后重启宝塔面板服务

__EOF__

解决服务器取证过程中宝塔强制绑定手机号的问题
本文作者: WXjzc 本文链接: https://www.cnblogs.com/WXjzc/p/17738053.html 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...