今天发现了一个网站的一处文件上传漏洞,因为网站是xxx.html,发现使用了伪静态,根据错误显示使用了nginx。
一般情况下,nginx和apache使用php,IIS使用asp或aspx,tomcat使用jsp。
于是上传了一个php文件,发现无法执行,访问上传的地址只会显示php的源代码。这里有两种可能性,网页使用的并不是php语言或者因为某种原因,php文件没有经过php的解器,它没有被当作php文件去执行。
查了一些资料发现是http.conf或.htaccess文件在作怪,通过配置这两个文件,可以使一个目录没有执行文件的权限,也可以让网站禁止执行php文件。
因为.htaccess文件在网站的根目录下,有些时候可以使用.htaccess文件上传攻击,将自己配置的适合自己需要的.htaccess文件通过文件上传漏洞上传至网站的根目录来达成一些目的。
不执行上传的php文件还有其他的可能,比如网站使用node.js,便无法解析php文件