文件上传漏洞细节解析 您所在的位置:网站首页 上传文件名称只能包括英文 文件上传漏洞细节解析

文件上传漏洞细节解析

2024-07-12 07:07| 来源: 网络整理| 查看: 265

描述

文件上传漏洞是指由于程序员未对上传的文件进行严格的验证和过滤,而导致的用户可以越过其本身权限向服务器上传可执行的动态脚本文件。如常见的头像上传,图片上传,oa 办公文件上传,媒体上传,允许 用户上传文件,如果过滤不严格,恶意用户利用文件上传漏洞,上传有害的可以执行脚本文件到服务器中, 可以获取服务器的权限,或进一步危害服务器;

危害

非法用户可以上传的恶意文件控制整个网站,甚至是控制服务器,这个恶意脚本文件,又被称为 webshell, 上传 webshell 后门很方便地查看服务器信息,查看目录,执行系统命令等;

有关文件上传的知识文件上传的过程

客户端 选择发送的文件->服务器接收->网站程序判断->临时文件->移动到指定的路径;

服务器 接收的资源程序;

服务器接收资源代码:

客户端文件上传的代码:

Filename: 文件上传代码

文件上传时会返回一些代码 返回客户端 客户端根据这些值判断上传是否正常

值:0; 没有错误发生,文件上传成功。值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。值:3; 文件只有部分被上传。值:4; 没有文件被上传。文件上传漏洞原因

文件上传漏洞分为:

直接文件上传,这种漏洞类型是属于高危漏洞的一种,能直接 getshell,而且没有任 何限制,攻击者很容易通过上传点,获取网站的控制权限;

另外一种是有条件的上传漏洞,这种漏洞一般 是开发者经验不足,对文件上传做了简单的限制,如简单的前端认证,文件头文件检测,这种检测行为, 可以完全绕过的;

另外一个方面就是权限认证没处理,没有对文件上传页面进行权限认证,匿名者就能访问上传文件,上传网页后门到网站目录,控制整个网站;

还有一些上传逻辑有问题,导致文件上传可以被绕过,上传后门到网站上。有的文件上传漏洞则是通过中间件或者系统特性上传可以被服务器解析脚本文件,从而导致网站可被控制;

文件上传漏洞的修复方案

在网站中需要存在上传模块,需要做好权限认证,不能让匿名用户可访问;文件上传目录设置为禁止脚本文件执行。这样设置即使被上传后门的动态脚本也不能解析,导致攻击 者放弃这个攻击途径;设置上传白名单,白名单只允许图片上传如,jpg png gif 其他文件均不允许上传;上传的后缀名,一定要设置成图片格式如 jpg png gif ;

文件上传的攻击方法

寻找测试网站的文件上传的模块,常见:头像上传,修改上传,文件编辑器中文件上传,图片上传、媒体上 传等,通过抓包上传恶意的文件进行测试,上传后缀名 asp php aspx 等的动态语言脚本,查看上传时的返回信息,判断是否能直接上传,如果不能直接上传,再进行测试上传突破,例如上传文件的时候只允许图片格式的后缀,但是修改文件时,却没有限制后缀名,图片文件可以修改成动态语言格式如 php,则可能访问这个文件的 URL 直接 getshell,可以控制网站;

常见的网站文件后缀名

可执行脚本的文件后缀名,可被网站目录解析。以下是常见的后缀名:

aspasacdxcerphpaspxashxjspphp3php.ashtmlphtml

有些网站会对 asp 或者 php 进行过滤转成空可用这些后缀名:

aspaspasasppphpphp

任意文件上传漏洞

任意文件上传漏洞又名文件直接上传漏洞,这种漏洞危害极大,如果攻击者能直接上传恶意脚本到网站存放 的目录,且这个目录可解析动态脚本语言,那么攻击者就能够直接获取网站权限,甚至进一步权限提升, 控制服务器;

任意文件上传代码分析

直接获取文件名,把上传的临时文件移动到 hackable/uploads 目录;

1656685824_62bf0500d1f2e3c662de7.png!small?1656685823827

直接上传文件 网页会返回路径 访问 url 即可 getshell;

1656685866_62bf052a1825ab5ab6979.png!small?1656685864927

1656685890_62bf05426707a19659169.png!small?1656685889571

文件上传绕过技术

使用2018的phpstady搭建,新版的很多都不行了

绕过前端 js 检测上传

环境:upload-labs01

在文件上传时,用户选择文件时,或者提交时,有些网站会对前端文件名进行验证,一般检测后缀名,是否为上传的格式。如果上传的格式不对,则弹出提示文字。此时数据包并没有提交到服务器,只是在客户端通过 js 文件进行校验,验证不通过则不会提交到服务器进行处理;

1656685936_62bf05702eecfddf5e927.png!small?1656685935038

绕过 js 检测方法

按 F12 使用网页审计元素,把校验的上传文件后缀名文件删除,即可上传;把恶意文件改成 js 允许上传的文件后缀,如 jpg、gif、png 等,再通过抓包工具抓取 post 的数据包, 把后缀名改成可执行的脚本后缀如 php 、asp、jsp、net 等。即可绕过上传 ;删除 js 文件(目前这种方式好像失效了)

删除即可,或者在js内的判断条件上加上我们的恶意后缀,或者,直接关闭浏览器的js功能;

1656686067_62bf05f364532b6f1484a.png!small?1656686066204

1656686184_62bf0668f27bf350be5af.png!small?1656686184072

抓包修改后缀名

1656686249_62bf06a9863d388f6a9ec.png!small?1656686248851

绕过 contnet-type( 内容类型 ) 检测上传

环境:upload-labs02

有些上传模块,会对 http 的类型头进行检测,如果是图片类型,允许上传文件到服务器,否则返回上传失 败。因为服务端是通过 content-type 判断类型,content-type 在客户端可被修改。则此文件上传也有可能被绕过的风险;

分析 content-type 漏洞代码

首先进行 submit 提交判断,再检测文件类型如果是 image/jpeg 或者 image/png 即允许上传;

1656686298_62bf06da84ba55d0e05f5.png!small?1656686297336

content-type 检测上传攻击

上传文件,脚本文件,抓包把 content-type 修改成 image/jpeg 即可绕过上传;

content-type解释:https://www.runoob.com/http/http-content-type.html

1656686409_62bf07497370088521d56.png!small?1656686408378

绕过黑名单上传

环境:upload-labs03

上传模块,有时候会写成黑名单限制,在上传文件的时获取后缀名,再把后缀名与程序中黑名单进行检测, 如果后缀名在黑名单的列表内,文件将禁止文件上传;

黑名单代码分析

首先是检测 submit 是否有值,获取文件的后缀名,进行黑名单对比,后缀名不在黑名单内,允许上传;

1656686455_62bf07771e18249b98d38.png!small?1656686453963

绕过黑名单上传的攻击

上传图片时,如果提示不允许 php、asp 这种信息提示,可判断为黑名单限制,上传黑名单以外的后缀名即可;

在 iis 里 asp 禁止上传了,可以上传 asa cer cdx 这些后缀,如在网站里允许.net 执行可以上传 ashx 代 替 aspx。如果网站可以执行这些脚本,通过上传后门即可获取 webshell ;

在不同的中间件中有特殊的情况,如果在 apache 可以开启 application/x-httpd-php 在 AddType application/x-httpd-php .php .phtml .php3 后缀名为 phtml 、php3 均被解析成 php 有的 apache 版本默认就会开启;

上传目标中间件可支持的环境的语言脚本即可,如.phtml、php3;

关于AddType命令的作用解释 AddType 指令 作用:在给定的文件扩展名与特定的内容类型之间建立映射 语法:AddType MIME-type extension [extension] … AddType指令在给定的文件扩展名与特定的内容类型之间建立映射关系。MIME-type指明了包含extension扩展名的文件的媒体类型。 AddType 是与类型表相关的,描述的是扩展名与文件类型之间的关系。

可以在httpd.conf文件中查看AddType 的设置情况;

注:新版的phpstudy貌似没有这个了,实验的话只能使用老版的了;

1656686499_62bf07a30e7da25e33dce.png!small?1656686498303

1656686515_62bf07b36d7e242fca9e4.png!small?1656686514621

htaccess 重写解析绕过上传

环境:upload-labs04

上传模块,黑名单过滤了所有的能执行的后缀名,如果允许上传.htaccess。htaccess 文件的作用是可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定 IP 地址的用户、只允许特定 IP 地址的用户、禁止目录列表,以及使用其他文件作为 index 文件等一些功能;

在 htaccess 里写入 SetHandler application/x-httpd-php 则可以文件重写成 php 文件。要 htaccess 的规则生效 则需要在 apache 开启 rewrite 重写模块,因为 apache 是多数都开启这个模块,所以规则一般都生效;

1656686549_62bf07d591dea75fda2fd.png!small?1656686548729

黑名单上传代码分析如果 submit 有值,$deny_ext = array(".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pht",".pHp",". pHp5",".pHp4",".pHp3",".pHp2","pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",". jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",". asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",". aSmx",".cEr",".sWf",".swf"); 上传的文件后缀名在列表内禁止上传。包括了所有的执行脚本。

1656686596_62bf08047ac9be461bed6.png!small?1656686595695

htaccess 重写解析攻击

上传.htaccess 到网站里.htaccess 内容是:

SetHandler application/x-httpd-php 将所有的jpg文件解析成php文件

再上传恶意的 jpg 到.htaccess 相同目录里,访问图片即可获取执行脚本;

1656686691_62bf08631023c53690a9d.png!small?1656686689945

大小写绕过上传

环境:upload-labs06

有的上传模块,后缀名采用黑名单判断,但是没有对后缀名的大小写进行严格判断,导致可以更改后缀大小 写可以被绕过。如 PHP、 Php、 phP、pHp ;

黑名单大小写绕过代码分析获取文件后缀名进行判断,如果后缀在这个字典里就禁止上传。 $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");

1656686743_62bf0897bec241f4a6871.png!small?1656686742582

黑名单大小写绕过攻击

仔细阅读黑名单,查看是否有被忽略的后缀名,当前可以使用 phP 绕过;

1656686764_62bf08ac49c8c9e501b73.png!small?1656686763222

空格绕过上传攻击

环境:upload-labs07

抓包上传,在后缀名后添加空格;

1656686786_62bf08c2afc084eead020.png!small?1656686785495

利用 windows 系统特征绕过上传

环境:upload-labs08

在 windows 中文件后缀名. 系统会自动忽略.所以 shell.php. 像 shell.php 的效果一样。所以可以在文件名后面机上.绕过;

源码:同样是黑名单,但是没有删除文件末尾的点的判断条件;

抓包修改在后缀名后加上.即可绕过 ;

1656686827_62bf08eb14d46329a0142.png!small?1656686826330

NTFS 交换数据流::$DATA 绕过上传

环境:upload-labs09

如果后缀名没有对::$DATA 进行判断,利用 windows 系统 NTFS 特征可以绕过上传 ;

$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",". pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",". jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",". ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",". sWf",".swf",".htaccess"); 同样用黑名单过滤后缀名。但是程序中没有对::$DATA 进行过滤可以添加::$DATA 绕过上传

burpsuite 抓包,修改后缀名为 .php::$DATA ;

1656686899_62bf09335f35c9a1055c7.png!small?1656686898226

利用 windows 环境的叠加特征绕过上传

环境:upload-labs10

在 windwos 中如果上传文件名 ruchusec.php:.jpg 的时候,会在目录下生产空白的文件名 ruchusec.php ;

再利用 php 和 windows 环境的叠加属性;

以下符号在正则匹配时相等:

双引号" 等于 点号.大于符号> 等于 问号?小于符号< 等于 星号*文件名.>

1656686966_62bf09763c7977ed8c777.png!small?1656686965194

1656686991_62bf098f6fc5b6301b4a9.png!small?1656686990326

双写后缀名绕过上传

环境:upload-labs11

在上传模块,有的代码会把黑名单的后缀名替换成空,例如 a.php 会把 php 替换成空,但是可以使用双写绕过例如 asaspp,pphphp,即可绕过上传;

代码分析:

同样是黑名单过滤。str_ireplace 对上传的后缀名是黑名单内的字符串转换成空;

1656687012_62bf09a4da9658397746f.png!small?1656687011891

抓包上传,把后缀名改成 pphphp 即可绕过上传;

1656687041_62bf09c1004aa1237a2fb.png!small?1656687040151

目录可控%00 截断绕过上传(GET)

环境:upload-labs12

上面都是一些黑名单被绕过的,如果黑名单上传检测后,没有限定后缀名,绕过的方法很多,与黑名单相对的就是白名单,使用白名单验证会相对比较安全,因为只允许指定的文件后缀名。但是如果有可控的参数目录,也存在被绕过的风险;

上传参数目录可控代码分析 :

代码中使用白名单限制上传的文件后缀名,只允许指定的图片格式。但是$_GET['save_path']服务器接受 客户端的值,这个值可被客户端修改。所以会留下安全问题;

1656687068_62bf09dce67eefaacf82b.png!small

文件上传参数目录可控攻击

上传参数可控

当 gpc 关闭的情况下,可以用%00 对目录或者文件名进行截断;php 版本小于 5.3.4 ;

注意:需要magic_quotes_gpc=off,才可以

首先截断攻击,抓包上传将%00 自动截断后门内容

例如 1.php%00.1.jpg 变成 1.php

1656687097_62bf09f9a59b91b0b843a.png!small?1656687096526

目录可控%00 截断绕过上传(POST)

环境:upload-labs13

post 下直接注入%00 是不行的,需要把%00 解码变成空白符,截断才有效。才能把目录截断成文件名;

目录可控 post 上传代码分析

这段代码同样是白名单限制后缀名,$_POST['save_path']是接收客户端提交的值,客户端可任意修改。所以会产生安全漏洞;

1656687132_62bf0a1c2b4165febef8c.png!small?1656687130961

目录可控上传攻击

文件名可控,通过抓包修改可控的参数,与不同的中间件的缺陷配合使用;

使用%00 截断文件名 ,在 post 环境下%00 要经过 decode 但是受 gpc 限制;

使用 burpsutie POST %00 截断文件名;

1656687188_62bf0a543e80eb88b70a6.png!small?1656687187201

1656687236_62bf0a841a2afbd55b9e2.png!small?1656687235028

如果当前目录不能解析脚本,可以移动到其他目录再进行截断提交;

1656687261_62bf0a9dae88acb1f228e.png!small?1656687260527

文件头检测绕过上传

有的文件上传,上传时候会检测头文件,不同的文件,头文件也不尽相同。常见的文件上传图片头检测它检测图片是两个字节的长度,如果不是图片的格式,会禁止上传 ;

常见的文件头:

JPEG (jpg),文件头:FFD8FFPNG (png),文件头:89504E47GIF (gif),文件头:47494638TIFF (tif),文件头:49492A00Windows Bitmap (bmp),文件头:424DPng图片文件包括8字节:89 50 4E 47 0D 0A 1A 0A。即为 .PNG。 Jpg图片文件包括2字节:FF D8。 Gif图片文件包括6字节:47 49 46 38 39|37 61 。即为 GIF89(7)a。 Bmp图片文件包括2字节:42 4D。即为 BM文件头检测上传代码分析

环境:upload-labs14

getReailFileType 是检测 jpg、png、gif 的文件头;

1656687301_62bf0ac50c0a8c0f03c04.png!small?1656687299852

1656687324_62bf0adc7267179e584a5.png!small?1656687323278

如果上传的文件符合数字即可通过检测;

文件头检测绕过传攻击方法

制作图片一句话,使用 copy 1.gif/b+123.php/a shell.php 将 php 文件附加在 jpg 图片上,直接上传即可;

/b代表以二进制编码打开文件,/a代表以ASCII码编码打开文件

1656687372_62bf0b0ce0c1f433fe696.png!small?1656687372354

1656687392_62bf0b20584e25ec20cf8.png!small?1656687391805

靶场的这关可以通过文件包含,包含执行图片马,实战中,上传图片马需要找到文件包含漏洞,打组合拳;

还有一种方法是直接在一句话木马前面加上图片的文件头,最常用的:GIF89a

图片检测函数绕过上传

环境:upload-labs15

