一、uWSGI简介
uWSGI
:是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。
uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。
WSGI / uwsgi / uWSGI 三个概念的区别:
1、WSGI是一种通信协议。
2、uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
3、而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
二、漏洞成因、复现
uWSGI<2.0.17
时的PHP插件DOCUMENT_ROOT
没有正确处理检测,导致DOCUMENT_ROOT通过使用..%2f代替../
可绕过防御策略。