文章目录0x01漏洞介绍0x02影响版本0x03漏洞编号0x04漏洞查询0x05漏洞环境0x06漏洞复现0x07修复建议免责声明摘抄0x01漏洞介绍这个漏洞简单来说,就是用户请求的querystring(querystring字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析,这里也是指http请求中所带的数据)被作为了php-cgi的参数,最终导致了一系列结果。CGI即通用网关接口(CommonGatewayInterface),它是一段程序,通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序
我正在尝试通过apache运行Golangcgi脚本。我可以编译文件并使用我找到的如何制作它的示例,但我不知道要将什么文件扩展名添加到apache的“添加处理程序”,或者如果那是我应该告诉apache处理Go编译的地方资源。当前,当您在Web浏览器中转到cgi-bin文件时,您只需下载Unix可执行文件。如您所见,我已经尝试了.exe和.go,这两个我都没有预料到过,但都没有。AddHandlercgi-script.cgi.py.exe.goAllowOverrideAllOptions+Indexes+FollowSymLinks+ExecCGIOrderallow,denyAll
我正在尝试通过apache运行Golangcgi脚本。我可以编译文件并使用我找到的如何制作它的示例,但我不知道要将什么文件扩展名添加到apache的“添加处理程序”,或者如果那是我应该告诉apache处理Go编译的地方资源。当前,当您在Web浏览器中转到cgi-bin文件时,您只需下载Unix可执行文件。如您所见,我已经尝试了.exe和.go,这两个我都没有预料到过,但都没有。AddHandlercgi-script.cgi.py.exe.goAllowOverrideAllOptions+Indexes+FollowSymLinks+ExecCGIOrderallow,denyAll
我正在尝试通过CGI脚本设置HTTPheader,例如Content-Type。在PHP中:header('Content-Type:text/plain');//orecho'Content-Type:text/plain',"\r\n\r\n";//asfirstline或在Go中:fmt.Print("Content-Type:text/plain\r\n\r\n")//asfirstline两者都对输出没有影响。如何做到这一点?编辑我还在Go中使用CGI包尝试了以下操作:packagemainimport"fmt"import"os"import"net/http/cgi"fu
我正在尝试通过CGI脚本设置HTTPheader,例如Content-Type。在PHP中:header('Content-Type:text/plain');//orecho'Content-Type:text/plain',"\r\n\r\n";//asfirstline或在Go中:fmt.Print("Content-Type:text/plain\r\n\r\n")//asfirstline两者都对输出没有影响。如何做到这一点?编辑我还在Go中使用CGI包尝试了以下操作:packagemainimport"fmt"import"os"import"net/http/cgi"fu
我正在用Go编写网络服务器,它将取代现有网站。我仍然需要一些旧的PHP脚本。现在我有lighttpd+fastcgi。所以我希望我的网络服务器将PHP调用为FastCGI。最好的处理方法是什么?我想我需要一些GoFastCGIAPIhttp://golang.org/pkg/net/http/fcgi/-似乎只支持服务器端,不支持客户端。 最佳答案 如果您想直接连接到fastcgi进程,我认为您必须自己制作。请记住,无论如何您仍然必须运行进程管理器/spawner,因此仅运行nginx并让您的Go进程代理PHP脚本也不是一个巨大的飞
我正在用Go编写网络服务器,它将取代现有网站。我仍然需要一些旧的PHP脚本。现在我有lighttpd+fastcgi。所以我希望我的网络服务器将PHP调用为FastCGI。最好的处理方法是什么?我想我需要一些GoFastCGIAPIhttp://golang.org/pkg/net/http/fcgi/-似乎只支持服务器端,不支持客户端。 最佳答案 如果您想直接连接到fastcgi进程,我认为您必须自己制作。请记住,无论如何您仍然必须运行进程管理器/spawner,因此仅运行nginx并让您的Go进程代理PHP脚本也不是一个巨大的飞
我在linux上有一个非常简单的CGIpython服务器,代码如下:#!/usr/bin/envpythonimportBaseHTTPServerimportCGIHTTPServerimportcgitb;cgitb.enable()##ThislineenablesCGIerrorreportingserver=BaseHTTPServer.HTTPServerhandler=CGIHTTPServer.CGIHTTPRequestHandlerserver_address=("",8000)handler.cgi_directories=["/"]httpd=server(se
我在linux上有一个非常简单的CGIpython服务器,代码如下:#!/usr/bin/envpythonimportBaseHTTPServerimportCGIHTTPServerimportcgitb;cgitb.enable()##ThislineenablesCGIerrorreportingserver=BaseHTTPServer.HTTPServerhandler=CGIHTTPServer.CGIHTTPRequestHandlerserver_address=("",8000)handler.cgi_directories=["/"]httpd=server(se
shell命令是否被认为是合法的编程接口(interface)?具体来说,从PHP页面或CGI文件在linux应用程序服务器上执行bashshell命令有什么问题吗?这会带来效率或安全问题吗?谢谢 最佳答案 有时还可以,但是...有时这是解决问题的最佳方法。但可能的问题是:安全注意codeinjection如果你不做taintchecking.性能运行shell命令将涉及forkingPHP解释器和执行复杂且相对较慢systemcalls.这对于负载较轻的服务器来说是可以的,但对于繁忙的站点则行不通。同步确保事情以正确的顺序发生可以