【文件上傳】PHP文件上傳漏洞

0x01 文件上傳漏洞

文件上傳漏洞顧名思義就是用戶上傳一個可執(zhí)行的腳本文件须床,獲得了執(zhí)行服務(wù)器端命令的能力。通常噪叙,文件上傳是getshell最常用矮锈、最直接的方式了。但是睁蕾,文件上傳本身是一個正常的業(yè)務(wù)需求苞笨,因此問題在于如何安全的上傳。

0x02 文件上傳的觸發(fā)條件

  1. 上傳的文件被Web容器解釋執(zhí)行

  2. 用戶能夠從web頁面訪問到被上傳的文件(直接或間接)

  3. 用戶上傳的文件通常不能被網(wǎng)站程序壓縮惫霸、修改內(nèi)容

0x03 從防御的角度看上傳

通常防御文件上傳漏洞是分幾個點的猫缭,大體上就以下幾方面

1. 客戶端javascript校驗

在瀏覽加載文件,但還未點擊上傳按鈕時變彈出對話框壹店,內(nèi)容可能是“只允許上傳xxx后綴名的文件”之類的猜丹,而此時并沒有發(fā)送數(shù)據(jù)包。

繞過方法:

  1. 關(guān)閉瀏覽器的javascript功能
  2. 用burp抓包改后綴名

2. 檢測MIME 類型

· 客戶端判斷:
$_FILES['myfile']['type'] == 'image/jpeg'

· 服務(wù)端判斷:

$fileinfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($fileinfo, $file_true_name);

繞過方法:

  1. 用burp抓包硅卢,修改Content-Type

3. 檢查內(nèi)容

服務(wù)器端會讀取上傳的文件然后判斷文件內(nèi)容時候有<?php之類的


繞過方法:

<script language="php">eval($_POST['cmd']);</script>
  1. 如果檢查文件頭的話就就可以找張真正的圖片然后用winhex在圖片的末尾寫php代碼

4. 檢查文件擴展名

一般檢查文件擴展名為最直接有效的方法射窒,通常是基于白名單或者黑名單來實現(xiàn)的藏杖。

黑名單繞過

  1. 可以使用能夠被解析的其他文件擴展名
jsp jspx jspf
asp asa cer aspx
php phtml php3 php4 php5 PHP phtm
exe exee
  1. 特殊文件名繞過
    比如在上傳的時候改成test.asp.或者test.asp_(下劃線為空格,這里方便大家看用下劃線表示了)脉顿,這種命名方式在windows下是不允許的蝌麸,繞過驗證后windows系統(tǒng)自動去掉后面的點和空格,但要注意Unix/Linux是沒有這個特性的艾疟。

  2. 00截斷
    有的時候可能會遇到服務(wù)器端把后綴名已經(jīng)定好了来吩,而恰好別的地方有一個可以任意讀取php文件的服務(wù),這個時候可以把圖片馬上傳后在這里查看蔽莱,查看的時候用%00把后面的.php給截斷就好了

  3. .htaccess文件攻擊
    配合名單列表繞過弟疆,上傳一個自定義.htaccess文件,即可輕松繞過各種檢測盗冷。

  4. 解析漏洞繞過
    這類漏洞直接配合上傳一個代碼注入過的非黑名單文件即可怠苔,再利用解析漏洞即可

白名單繞過

  1. %00截斷
    跟之前說的很像,就是上傳一個比如shell.php%00.jpg仪糖,服務(wù)器檢測后綴名是.jpg柑司,但實際上已經(jīng)被截斷了。

  2. 解析漏洞利用
    這類漏洞直接配合上傳一個代碼注入過的白名單文件即可锅劝,再利用解析漏洞

  3. .htaccess文件攻擊
    配合名單列表繞過攒驰,上傳一個自定義.htaccess文件,即可輕松繞過

0x04 與文件上傳息息相關(guān)的解析漏洞

  1. IIS5.x-6.x解析漏洞

?使用iis5.x-6.x版本的服務(wù)器鸠天,大多為windowsserver2003讼育,網(wǎng)站比較古老帐姻,開發(fā)語句一般為asp稠集;該解析漏洞也只能解析asp文件,而不能解析aspx文件饥瓷。

?目錄解析(IIS6.0)剥纷,只要文件夾有asp的話,該目錄下所有文件都會當作asp來解析呢铆,www.xxx.com/xx.asp/xx.jpg(xx.asp要存在)

