国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

這篇具有很好參考價(jià)值的文章主要介紹了中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1. 了解nginx的工作原理

2. 漏洞原理及舉例分析

3. 前端php源碼分析

4. 注入思路

5. 漏洞復(fù)現(xiàn)

5.1 上傳文件并抓包分析

?5.2 通過(guò)訪問文件執(zhí)行php

?注意一點(diǎn)

6. 漏洞修復(fù)


1. 了解nginx的工作原理

nginx是以PHP語(yǔ)言為主。像Apache一樣,Nginx自身是不支持解析PHP語(yǔ)言的,只能通過(guò)加載PHP模塊來(lái)解析PHP。原理圖可以看下圖:

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

Nginx解析PHP原理圖

nginx接收到數(shù)據(jù)后會(huì)依賴FastCG協(xié)議I將數(shù)據(jù)進(jìn)行一次格式化,然后 PHP-FPM 會(huì)創(chuàng)建許多的PHPCGI進(jìn)程用于處理FastCGI協(xié)議格式化好的數(shù)據(jù),處理完后會(huì)將數(shù)據(jù)交給 php 處理,最后會(huì)將處理好的數(shù)據(jù)返回給瀏覽器。

注意這里FastCGI處理后的數(shù)據(jù)和PHP-FPM處理的數(shù)據(jù)結(jié)構(gòu)相同,所以可以被PHPCGI模塊直接調(diào)用。

通過(guò)原理圖和剛才的定義,我們對(duì)Nginx處理PHP請(qǐng)求有了大致的了解。那么,Nginx是如何知道將什么樣的文件當(dāng)作PHP文件處理?是在nginx.conf配置文件中的

location ~ \.php$ {
 ? ?root ? ? ? ? ? html;
 ? ?include ? ? ? ?fastcgi_params;
?
 ? ?fastcgi_pass ? IP:9000;
 ? ?fastcgi_index ?index.php;
 ? ?fastcgi_param ?SCRIPT_FILENAME ?/var/www/html$fastcgi_script_name;
 ? ?fastcgi_param ?DOCUMENT_ROOT /var/www/html;
}

location后面的.php$代表了以.php結(jié)尾的文件都按照花括號(hào)中的內(nèi)容執(zhí)行,其中fastcgi_pass就是nginx和php-fpm的媒介,Nginx將請(qǐng)求通過(guò)fastcgi_pass轉(zhuǎn)發(fā)給php-fpm。fastcgi_pass可以和Nginx不在同一臺(tái)服務(wù)器上,他們通過(guò)IP+PORT的方式進(jìn)行通信。

2. 漏洞原理及舉例分析

CVE-2013-4547漏洞是由于非法字符空格和截止符導(dǎo)致Nginx在解析URL時(shí)的有限狀態(tài)機(jī)混亂,導(dǎo)致攻擊者可以通過(guò)一個(gè)非編碼空格繞過(guò)后綴名限制。假設(shè)服務(wù)器中存在文件123.?jpg,則可以通過(guò)改包訪問讓服務(wù)器認(rèn)為訪問的為PHP文件。

這個(gè)漏洞其實(shí)和代碼執(zhí)行沒有太大關(guān)系,其主要原因是錯(cuò)誤地解析了請(qǐng)求的URI,錯(cuò)誤地獲取到用戶請(qǐng)求的文件名,導(dǎo)致出現(xiàn)權(quán)限繞過(guò)、代碼執(zhí)行的連帶影響。

舉個(gè)例子,比如,Nginx匹配到.php結(jié)尾的請(qǐng)求,就發(fā)送給fastcgi進(jìn)行解析,常見的寫法如下:

location ~ \.php$ {
    include        fastcgi_params;

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
    fastcgi_param  DOCUMENT_ROOT /var/www/html;
}

正常情況下(關(guān)閉pathinfo的情況下),只有.php后綴的文件才會(huì)被發(fā)送給fastcgi解析。

