0


PHP文件包含漏洞(利用phpinfo)复现

漏洞简介:

PHP文件包含漏洞中,如果找不到可以包含的文件,我们可以通过包含临时文件的方法来拿到权限。因为临时文件名是随机的,如果目标网站上存在phpinfo,则可以通过phpinfo来获取临时文件名,进而进行包含。

漏洞利用原理:

在给PHP发送POST数据包时,如果数据包里包含文件区块,无论你访问的代码中有没有处理文件上传的逻辑,PHP都会将这个文件保存成一个临时文件(通常是/tmp/php[6个随机字符]),文件名可以在$_FILES变量中找到。这个临时文件,在请求结束后就会被删除。同时,因为phpinfo页面会将当前请求上下文中所有变量都打印出来,所以我们如果向phpinfo页面发送包含文件区块的数据包,则即可在返回包里找到$_FILES变量的内容,自然也包含临时文件名。在文件包含漏洞找不到可利用的文件时,即可利用这个方法,找到临时文件名,然后包含之。

漏洞复现:

漏洞环境是用docker搭建的,直接在docker上拉取环境。

进入漏洞所在文件目录,启动环境:Docker-compose up -d

环境启动后,访问http://your-ip:8080/phpinfo.php即可看到一个phpinfo页面

访问http://your-ip:8080/lfi.php?file=/etc/passwd,可见的确存在文件包含漏洞。

用exp.py脚本来不断的上传数据,利用条件竞争来实现包含文件。当成功包含临时文Php file_put_contents('/tmp/g ','<?p/g', '<?=eval($_REQUEST[1])?>')?>,写入一个新的文件/tmp/g目录,这个文件会被保留在目标机器上。

运行python2 exp.py your-ip 8080 100

可以看到用了411个数据包的时候就写入成功了,之后就可以配合lfi.php执行任意命令,然后配合之前存在文件包含漏洞的php文件,就可以任意命令执行。

标签: php 开发语言 安全

本文转载自: https://blog.csdn.net/m0_52701599/article/details/129342586
版权归原作者 六十亿少女的梦 所有, 如有侵权,请联系我们删除。

“PHP文件包含漏洞(利用phpinfo)复现”的评论:

还没有评论