Web安全系列-文件上传靶场upload-labs全关总结
2024-01-06 02:36:02
在渗透测试中,通过上传文件漏洞来getshell是比较常见的方法,upload-labs这个靶场总结了各种常见的文件上传漏洞类型,下面是本人的每个关卡的bypass方法总结。
0x00 前言
upload-labs是一个专门用来学习文件上传漏洞的靶场,里面包含了各种各样的文件上传漏洞类型,非常适合新手学习。
0x01 关卡介绍
upload-labs一共包含10个关卡,每个关卡都对应着一种常见的文件上传漏洞类型。
- 关卡1:白名单绕过
- 关卡2:黑名单绕过
- 关卡3:后缀名绕过
- 关卡4:内容类型绕过
- 关卡5:临时文件绕过
- 关卡6:大文件绕过
- 关卡7:分块上传绕过
- 关卡8:文件包含绕过
- 关卡9:任意文件写入
- 关卡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是一个非常好的学习文件上传漏洞的靶场,里面包含了各种各样的文件上传漏洞类型,非常适合新手学习。