而存在CVE-2013-4547的情況下,我們請(qǐng)求1.gif[0x20][0x00].php,這個(gè)URI可以匹配上正則\.php$,可以進(jìn)入這個(gè)Location塊;但進(jìn)入后,Nginx卻錯(cuò)誤地認(rèn)為請(qǐng)求的文件是1.gif[0x20],就設(shè)置其為SCRIPT_FILENAME的值發(fā)送給fastcgi。

fastcgi根據(jù)SCRIPT_FILENAME的值進(jìn)行解析,最后造成了解析漏洞。

所以,我們只需要上傳一個(gè)空格結(jié)尾的文件,即可使PHP解析之。

3. 前端php源碼分析

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?框住的內(nèi)容為使用后綴名過(guò)濾上傳的文件,若文件的后綴名為 'php', 'php3', 'php5', 'phtml' 中的一個(gè)則前端會(huì)拒絕上傳此文件。

但在關(guān)閉pathinfo的情況下,只有.php后綴的文件才會(huì)被發(fā)送給fastcgi解析之后進(jìn)行上傳。

4. 注入思路

該漏洞利用了Nginx錯(cuò)誤的解析了URL地址,導(dǎo)致可以繞過(guò)服務(wù)端限制,從而解析PHP文件,造成命令執(zhí)行的危害。 根據(jù)nginx.conf文件中l(wèi)ocation中的定義,以.php結(jié)尾的文件都解析為php。若我們?cè)L問的文件名為shell.gif0x20.php,該文件名以.php結(jié)尾可以被FastCGI接收,F(xiàn)astCGI在讀取文件名時(shí)被00截?cái)?,?dǎo)致讀取的文件名為1.gif[0x20],配合limit_extensions為空即可利用成功。該漏洞利用條件有兩個(gè):

  1. Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

  2. php-fpm.conf中的security.limit_extensions為空,也就是說(shuō)任意后綴名都可以解析為PHP

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)?security.limit_extensions 為php的安全限制開啟狀態(tài)只允許有.php后綴的文件進(jìn)行PHP處理。

5. 漏洞復(fù)現(xiàn)

進(jìn)入/vulhub/nginx/CVE-2013-4547,啟動(dòng)靶場(chǎng)環(huán)境:docker-compose up -d 我們通過(guò)一個(gè)寫有 php命令的 .jpg 文件上傳一個(gè)圖片的 webshell 命令如下:

<?php phpinfo(); ?>

5.1 上傳文件并抓包分析

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?將文件重命名為shell.jpg 截?cái)喾?php

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

這里先用aa進(jìn)行占位,之后通過(guò)16進(jìn)制進(jìn)行修改

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?這里的 61 為 16進(jìn)制的a,我們要將這里的aa修改為空格(20)和截?cái)喾?0)

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?最終上傳的包為

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

這里文件整體的后綴名為.php所以這個(gè)文件會(huì)交給FastCGI處理,之后FastCGI會(huì)將文件名從截?cái)喾幗財(cái)噙@時(shí)的文件名為 shell.jpg0x20? 同時(shí)這樣也繞過(guò)了前端代碼對(duì).php文件的過(guò)濾,然后將文件上傳。

上傳的結(jié)果:
中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?5.2 通過(guò)訪問文件執(zhí)行php

這里我們通過(guò)訪問網(wǎng)址進(jìn)行抓包修改

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

抓到的包

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?進(jìn)行修改:
中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?這里的aa依就是占位,便于通過(guò)16進(jìn)制修改文件名

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?修改好后的文件名:

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?這里也是一樣包中的請(qǐng)求文件的總體后綴名為.php,nginx會(huì)首先將文件交給FastCGI處理并截?cái)鄤t請(qǐng)求的文件名為 shell.jpg,之后會(huì)交給PHP-FPM處理此時(shí)php-fpm.conf中的security.limit_extensions為空,也就是說(shuō)任意后綴名都可以解析為PHP?所以會(huì)將 shell.jpg 文件當(dāng)作php文件處理并返回給瀏覽器形成邏輯漏洞。

