Catf1ag CTF Web(五)

前言

Catf1agCTF 是一个面向所有CTF(Capture The Flag)爱好者的综合训练平台,尤其适合新手学习和提升技能 。该平台由catf1ag团队打造,拥有超过200个原创题目,题目设计注重知识点的掌握,旨在帮助新手掌握CTF相关的各种技能 。除了新手题目,平台也包含难度不一的题目,适合不同水平的CTF参与者 。

平台上的题目类型多样,包括WEB、MISC、CRYPTO、LINUX、PWN/ATTACK、REVERSE等,题目分数制度从60分到100分不等,难度从1星到5星 。题目提交时需要包含完整的题目环境、flag以及writeup,以确保题目的完整性和可解性 。

此外,Catf1agCTF平台还提供了一些辅助工具和资源,如在线工具箱、SRC资料和HW资料等,以帮助用户更好地进行学习和实战演练 。平台的网址为 https://catf1ag.cn/,有意向的用户可以通过官方邮箱catf1ag@163.com进行联系 。对于想要加入交流的用户,平台还提供了官方QQ群和频道,方便用户之间的互动和交流 。

需要注意的是,平台上的部分题目可能需要特定的环境配置,例如WEB题目会包含dockerfile,而PWN/ATTACK题目则必须包含dockerfile以确保题目环境的完整性 。对于题目的flag格式,平台有统一的要求,即flag需要以"catf1ag{}"的格式呈现 。

总的来说,Catf1agCTF是一个资源丰富、适合各个水平CTF爱好者的训练平台,无论是新手还是有经验的参与者,都能在这里找到适合自己的学习和提升机会。

一、easy_flask_1

打开靶场

页面如下

这题看题目考察的是 flask 的 SSTI 模板注入,描述里给出了提示,那么直接查看 config 配置信息 

二、easy_flask_2

打开靶场

这里先测试下 cmd 能不能用

再次查看 config 配置信息发现给出了 flag 提示

先查看当前位置下的所有文件 

lipsum.__globals__: 访问全局变量

  • lipsum 可能是一个 Jinja2 模板上下文中的变量。在 Python 中,所有对象都有一个 __globals__ 属性,这个属性是指向该对象所在模块的全局命名空间的字典。
  • 通过 lipsum.__globals__,可以访问该变量所在模块中的所有全局变量。

os.popen(): 执行系统命令

  • 在 Python 的 os 模块中,popen() 是一个用来执行系统命令的方法。
  • os.popen('ls') 会在系统的 shell 中执行 ls 命令,该命令用于返回当前用户的用户名。
  • read() 方法则用于读取 popen 执行命令后的输出 

构造 payload 

http://subject.catf1ag.cn:40540/?cmd={{lipsum.__globals__.__builtins__.__import__(%22os%22).popen(%22ls%22).read()}}

再访问 flag

三、又双叒叕不能相等

打开靶场

给出了源代码 

分析源代码得出:

1.num 不为空

2.num 的长度比 init 短

3.num 的值比 init 大

<?php
include('flag.php');
error_reporting(0);
show_source('index.php');
$init_num = '999999999999';
$user_num = $_GET['num'];
if(isset($user_num)){
    if($user_num != $init_num){
        if(strlen($user_num) < strlen($init_num)){
            if($user_num > $init_num){
                echo 'get glag:'.$flag;
            }else{
                echo '你输入的数字小于初始值~';
            }
        }else{
            echo '不能大于初始值~';
        }
    }else{
        echo '不能相等~';
    }
}else{
    echo '请输入内容~';
}
?>

可以传入数组绕过 strlen 函数的检查

flag 藏在响应头中 

四、哦豁~还有一半呢?

打开靶场

在源代码中看到 

结合上一题查看网络请求得到另一半

将两段结合起来得到 flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suc2es2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值