众所周知,Flask 的debug=True选项可以通过 werkzeug 调试器功能导致远程代码执行,甚至一些资源被黑客入侵。我决定对其进行研究,结果发现如果应用程序由 uwsgi 或 gunicorn 等分叉应用程序服务器运行,则该技术不起作用。所以问题是:
- 是否有机会利用已
debug=True启用的 Flask 应用程序,即使它由分叉应用程序服务器(gunicorn,uwsgi)运行?我不敢相信所有这些被黑资源在生产中都使用了内置的 Flask 网络服务器。 - 所有被黑网站是否直接运行 Flask 应用程序而不使用像 nginx + gunicorn/uwsgi + Flask 这样的“标准”方法?