FastCGI漏洞复现

  • A+
所属分类:安全文章

文章源自【字节脉搏社区】-字节脉搏实验室

作者-Jadore

扫描下方二维码进入社区

FastCGI漏洞复现

FastCGI之未授权访问

FastCGI是一个通信协议,可以用来进行数据交换,也即中间件和某个后端语言进行数据交换的协议。

PHP-FPM(FastCGI进程管理器):解析FastCGI协议,即当中间件将用户的请求按照FastCGI的规则打包好后传送给FPM进行解析。

Vul:PHP-FPM默认监听9000端口,如果该端口可访问,则攻击者可以构造FastCGI协议和FPM进行通信。

FastCGI漏洞复现

利用条件:

找到一个已存在的PHP文件

此处附上EXP:

FastCGI漏洞复现

FastCGI漏洞复现

FastCGI漏洞复现

FastCGI漏洞复现

FastCGI漏洞复现

FastCGI漏洞复现

FastCGI漏洞复现

FastCGI漏洞复现

FastCGI漏洞复现

auto_prepend_file = php://input,等于在执行任何php文件前都要包含一遍content的内容。所以,把待执行的代码放在content中,并且开启allow_url_include = On就能达到执行任意PHP代码。

使用exp去访问一个非php的文件会被拒绝

FastCGI漏洞复现

FastCGI漏洞复现

如果申请访问一个存在的php文件则

FastCGI漏洞复现

FastCGI漏洞复现

让其在执行PEAR.php文件之前包含某个文件达到命令执行的命令

FastCGI漏洞复现

FastCGI漏洞复现

FastCGI之任意命令执行

Vul:Nginx 上 fastcgi_split_path_info 在处理带有 %0a 的请求时,会因为遇到换行符 n 导致 PATH_INFO 为空。而 php-fpm 在处理 PATH_INFO 为空的情况下,存在逻辑缺陷。攻击者通过精心的构造和利用,可以导致远程代码执行。

Nginx + php-fpm 的服务器,在使用如下配置的情况下,都可能存在远程代码执行漏洞:

FastCGI漏洞复现

FastCGI漏洞复现

Tsudo apt install golang-go

FastCGI漏洞复现

FastCGI漏洞复现

将export PATH=$PATH:/usr/local/go/bin添加至/etc/profile再执行source /etc/profile

FastCGI漏洞复现

FastCGI漏洞复现

EXP

go:git clone https://github.com/neex/phuip-fpizdam

命令:

go build

./phuip-fpizdam

go run . http://ip:8080/index.php

由于只有一部分进程能被污染因此需要多试几次

最后访问:

http://ip:8080/index.php?a=命令即可

FastCGI漏洞复现

通知!

公众号招募文章投稿小伙伴啦!只要你有技术有想法要分享给更多的朋友,就可以参与到我们的投稿计划当中哦~感兴趣的朋友公众号首页菜单栏点击【商务合作-我要投稿】即可。期待大家的参与~

FastCGI漏洞复现

记得扫码

关注我们

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: