mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 07:01:09 +00:00
5.3 KiB
5.3 KiB
Python内部读取工具
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 你在一个网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
- 发现我们的独家NFTs收藏品The PEASS Family
- 获得官方PEASS和HackTricks周边产品
- 加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
- 通过向hacktricks repo 和hacktricks-cloud repo 提交PR来分享你的黑客技巧。
基本信息
不同的漏洞,如Python格式字符串或类污染,可能允许您读取Python内部数据,但不允许您执行代码。因此,渗透测试人员需要充分利用这些读取权限来获取敏感权限并升级漏洞。
Flask - 读取密钥
Flask应用程序的主页可能会有一个名为**app
的全局对象,其中配置了这个密钥**。
app = Flask(__name__, template_folder='templates')
app.secret_key = '(:secret:)'
在这种情况下,可以使用来自绕过Python沙盒页面的任何工具来访问此对象。
在漏洞存在于不同的Python文件中的情况下,您需要一个工具来遍历文件以找到主文件,以便访问全局对象app.secret_key
,从而更改Flask密钥并能够通过了解此密钥来提升权限。
像这篇文章中的这个有效载荷一样:
{% code overflow="wrap" %}
__init__.__globals__.__loader__.__init__.__globals__.sys.modules.__main__.app.secret_key
{% endcode %}
使用此负载来更改app.secret_key
(您的应用程序中的名称可能不同),以便能够签署新的和更高权限的flask cookies。
Werkzeug - machine_id和node uuid
使用此文档中的负载,您将能够访问machine_id和uuid节点,这些是您需要生成Werkzeug pin的主要秘密,您可以使用该pin在启用调试模式的情况下访问/console
中的python控制台:
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug]._machine_id}
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug].uuid._node}
{% hint style="warning" %}
请注意,您可以通过在网页中生成一些错误来获取**app.py
的服务器本地路径**,这将提供给您路径。
{% endhint %}
如果漏洞存在于不同的Python文件中,请查看前面的Flask技巧以访问主Python文件中的对象。
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥
- 您在网络安全公司工作吗?您想在HackTricks中看到您的公司广告吗?或者您想要访问PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
- 发现我们的独家NFT收藏品——The PEASS Family
- 获取官方PEASS和HackTricks周边产品
- 加入💬 Discord群组 或 Telegram群组,或在Twitter上关注我🐦@carlospolopm。
- 通过向hacktricks repo 和 hacktricks-cloud repo 提交PR来分享您的黑客技巧。