LFI2RCE via phpinfo()
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
从黑客的角度看待您的网络应用、网络和云
查找并报告具有实际商业影响的关键可利用漏洞。 使用我们 20 多个自定义工具来映射攻击面,查找让您提升权限的安全问题,并使用自动化利用收集重要证据,将您的辛勤工作转化为有说服力的报告。
要利用此漏洞,您需要:一个 LFI 漏洞,一个显示 phpinfo() 的页面,“file_uploads = on”,并且服务器必须能够在“/tmp”目录中写入。
https://www.insomniasec.com/downloads/publications/phpinfolfi.py
教程 HTB: https://www.youtube.com/watch?v=rs4zEwONzzk&t=600s
您需要修复利用(将 => 改为 =>)。为此,您可以执行:
您还需要更改漏洞开始时的payload(例如,使用php-rev-shell),REQ1(这应该指向phpinfo页面,并且应该包含填充,即:REQ1="""POST /install.php?mode=phpinfo&a="""+padding+""" HTTP/1.1),以及LFIREQ(这应该指向LFI漏洞,即:LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r -- 在利用空字符时检查双“%”)
如果在PHP中允许上传文件,并且您尝试上传文件,则该文件会存储在临时目录中,直到服务器处理完请求,然后该临时文件会被删除。
然后,如果您在Web服务器中发现了LFI漏洞,您可以尝试猜测创建的临时文件的名称,并在文件被删除之前通过访问临时文件来利用RCE。
在Windows中,文件通常存储在C:\Windows\temp\php
在linux中,文件的名称通常是随机的,并位于**/tmp**。由于名称是随机的,因此需要从某处提取临时文件的名称,并在文件被删除之前访问它。这可以通过读取函数“phpconfig()”内容中的变量$_FILES的值来完成。
phpinfo()
PHP使用4096B的缓冲区,当它满时,会发送给客户端。然后客户端可以发送****大量大请求(使用大头部)上传php反向shell,等待phpinfo()的第一部分返回(其中包含临时文件的名称),并尝试在php服务器删除文件之前通过利用LFI漏洞访问临时文件。
Python脚本尝试暴力破解名称(如果长度=6)
从黑客的角度看待您的网络应用、网络和云
发现并报告具有实际商业影响的关键可利用漏洞。 使用我们20多个自定义工具来映射攻击面,找到让您提升权限的安全问题,并使用自动化利用收集重要证据,将您的辛勤工作转化为有说服力的报告。
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)