?www.xxx.com/xx.asp;.jpg服務(wù)器默認不解析;號后面的內(nèi)容晦鞋,因此xx.asp;.jpg便被解析成asp文件了。(xx.asp;.jpg為上傳文件)

  1. IIS的PUT上傳

?PUT是在WebDav中定義的一個方法棺克,允許用戶上傳文件到指定目錄悠垛。
?在許多WebServer中都默認禁用了此方法,或者對上傳做了嚴格限制娜谊。但在IIS中确买,如果目錄支持寫權(quán)限,同時開啟了WebDav纱皆,就會支持PUT湾趾,再結(jié)合MOVE方法芭商,可Getshell。

  1. apache解析漏洞

?Apache解析文件的規(guī)則是從右到左開始判斷解析,如果后綴名為不可識別文件解析,就再往左判斷搀缠。比如test.php.owf.rar“.owf”和”.rar”這兩種后綴是apache不可識別解析,apache就會把test.php.owf.rar解析成php?www.xxxx.xxx.com/test.php.php123

?Apache的httpd.conf的AddHandler php5-script .php這時只要文件名里包含.php即使文件名是test2.php.jpg也會以php來執(zhí)行铛楣。(配置錯誤)

  1. nginx解析漏洞(Nginx<8.03)

?當cgi.fix_pathinfo開啟時(為1)

?當訪問www.xx.com/phpinfo.jpg/1.php時,會將phpinfo.jpg當做php進行解析

?其中1.php是一個不存在的文件

0x06 參考

  1. 某大佬的PPT

  2. 文件上傳框架

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末艺普,一起剝皮案震驚了整個濱河市簸州,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌歧譬,老刑警劉巖勿侯,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缴罗,居然都是意外死亡助琐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門面氓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兵钮,“玉大人,你說我怎么就攤上這事舌界【蚱” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵呻拌,是天一觀的道長葱轩。 經(jīng)常有香客問我,道長藐握,這世上最難降的妖魔是什么靴拱? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮猾普,結(jié)果婚禮上袜炕,老公的妹妹穿的比我還像新娘。我一直安慰自己初家,他們只是感情好偎窘,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著溜在,像睡著了一般陌知。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掖肋,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天仆葡,我揣著相機與錄音,去河邊找鬼培遵。 笑死浙芙,一個胖子當著我的面吹牛登刺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嗡呼,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼纸俭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了南窗?” 一聲冷哼從身側(cè)響起揍很,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎万伤,沒想到半個月后窒悔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡敌买,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年简珠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虹钮。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡聋庵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芙粱,到底是詐尸還是另有隱情祭玉,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布春畔,位于F島的核電站脱货,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏律姨。R本人自食惡果不足惜振峻,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望线召。 院中可真熱鬧铺韧,春花似錦、人聲如沸缓淹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讯壶。三九已至,卻和暖如春湾盗,著一層夾襖步出監(jiān)牢的瞬間伏蚊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工格粪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躏吊,地道東北人氛改。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像比伏,于是被迫代替她去往敵國和親胜卤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 文件上傳漏洞是指用戶上傳了一個可執(zhí)行的腳本文件赁项,并通過此腳本文件獲得了執(zhí)行服務(wù)器端命令的能力葛躏。這種攻擊方式是最為直...
    付出從未后悔閱讀 1,123評論 0 4
  • 一、初步認識 1.上傳功能:網(wǎng)站上各種可以上傳文件悠菜,圖片的地方可以被用作上傳點進行非法上傳 2.上傳原理:在前端代...
    楠昭閱讀 1,616評論 1 11
  • 解析導致的上傳漏洞 1.IIS6.0站上的目錄路徑檢測解析繞過上傳漏洞 默認 遇到/就不解析后面的了IIS6.0目...
    xaviershun閱讀 403評論 0 1
  • 安卓上 1px 換成 rem 不顯示的問題 scss 中: pxTorem(1px) 不顯示的問題 自己使用 ...
    戒惜舍得閱讀 1,352評論 0 0
  • 以自我中心的人悔醋,將困于人生最大的陷阱人人都有一個“自我”——我的身體摩窃,我的思想感情,我的財產(chǎn)芬骄、名譽偶芍、地位等等。但是...
    陳慕讀歷史閱讀 3,064評論 1 9