## 如何使用PhpEXE来利用任意文件上传漏洞
任意文件上传在Web应用程序中是非常常见的,可能会被滥用来上传恶意文件,然后危害服务器。通常,攻击者将根据支持的任何服务器端编程语言来选择一个有效载荷。因此,如果易受攻击的应用程序在PHP中,那么显然PHP是支持的,因此一个简单的选择就是使用诸如Metasploit的PHP meterpreter之类的PHP有效载荷。然而,PHP meterpreter并不像Windows meterpreter那样共享相同的性能。所以在现实中,会发生什么呢?你可能会想升级到一个更好的shell,在这个过程中需要额外的手动工作。
那么对于这种类型的场景为什么限制你的有效载荷选项 ,你应该使用PhpEXE mixin。它用作PHP中的有效负载,将最终的恶意可执行文件写入远程文件系统,然后在使用后自行清除,因此不会留下任何痕迹。
### 要求
要使用PhpEXEmixin,应该满足一些典型的可利用的要求:
* 您必须在Web服务器上找到可写的位置。
* 同一个可写位置也应该可以通过HTTP请求读取。
注意:对于任意文件上传漏洞,通常有一个目录包含上传的文件,并且是可读的。如果这个bug是由于目录遍历造成的,那么临时文件夹(来自操作系统或者web应用程序)就是你的选择。
### 用法
* 首先在您的Metasploit3类范围内包含mixin ,如下所示
~~~
include Msf::Exploit::PhpEXE
~~~
* 使用php生成载荷(php stager) `get_write_exec_payload`
~~~
p = get_write_exec_payload
~~~
* 如果您正在使用Linux目标,则可以将其设置unlink_self为true,这将自动清除可执行文件:
~~~
p = get_write_exec_payload(:unlink_self=>true)
~~~
在Windows上,您可能无法清除可执行文件,因为它可能仍在使用中。如果无法自动清除恶意文件,则应始终警告用户,以便在渗透测试期间手动完成。
* 上传有效载荷
这个时候你可以上传 `get_write_exec_payload`生成的有效载荷然后使用GET请求来调用它。如果您不知道如何发送GET请求,请参考以下文章
https://github.com/rapid7/metasploit-framework/wiki/How-to-Send-an-HTTP-Request-Using-HTTPClient
- Home
- 开始使用
- 安装metasploit开发环境
- 使用metasploit
- 使用git
- 报告一个bug
- 贡献代码
- 贡献给metasploit
- 创建一个loginscans Metasploit模块
- 接受模块和增强功能的指导
- 常见的Metasploit模块代码错误
- 样式提示
- metasploit提交者
- metasploit开发
- 为什么是ruby
- 样式提示
- 如何开始写一个exploit
- 如何开始写一个辅助模块
- 如何开始写一个post模块
- 如何开始写一个Meterpreter脚本
- 载入外部模块
- exploit rank
- Metasploit模块引用标识符
- 怎么在你的exploit中确认window补丁程序级别
- 如何使用filedropper清理文件
- 如何弃用metasploit模块
- 如何在模块开发中报告或储存数据
- 在metasploit如何使用日志
- 如何在metasploit对JavaScript进行混淆
- 如何解析一个http响应
- 如何使用HTTPClient发送HTTP请求
- 如何使用命令阶段
- 如何使用数据储存选项
- 如何在window后期开发中使用railgun
- 如何在exploit中使用powershell
- 如何使用PhpEXE来利用任意文件上传漏洞
- 如何使用FILEFORMAT mixin创建一个文件格式exploit
- 如何使用BrowserExploitServer编写一个浏览器exploit
- 如何使用HttpServer编写浏览器exploit
- 如何编写一个check()方法
- 如何使用Seh mixin来利用异常处理程序
- 如何在Windows上使用WbemExec进行写入权限攻击
- 如何使用httpserver和httpclient编写一个模块
- payloads如何工作
- 如何免杀
- 如何正确使用metasploit模块