因此,由于我的一位前同事的不良编程,我们的一个内部网络应用程序允许用户上传和运行任意 Python 文件。这最近通过匿名提示曝光。到目前为止,我还没有做任何太疯狂的事情,只是使用 os 库浏览目录结构一点。不过,我不确定我能造成多大的伤害。服务器上运行着一个 Python Web 应用程序和一个 MySQL 数据库。
我能以某种方式给自己 SSH 访问权限吗?我无法完全弄清楚我将如何去做。我也不认为我可以访问数据库,因为我没有任何用户信息。
那么,我可以在这里造成的最严重损害的实际限制是多少?
因此,由于我的一位前同事的不良编程,我们的一个内部网络应用程序允许用户上传和运行任意 Python 文件。这最近通过匿名提示曝光。到目前为止,我还没有做任何太疯狂的事情,只是使用 os 库浏览目录结构一点。不过,我不确定我能造成多大的伤害。服务器上运行着一个 Python Web 应用程序和一个 MySQL 数据库。
我能以某种方式给自己 SSH 访问权限吗?我无法完全弄清楚我将如何去做。我也不认为我可以访问数据库,因为我没有任何用户信息。
那么,我可以在这里造成的最严重损害的实际限制是多少?
您可以编写一些 Python 代码来上传 SSH 服务器二进制文件,然后运行它,这将为您提供 Apache 用户权限下的完整 SSH 访问权限。
从那里您可以轻松地读取 Python 应用程序的配置文件并使用那里的凭据连接到数据库,这将允许您获取机密数据(此处无需利用,因为应用程序已经可以访问数据库)。
此外,正如@Aroth在评论中指出的那样,您还可以破坏在同一用户帐户下运行的其他应用程序。
最后,您可以查看正在运行的内核/库是什么版本,并最终使用漏洞利用来获得 root 权限。