請(qǐng)求結(jié)果:

中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)

?注意一點(diǎn)

在上傳文件時(shí)為什么要以.php后綴截?cái)嗟姆绞缴蟼鞫荒苤苯由蟼?shell,jpg 文件呢?反正結(jié)果后面的.php后綴最后都會(huì)被截?cái)嗟簟?/p>

因?yàn)檫@里的注入形式中由于請(qǐng)求文件被截?cái)鄷r(shí)空格被保留,所以請(qǐng)求文件的后綴名中一定會(huì)包含空格,否則會(huì)出現(xiàn)找不到文件的情況,因此我們?cè)谏蟼魑募r(shí)就要以 .php 后綴被截?cái)嗟姆绞絹?lái)進(jìn)行上傳以來(lái)保留空格。

6. 漏洞修復(fù)

將Nginx升級(jí)到1.5.7之后文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-432815.html

到了這里,關(guān)于中間件漏洞(一)CVE-2013-4547(文件名邏輯漏洞)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 中間件安全-CVE 復(fù)現(xiàn)&K8s&Docker&Jetty&Websphere漏洞復(fù)現(xiàn)

    中間件安全-CVE 復(fù)現(xiàn)&K8s&Docker&Jetty&Websphere漏洞復(fù)現(xiàn)

    中間件及框架列表: IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,F(xiàn)lask,jQuery 等。 中間件所披露的問題: 中間件安全-IISApacheTomcatNginx漏洞復(fù)現(xiàn) 中間件安全-WeblogicJenkinsGlassFish漏洞復(fù)現(xiàn) 1、中間

    2024年02月08日
    瀏覽(26)
  • 中間件安全I(xiàn)IS----文件解析漏洞利用

    中間件安全I(xiàn)IS----文件解析漏洞利用

    ? ? ? IIS服務(wù)器主要存在兩種解析缺陷:文件夾解析漏洞和分號(hào)截?cái)嗦┒?。下面就?lái)分別具體 了解一下。 ? ? ? ?在IS5x和6.0下對(duì)于錄名稱為“xasp”中的任何內(nèi)容,包括“1.jpg”這樣的圖片文件,都會(huì)被當(dāng)作ASP文件解析。例如“/example.asp/1.jpg”,這本來(lái)是一個(gè)圖片資源,但是

    2024年01月18日
    瀏覽(22)
  • 33、WEB攻防——通用漏洞&文件上傳&中間件解析漏洞&編輯器安全

    33、WEB攻防——通用漏洞&文件上傳&中間件解析漏洞&編輯器安全

    IIS爆過(guò)漏洞的版本:IIS6.0(windows server 2003)、IIS7.0和IIS7.5(windows server 2008) IIS6.0解析漏洞: 文件名:x.asp;x.jpg,jpg的文件后綴名,但是會(huì)被解析為asp文件; 目錄名:x.asp/x.jpg, 文件目錄名含有.asp后綴,x.jpg也會(huì)被解析為asp文件。 觸發(fā)條件: IIS6.0這個(gè)中間件; 上傳文件能不

    2024年01月24日
    瀏覽(31)
  • day33 文件上傳&中間件解析漏洞&編輯器安全

    day33 文件上傳&中間件解析漏洞&編輯器安全

    先判斷中間件,是否有解析漏洞,字典掃描拿到上傳點(diǎn),或者會(huì)員中心,有可能存在文件上傳的地方,而后測(cè)試?yán)@過(guò)/驗(yàn)證,根據(jù)實(shí)際情況判斷是白名單、黑名單還是內(nèi)容其他的繞過(guò),繞過(guò)/驗(yàn)證和中間件的解析漏洞也不行的話就看看CMS是否存在漏洞,然后看看編輯器漏洞有無(wú)

    2024年02月05日
    瀏覽(28)
  • 小迪安全33WEB 攻防-通用漏洞&文件上傳&中間件解析漏洞&編輯器安全

    小迪安全33WEB 攻防-通用漏洞&文件上傳&中間件解析漏洞&編輯器安全

    # 知識(shí)點(diǎn): 1 、中間件安全問題 2 、中間件文件上傳解析 3 、 Web 應(yīng)用編輯器上傳 編輯器也就是第三方插件,一般都是文件上傳漏洞 # 詳細(xì)點(diǎn): 1 、檢測(cè)層面:前端,后端等 2 、檢測(cè)內(nèi)容:文件頭,完整性,二次渲染等 3 、檢測(cè)后綴:黑名單,白名單, MIME 檢測(cè)等 4 、繞過(guò)技

    2024年03月16日
    瀏覽(32)
  • day33WEB 攻防-通用漏洞&;文件上傳&;中間件解析漏洞&;編輯器安全

    day33WEB 攻防-通用漏洞&;文件上傳&;中間件解析漏洞&;編輯器安全

    先自我介紹一下,小編浙江大學(xué)畢業(yè),去過(guò)華為、字節(jié)跳動(dòng)等大廠,目前阿里P7 深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長(zhǎng),但自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前! 因此收集整理了一份《2024年最新網(wǎng)絡(luò)安全全套學(xué)習(xí)資料》

    2024年04月24日
    瀏覽(49)
  • day33WEB 攻防-通用漏洞&;文件上傳&;中間件解析漏洞&;編輯器安全(1)

    day33WEB 攻防-通用漏洞&;文件上傳&;中間件解析漏洞&;編輯器安全(1)

    2、解析漏洞-nginx.conf 配置不當(dāng) 二,Web 應(yīng)用編輯器-Ueditor 文件上傳安全 三,實(shí)例 CMS平臺(tái)-中間件解析編輯器引用 配套資源下載(百度網(wǎng)盤): 鏈接:https://pan.baidu.com/s/11Q9sAPQ9P_ReOP9PKL0ABg?pwd=jgg4? 提取碼:jgg4 本章節(jié)知識(shí)點(diǎn): 1 、中間件安全問題 2 、中間件文件上傳解析 3 、

    2024年04月15日
    瀏覽(28)
  • 中間件漏洞解析

    中間件漏洞解析

    ?服務(wù)器解析漏洞算是歷史比較悠久了,但如今依然廣泛存在。在此記錄匯總一些常見服務(wù)器(WEB server)的解析漏洞,比如IIS6.0、IIS7.5、apache、nginx等 2 | 1 1、打開之前的一個(gè)網(wǎng)站,比如:cookies 2 | 2 2.目錄解析漏洞 找到cookies,新建一個(gè)名字為.asp(也可以是.cer和.asa)的文件夾,這

    2024年02月12日
    瀏覽(21)
  • 中間件漏洞匯總

    中間件漏洞匯總

    文章內(nèi)容沒啥新穎的,只是溫習(xí)了中間件漏洞輸出成筆記而已?? 下面的地址,詳細(xì)的記錄了中間件漏洞,我這里再學(xué)習(xí)復(fù)現(xiàn)一部分。 全網(wǎng)最全PDF版本:Web中間件常見漏洞總結(jié).pdf 中間件漏洞復(fù)現(xiàn):https://blog.csdn.net/zy15667076526/category_10361202.html 我們經(jīng)常管web中間件叫做web服務(wù)器

    2023年04月09日
    瀏覽(30)
  • 筆記:常見中間件漏洞

    Apache Shiro框架提供了記住密碼的功能(RememberMe),用戶登錄成功后會(huì)生成經(jīng)過(guò)加密并編碼的Cookie, 在服務(wù)端對(duì)rememberMe的Cookie值先base64解碼然后AES解密再反序列化 序列化:序列化=》使用密鑰進(jìn)行AES加密=》base64加密 反序列化:base64解密=》使用密鑰進(jìn)行AES解密=》反序列化 因?yàn)槟?/p>

    2024年02月13日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包