返回

Web安全系列-文件上传靶场upload-labs全关总结

见解分享

在渗透测试中,通过上传文件漏洞来getshell是比较常见的方法,upload-labs这个靶场总结了各种常见的文件上传漏洞类型,下面是本人的每个关卡的bypass方法总结。

0x00 前言

upload-labs是一个专门用来学习文件上传漏洞的靶场,里面包含了各种各样的文件上传漏洞类型,非常适合新手学习。

0x01 关卡介绍

upload-labs一共包含10个关卡,每个关卡都对应着一种常见的文件上传漏洞类型。

  1. 关卡1:白名单绕过
  2. 关卡2:黑名单绕过
  3. 关卡3:后缀名绕过
  4. 关卡4:内容类型绕过
  5. 关卡5:临时文件绕过
  6. 关卡6:大文件绕过
  7. 关卡7:分块上传绕过
  8. 关卡8:文件包含绕过
  9. 关卡9:任意文件写入
  10. 关卡10:任意文件删除

0x02 关卡01:白名单绕过

白名单绕过是指绕过白名单限制,上传黑名单中的文件。

方法一:修改文件后缀

将webshell.php改成webshell.php3 就能bypass。

方法二:使用00截断

将webshell.php.00上传即可绕过。

0x03 关卡02:黑名单绕过

黑名单绕过是指绕过黑名单限制,上传白名单中的文件。

方法一:使用大写后缀

将webshell.php改成WEBSHELL.PHP即可绕过。

方法二:使用双写后缀

将webshell.php改成webshell.php.php即可绕过。

0x04 关卡03:后缀名绕过

后缀名绕过是指绕过后缀名限制,上传任意文件。

方法一:使用双写后缀

将webshell.php改成webshell.php.php即可绕过。

方法二:使用00截断

将webshell.php.00上传即可绕过。

0x05 关卡04:内容类型绕过

内容类型绕过是指绕过内容类型限制,上传任意文件。

方法一:使用multipart/form-data

将webshell.php用multipart/form-data方式上传即可绕过。

方法二:使用base64编码

将webshell.php用base64编码后上传即可绕过。

0x06 关卡05:临时文件绕过

临时文件绕过是指绕过临时文件限制,直接上传文件到目标目录。

方法一:使用绝对路径

直接将webshell.php上传到目标目录即可绕过。

方法二:使用符号链接

在临时目录下创建符号链接,指向目标目录,然后将webshell.php上传到临时目录即可绕过。

0x07 关卡06:大文件绕过

大文件绕过是指绕过文件大小限制,上传大文件。

方法一:分块上传

将webshell.php分成多个小块,然后逐个上传即可绕过。

方法二:使用chunked transfer encoding

使用chunked transfer encoding方式上传文件,即可绕过文件大小限制。

0x08 关卡07:分块上传绕过

分块上传绕过是指绕过分块上传限制,直接上传整个文件。

方法一:使用multipart/form-data

将webshell.php用multipart/form-data方式上传即可绕过。

方法二:使用base64编码

将webshell.php用base64编码后上传即可绕过。

0x09 关卡08:文件包含绕过

文件包含绕过是指绕过文件包含限制,包含任意文件。

方法一:使用绝对路径

直接包含目标文件即可绕过。

方法二:使用符号链接

在目标目录下创建符号链接,指向目标文件,然后包含符号链接即可绕过。

0x0A 关卡09:任意文件写入

任意文件写入是指绕过文件写入限制,写入任意文件。

方法一:使用符号链接

在目标目录下创建符号链接,指向要写入的文件,然后写入符号链接即可绕过。

方法二:使用临时文件

在临时目录下创建临时文件,然后将内容写入临时文件,最后将临时文件移动到目标目录即可绕过。

0x0B 关卡10:任意文件删除

任意文件删除是指绕过文件删除限制,删除任意文件。

方法一:使用符号链接

在目标目录下创建符号链接,指向要删除的文件,然后删除符号链接即可绕过。

方法二:使用临时文件

在临时目录下创建临时文件,然后将要删除的文件移动到临时目录,最后删除临时文件即可绕过。

0x0C 总结

upload-labs是一个非常好的学习文件上传漏洞的靶场,里面包含了各种各样的文件上传漏洞类型,非常适合新手学习。