白名单的方式过滤,getimagesize 是获取图片的大小,如果头文件不是图片会报错直接可以用图片马绕过检测;

1656687416_62bf0b3810edf1508f633.png!small?1656687414896

攻击方法同上面一样;

绕过图片二次渲染上传

有些图片上传,会对上传的图片进行二次渲染后在保存,体积可能会更小,图片 会模糊一些,但是符合网站的需求。例如新闻图片封面等可能需要二次渲染,因 为原图片占用的体积更大。访问的人数太多时候会占用,很大带宽。二次渲染后 的图片内容会减少,如果里面包含后门代码,可能会被省略。导致上传的图片马, 恶意代码被清除;

图片二次渲染分析代码

环境:upload-labs17

只允许上传 JPG PNG gif 在源码中使用 imagecreatefromgif 函数对图片进行二次生成,生成的图片保存在,upload 目录下;

1656687447_62bf0b57a7adf90fab3d7.png!small?1656687446573

绕过图片二次渲染攻击

首先判断图片是否允许上传 gif,gif 图片在二次渲染后,与原图片差别不会太大。 所以二次渲染攻击最好用 gif 图片图片马;

制作绕过图片马(HxD工具)

将原图片上传,下载渲染后的图片进行对比,找相同处,覆盖字符串,填写一句话后门,或者恶意指令;

1656687465_62bf0b6935c127267abac.png!small?1656687464003

1656687485_62bf0b7d78ea2e8f951c6.png!small?1656687484379

文件上传条件竞争漏洞绕过

环境:upload-labs18

在文件上传时,如果逻辑不对,会造成很大危害,例如文件上传时,用 move_uploaded_file 把上传的临时文件移动到指定目录,接着再用 rename 文件,设置图片格式,如果在 rename 之前 move_uploaded_file 这个步骤 如果这个文件可被客户端访问,这样我们也可以获取一个 webshell;

代码分析

采用白名单上传,$upload_file = UPLOAD_PATH . '/' . $file_name; 设置上传路径, 后缀名没有限定为图片类型,接着 move_uploaded_file($temp_file, $upload_file) 将图片移动指定的目录,接着使用 rename 重名为图片类型,在重名之前如果被浏览器访问,那么可以得到一个 webshell;

1656687504_62bf0b9015e3eb92b54c0.png!small?1656687503014

文件上传条件竞争攻击方法

改个木马,效果明显点;

//cmd.php

上传文件,burp抓包,发送到 intruder 模块,设置无限发送空的payloads,线程调高一点;

1656687524_62bf0ba42cba8c7c75f1c.png!small?1656687523186

1656687545_62bf0bb94184147bb186e.png!small?1656687544116

python脚本访问我们上传文件

import requests url = "http://192.168.50.154/upload-labs-master/upload/cmd.php" while True: html = requests.get(url) if html.status_code == 200: print("OK") break

1656687573_62bf0bd56493222db6ec9.png!small?1656687572176

蚁剑连接

1656687601_62bf0bf1f11f6f59e04c1.png!small?1656687600727

文件名可控绕过上传

环境:upload-labs20

文件上传时,文件名可被客户端修改控制,会导致漏洞产生;

文件名可控代码分析

采用黑名单限制上传文件,但是 $_POST['save_name']文件是可控的,可被客户端任意修改,造成安全漏洞;

1656687623_62bf0c078c834ed524434.png!small?1656687622381

文件名控可控攻击方法文件名攻击的方法主要有两种:

一:

上传文件,文件马采用%00 截断,抓包解码,例如 shell.php%00.jpg 截断后 shell.php 或者使用/. ;

注意: %00 截断 需要 gpc 关闭,抓包,解码,提交即可,截断文件名 php 版本小于 5.3.4才行 ;

1656687660_62bf0c2c94d8565834202.png!small?1656687659482

二:

与中间的漏洞配合使用 例如 iis6.0 上传 1.php;1.jpg apache 上传 1.php.a 也能解析文件 a.asp;1.jpg 解析成 asp ;

1656687691_62bf0c4b931e104ae8206.png!small?1656687690718

1656687715_62bf0c638bd93f114761b.png!small?1656687714477

数组绕过上传

环境:upload-labs21

