Nginx解析漏洞和目录遍历漏洞

解析漏洞格式:/test.jpg/test.php服务器接收到此参数时,由于php.ini文件设置问题和nginx特性会按照php文件进行且不检查文件是否存在就进行解析。
复现环境

Nginx1.11.5+php25.2.17
Nginx解析漏洞和目录遍历漏洞_第1张图片

Nginx解析漏洞和目录遍历漏洞_第2张图片

解析漏洞复现

在网站根目录创建一个test.jpg的文件
Nginx解析漏洞和目录遍历漏洞_第3张图片

漏洞利用:
可以上传图片马,菜刀连接。

copy test.jpg /b + shell.php shell.jpg

Nginx解析漏洞和目录遍历漏洞_第4张图片

用浏览器进行访问
Nginx解析漏洞和目录遍历漏洞_第5张图片

菜刀连接
Nginx解析漏洞和目录遍历漏洞_第6张图片Nginx解析漏洞和目录遍历漏洞_第7张图片


漏洞修复

Nginx解析漏洞和目录遍历漏洞_第8张图片Nginx解析漏洞和目录遍历漏洞_第9张图片
总结:
当Nginx接受到url的后缀为.php文件时,会按照php脚本进行处理,而不会检测此文件是否存在。
php.ini中的配置参数cgi.fix_pathinfo,它是用来对设置cgi模式下为php是否提供绝对路径信息或PATH_INFO信息。将此选项修改为0后,会拒绝提供绝对路径,从而使漏洞利用失败。



目录遍历漏洞复现

Nginx解析漏洞和目录遍历漏洞_第10张图片

  • 在网站根目录创建/123/456/a.txt


    Nginx解析漏洞和目录遍历漏洞_第11张图片

漏洞修复

Nginx解析漏洞和目录遍历漏洞_第12张图片Nginx解析漏洞和目录遍历漏洞_第13张图片

总结:
nginx目录遍历漏洞和appache目录遍历漏洞相似,都是服务器配置不严格导致的问题。

你可能感兴趣的:(web安全学习)