最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

知了堂《web安全-上傳漏洞》課程講解文檔(下)

2020-05-06 11:54 作者:匯智知了堂  | 我要投稿


文章來源:知了堂馮老師

接上文

知了堂:知了堂《web安全-上傳漏洞》課程講解文檔(上)zhuanlan.zhihu.com



6 文件類型繞過代碼分析

服務(wù)端處理上傳文件的代碼如下,服務(wù)端代碼判斷$_FILES[“file”][“type”]是不是圖片的格式(image/gif,image/jpeg,image/pjpeg),如果不是,則不允許上傳該文件,而$_FILES[“file”][“type”]是客戶端請求數(shù)據(jù)包中的Congent-Type,所以可以通過修改Content-Type的值繞過該代碼限制。

在php中還存在一種相似的文件上傳漏洞,PHP函數(shù)gettimagesize()可以獲取圖片的寬、高等信息,如果上傳的不是圖片文件,那么getimagesize()就獲取不到信息,則不允許上傳,代碼如下:

但是,我們可以將一個(gè)圖片何一個(gè)webshell合并為一個(gè)文件,例如使用以下命令

Cat image.png wehshell.php > image.php

此時(shí),使用getimagesize()就可以獲取圖片信息,且webshell的后綴是php,也能被apache解析為腳本文件,通過這種方式就可以繞過getimagesize()的限制。

7 文件截?cái)嗬@過攻擊

截?cái)囝愋停篜HP%00截?cái)?/p>

截?cái)嘣恚河捎?0代表結(jié)束符,所以會(huì)把00后面的所有字符刪除。

截?cái)鄺l件:PHP版本小于5.3.4,PHP的magic_quotes_gpc為OFF狀態(tài)。

在上傳文件時(shí),服務(wù)端將GET參數(shù)jieduan的內(nèi)容作為上傳后文件名的第一部分,然后將按照時(shí)間生成的圖片文件名作為上傳后文件名的第二部分。

修改參數(shù)jieduan為1.php%00.jpg,文件被保存到服務(wù)器時(shí),%00會(huì)把”.jpg”和按時(shí)間生成的圖片文件名全部截?cái)?,那么文件名就剩?.php,因此成功上傳了webshell腳本。

8 文件截?cái)嗬@過代碼分析

服務(wù)端處理上傳文件的代碼如下,程序使用substr獲取文件后綴,然后判斷后綴是否是‘flv’,‘swf’,‘mp3’,‘mp4’,‘3gp’,‘zip’,‘rar’,‘gif’,‘jpg’,‘png’,‘bmp’中的一種,如果不是,則不允許上傳該文件。但是在保存的路徑中有$_REQUEST[‘jieduan’],那么此處可以利用00截?cái)鄧L試?yán)@過服務(wù)端限制

9 文件上傳漏洞修復(fù)建議

針對文件上傳的修復(fù),建議:

? 1.通過白名單的方式判斷文件后綴是否合法,對文件格式限制,只允許某些格式上傳。

? 2.對上傳后的文件進(jìn)行重名名,例如rand(10,99).date(“YmdHis”).”.jpg”。

? 3.對文件格式進(jìn)行校驗(yàn),前端跟服務(wù)器都要進(jìn)行校驗(yàn)(前端校驗(yàn)擴(kuò)展名,服務(wù)器校驗(yàn)擴(kuò)展名、Content_Type等)。

? 4.將上傳目錄防止到項(xiàng)目工程目錄之外,當(dāng)做靜態(tài)資源文件路徑,并且對文件的權(quán)限進(jìn)行設(shè)定,禁止文件下的執(zhí)行權(quán)限。

10 練習(xí)平臺(tái)部署

Upload-labs

upload-labs是一個(gè)使用php語言編寫的,專門收集滲透測試和CTF中遇到的各種上傳漏洞的靶場。旨在幫助大家對上傳漏洞有一個(gè)全面的了解。目前一共20關(guān),每一關(guān)都包含著不同上傳方式。

靶機(jī)包含漏洞類型分類

Install

環(huán)境要求

若要自己親自搭建環(huán)境,請按照以下配置環(huán)境,方可正常運(yùn)行每個(gè)Pass

Windows快速搭建

項(xiàng)目提供了一個(gè)Windows下,按照以上配置要求配置好的集成環(huán)境

下載地址:github.com/c0ny1/upload

集成環(huán)境綠色免安裝,解壓即可使用。

Linux快速搭建

創(chuàng)建鏡像

$ cd upload-labs/docker

$ docker build -t upload-labs .

$ docker pull c0ny1/upload-labs

創(chuàng)建容器

$ docker run -d -p 80:80 upload-labs:latest

如何判斷上傳漏洞類型

練習(xí):DVWA

————————————————end————————————


知了堂《web安全-上傳漏洞》課程講解文檔(下)的評(píng)論 (共 條)

分享到微博請遵守國家法律
伽师县| 刚察县| 福清市| 仙居县| 泌阳县| 房产| 沙坪坝区| 吉木乃县| 邮箱| 宁国市| 峨眉山市| 赤壁市| 潼南县| 邢台市| 呈贡县| 上饶市| 南昌市| 温宿县| 清徐县| 修水县| 南陵县| 汾西县| 南木林县| 德州市| 巴彦县| 韶山市| 沾化县| 石柱| 灵寿县| 黄冈市| 甘泉县| 宁强县| 西城区| 高碑店市| 丹凤县| 望都县| 枣庄市| 雅江县| 河津市| 都江堰市| 玉环县|