有的文件上传,如果支持数组上传或者数组命名。如果逻辑写的有问题会造成安全隐患,导致不可预期的上传。这种上传攻击,它是属于攻击者白盒审计后发现的漏洞居多 ;

数组绕过代码分析

首先检测文件类型,接着可以看到可控参数 save_name ,如果不是数组内的后缀名,即不是图片,禁止上传,如果是数组数组内的后缀名,则绕过图片类型检测,接着处理;

1656687736_62bf0c78902dc469c2637.png!small?1656687735552

验证过程: --> 验证上传路径是否存在 --> 验证['upload_file']的content-type是否合法(可以抓包修改) --> 判断POST参数是否为空定义$file变量(关键:构造数组绕过下一步的判断) -->判断file不是数组则使用explode('.', strtolower($file))对file进行切割,将file变为一个数组 --> 判断数组最后一个元素是否合法 --> 数组第一位和$file[count($file) - 1]进行拼接,产生保存文件名file_name --> 上传文件 explode(separator,string[,limit]) 函数,使用一个字符串分割另一个字符串,并返回由字符串组成的数组。 end(array)函数,输出数组中的当前元素和最后一个元素的值。 reset(array)函数,把数组的内部指针指向第一个元素,并返回这个元素的值 count(array)函数,计算数组中的单元数目,或对象中的属性个数

重点在 $file_name = reset($file) . '.' . $file[count($file) - 1] 把这句搞懂,关键点也在这,我们的目的是把$file[count($file) - 1,这个的数组必须大于1,这样第二个数组的值就获取不了了,那么就为空,然后和第一个数组拼接;

数组上传攻击方法1.修改content-type 2.修改POST参数为数组类型,索引[0]为`upload-20.php`,索引[2]为`jpg|png|gif`。 3.只要第二个索引`不为1`,$file[count($file) - 1]就等价于$file[2-1],值为空。

我们要添加第二个下标即索引2为jpg|png|gif

1656687759_62bf0c8f780f315ec273d.png!small?1656687758408

1656687782_62bf0ca609ee0b2054bec.png!small?1656687781141

1656687805_62bf0cbd41ff9612f63b0.png!small?1656687804276

我们也可以直接在第一个下标值后面直接添加一个 \ ,上传上去也会在目录下生成文件;

1656687826_62bf0cd2a81d22d4717e9.png!small?1656687825578

到这里,可能还有的同学还没懂,接着给大家举个小例子:

构造上传表单,设置数组上传;

upload.html

请选择要上传的图片:

保存名称:

从代码中,可以知道第二个数组必须大于 1 即可,这样第二个数组的值就获取不了,字符串拼接起来就是 phpinfo.php/. 就能上传phpinfo.php;

1656687853_62bf0cedb26619b7baa8e.png!small?1656687852659

文件上传漏洞通用检测方法

判断是否为黑白名单,如果是白名单,寻找可控参数。如果是黑名单禁止上传, 可以用有危害的后缀名批量提交测试,寻找遗留的执行脚本;

.php .php5 .php4 .php3 .php2 .html .htm .phtml .pht .pHp .phP .pHp5 .pHp4 .pHp3 .pHp2 .Html .Htm .pHtml .jsp .jspa .jspx .jsw .jsv .jspf .jtml .jSp .jSpx .jSpa .jSw .jSv .jSpf .jHtml .asp .aspx .asa .asax .ascx .ashx .asmx .cer .aSp .aSpx .aSa .aSax .aScx .aShx .aSmx .cEr .sWf .swf .htaccess

使用 burpsuite 抓包上传将后缀名设置成变量,把这些文件设置成一个字典批量提交;

1656687874_62bf0d02e203a6f2c8577.png!small?1656687873737

1656687892_62bf0d14b40dfdd420074.png!small?1656687891541

文件上传的防御方法

服务器端使用白名单防御;修复 web 中间件的漏洞;禁止客户端存在可控参数;存放文件目录禁止脚本执行;限制后缀名;一定要设置图片格式 jpg、gif 、 png 文件名随机的,不可预测;

文件上传的攻击方法总结

1656687987_62bf0d73a497847bdef46.png!small?1656687986765



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有