从业者-黑名单验证缺陷-绕过黑名单扩展
# 实验室:绕过黑名单扩展并上传web shell
# 题目
此实验室包含一个易受攻击的图像上传功能。某些文件扩展名被列入黑名单,但由于该黑名单的配置中存在根本缺陷,因此可以绕过该防御。
要解决实验室问题,请上传一个基本的 PHP Web shell 并使用它来外泄文件/home/carlos/secret
的内容,然后使用实验室横幅中提供的按钮,提交文件中的隐藏值。
你可以使用以下凭据登录到自己的帐户:wiener
:peter
提示
你需要上传两个不同的文件来解决此练习。
- name: 实验室-从业者
desc: 绕过黑名单扩展并上传web shell >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/file-upload/lab-file-upload-web-shell-upload-via-extension-blacklist-bypass
bgColor: '#001350'
textColor: '#4cc1ff'
1
2
3
4
5
6
2
3
4
5
6
# 实操
根据题意,可得实验目标:
- 网站的 黑名单验证 中存在缺陷,尝试上传一个 webshell 获取并提交 /home/carlos/secret 文件的内容。
点击 “ACCESS THE LAB” 进入实验室。

点击 “My account” 进入登录界面。

输入题目中提供的用户名密码wiener
:peter
进行登录。

启用浏览器代理,尝试上传一张图片。

查看捕获的请求数据包,并将其转发至 Repeater 功能模块。

修改文件扩展名为.php
,尝试上传一个 webshell 文件,上传失败。

根据前面所学知识,我们可以上传一个.htaccess
文件,添加自己的文件配置项。
# 前面所学, 为.php文件添加一个PHP解析器, 使.php文件可以被作为PHP代码执行
AddType application/x-httpd-php .php
# 修改过后, 为.png文件添加一个PHP解析器, 使.png文件可以被作为PHP代码执行
AddType application/x-httpd-php .png
1
2
3
4
5
2
3
4
5
上传成功,并没有阻拦该文件的上传。

随后将文件扩展名修改为.png
,但文件内容依然为 webshell 代码,上传该文件。

由于我们在.htaccess
文件中添加了配置项,.png
文件的内容将会被当做 PHP 代码来执行。
所以此时的.png
文件就相当于.php
文件。

尝试对图片文件传递参数并执行命令,成功。
files/avatars/clincat.png?command=id
1

通过 cat 命令获取目标文件的内容,然后复制长度为 32 位的目标字符串。

回到实验室主页,点击上方的 “Submit solution” 打开输入框,填入刚刚获得的文件内容,然后点击 “确定” 。

提交正确,实验完成。

编辑 (opens new window)