欢迎来到【血梦博客】 今天是:2020年07月12日 星期日
站长联系QQ:635948183
当前位置: 网站首页> 渗透测试> 包含文件结合phpinfo反弹交互shell

包含文件结合phpinfo反弹交互shell

作者:血梦 日期:2020-05-18 浏览:79分类: 渗透测试 已提交百度收录

1.简介

在PHP文件包含漏洞中,当我们找不到用于触发RCE的有效文件时,如果存在PHPINFO(它可以告诉我们临时文件的随机生成的文件名及其位置),我们可能可以包含一个临时文件来利用它。

当向PHP发送POST请求并且请求包含一个文件块时,PHP会将所发送的文件保存到一个临时文件中(通常是/tmp/PHP[6个随机数字]),文件名可以在$u FILES变量中找到。请求结束后将删除此临时文件。

同时,PHPINFO页面打印上下文中的所有变量,包括$u文件。因此,如果我们将POST请求发送到PHPINFO页面,则可以在响应中找到临时文件的名称。

这样,LFI漏洞就可以升级为RCE,而不需要存在可用的本地文件。

文件包含和PHPINFO通常位于不同的网页中。理论上,我们需要在PHPINFO页面的文件上传请求的响应中检索文件名后,将文件名发送到文件包含页面。但是,在第一个请求完成后,文件将从磁盘中删除,因此我们需要赢得比赛。


2.步骤:

1.将文件上载请求发送到带有页眉的PHPINFO页,并获取包含大量垃圾数据的字段。

2.响应内容将是巨大的,因为PHPINFO将打印出所有数据。

3.PHP的默认输出缓冲区大小为4096字节。可以理解为PHP在套接字连接期间每次返回4096字节。

4.所以我们使用原始套接字来实现我们的目标。每次我们读取4096字节并在得到文件名后将其发送到LFI页面。

5.当我们得到文件名时,第一个套接字连接还没有结束,这意味着临时文件仍然存在。

6通过利用时间间隔,可以包含并执行临时文件。


详细参考这个文档 https://dl.packetstormsecurity.net/papers/general/LFI_With_PHPInfo_Assitance.pdf

前几天有个同学 写了篇文章 可以去看下 https://www.moonsec.com/archives/1248


3.测试反弹交互shell

按照上面的方法可以写入一个php 但是感觉有些不方面 最好是直接弹一个交互shell

准备一个文件包含漏洞的环境。

1588665135739954.png

网站存在phpinfo.php

2.png

修改脚本

3.png

修改包含文件页面和ip地址

kali 上监听 nc -lvnp 8080

执行exp

4.png

得到交互shell

5.png

关灯