CVE-2013-4547(文件名邏輯漏洞)
影響版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7
影響說明:繞過服務(wù)器策略枪狂,上傳webshell
環(huán)境說明:Nginx 1.4.2
環(huán)境搭建:
此次環(huán)境使用docker環(huán)境搭建碳想,環(huán)境采用地址Vulhub
該漏洞利用了Nginx錯誤的解析了URL地址,導(dǎo)致可以繞過服務(wù)端限制川陆,從而解析PHP文件沼头,造成命令執(zhí)行的危害。根據(jù)nginx.conf文件中l(wèi)ocation中的定義书劝,以.php結(jié)尾的文件都解析為php。若我們訪問的文件名為shell.gif[0x20][0x00].php土至,該文件名以.php結(jié)尾可以被FastCGI接收购对,F(xiàn)astCGI在讀取文件名時被00截斷,導(dǎo)致讀取的文件名為1.gif[0x20]陶因,配合limit_extensions為空即可利用成功骡苞。該漏洞利用條件有兩個:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7php-fpm.conf中的security.limit_extensions為空,也就是說任意后綴名都可以解析為PHPNginx版本范圍較大楷扬,比較好匹配解幽,但php-fpm.conf的security.limit_extensions配置默認為php,一般鮮有管理員允許所有類型都可以解析為PHP烘苹,所以該漏洞比較雞肋躲株,但這是在Linux的服務(wù)器中,而在Windows中便影響極大镣衡,這點我們后面再講霜定,先說下在Linux下的復(fù)現(xiàn)步驟档悠。0x01 查看phpinfo上傳一個shell.gif11,抓包后將gif后的11改為20與00望浩,然后上傳辖所。
注意: 需要注意的是0x20,0x00是16進制,在burpsuite測試過程中需要弄成真把這兩個占位的在raw中改成真的20 00