ACECTF 1.0 2025 writeup【部分】

赛事信息

web

Buried Deep

打开网站后,习惯性的看一些robots.txt 发现如下内容
在这里插入图片描述
当依次看他们的时候,发现一些可疑信息,并尝试解密得到不同part的flag

49 115 116 32 80 97 114 116 32 111 102 32 116 104 101 32 70 108 97 103 32 105 115 32 58 32 65 67 69 67 84 70 123 49 110 102 49 108 55 114 52 55 49 110 103 95 55 104 51 95 53 121 53 55 51 109 95 32

在这里插入图片描述

first part: ACECTF{1nf1l7r471ng_7h3_5y573m_
当访问到secret_path的时候,拿到一些点和横线

..--- -. -..
.--. .- .-. -
--- ..-.
- .... .
..-. .-.. .- --.
.. ...
---...
.---- ..... ..--.- ...-- ....- ..... -.-- ..--.- .-- .... ...-- -. ..--.- -.-- ----- ..- ..--.- -.- -. ----- .-- ..--.- .-- .... ...-- .-. ...-- ..--.-

在这里插入图片描述

second part: 15_345Y_WH3N_Y0U_KN0W_WH3R3_
最后一段的提示在style中,将这content中的内容进行rot47解码,拿到part flag
在这里插入图片描述
在这里插入图片描述
third part flag:7h3_53cr3t5_4r3_bur13d}

flag: ACECTF{1nf1l7r471ng_7h3_5y573m_15_345y_wh3n_y0u_kn0w_wh3r3_7h3_53cr3t5_4r3_bur13d}

Flag-Fetcher

很简单的题,访问网站后,会自动发一些包,将这些依次排序得到flag
在这里插入图片描述
flag: ACECTF{r3d1r3ct10n}

Webrypto-18

考点:

  • 代码审计
  • MD5哈希碰撞

根据代码逻辑,必须满足两个条件:

  1. tom和jerry参数的值不同;
  2. 当这两个参数分别与’ACECTF’拼接后进行MD5哈希,结果必须相等。但这里使用的是弱类型比较==,而非严格比较===

可能的解决方案:

  • 数组绕过:因为如果传递的参数是数组,例如tom[]=a&jerry[]=b,这时md5函数处理数组会返回NULL,导致两个NULL在弱比较下相等
  • 找到两个开头为0e的md5值,在 php 弱类型比较中判断为相等
    例如:
    • QNKCDZO
    • 240610708
    • s878926199a
    • s214587387a
    • s155964671a

最终payload:

?tom[]=s878926199a&jerry[]=240610708

在这里插入图片描述
flag: ACECTF{70m_4nd_j3rry_4r3_4ll135}

Token of Trust

打开网页,提示要post到login接口,模糊测试下来,构造请求体

得到json字段为user和pass在这里插入图片描述
jwt.io/将payload中的guest改为admin在这里插入图片描述
然后携带token,post到flag接口,这里传输token的时候费了很大劲,以为要爆破请求头,结果最后居然还是用json来传递token
在这里插入图片描述
flag: ACECTF{jwt_cr4ck3d_4dm1n_4cce55_0bt41n3d!}

Bucket List

考察存储桶泄露,访问目标网站根目录,然后有一个secret.txt文件需要我们关注。
在这里插入图片描述
打开后是一串base64编码的flag,解码拿到flag
在这里插入图片描述
在这里插入图片描述
flag: ACECTF{7h3_4w5_15_m15c0nf16ur3d}

reverse

Trust Issues

下载附件,逆向后,程序逻辑会对比GRX14YcKLzXOlW5iaSlBIrN7和你输入的字符串,然后经过一个_strcmp函数。
这个函数的逻辑
在这里插入图片描述
这里 v0 是一个固定数组,a0 是输入字符串,a1 是目标字符串 “GRX14YcKLzXOlW5iaSlBIrN7”。通过异或操作,可以推导出 v0 的值。
在这里插入图片描述
解题脚本如下,让chatgpt写就行
在这里插入图片描述

target = "GRX14YcKLzXOlW5iaSlBIrN7"
v0 = [6, 17, 29, 114, 96, 31, 24, 124, 62, 15, 109, 120, 51, 53, 64, 94, 62, 37, 95, 48, 120, 20, 55, 74]
flag = ''.join(chr(ord(c) ^ v0[i]) for i, c in enumerate(target))
print(flag) # ACECTF{7ru57_bu7_v3r1fy}

flag:ACECTF{7ru57_bu7_v3r1fy}

crypto

A Little Extra Knowledge Is Too Dangerous

打开附件是一个base64,如下所示

QUNFQ1RGe/MV82dTM1NV95MHVfN3J1bmM0N/zNkXzdoM18zeDdyNF9rbjB3bDN/kNjNfcjRkMG1fNTdyMW42NjY2NjY2NjY2NjU1NTU1NTU1NV/94eHh4eHh4YmJieHh4eHh4Y2N/jY3h9

直接开始解密,发现前边有ACECTF字符串,但后边很乱
在这里插入图片描述
开始尝试把反斜线分段,其中第一段舍弃,最后四段,去除反斜线,尝试解密,就拿到flag了,最后拼接到一块
在这里插入图片描述
将后四段放到一起解密

MV82dTM1NV95MHVfN3J1bmM0NzNkXzdoM18zeDdyNF9rbjB3bDNkNjNfcjRkMG1fNTdyMW42NjY2NjY2NjY2NjU1NTU1NTU1NV94eHh4eHh4YmJieHh4eHh4Y2NjY3h9

在这里插入图片描述
flag: ACECTF{1_6u355_y0u_7runc473d_7h3_3x7r4_kn0wl3d63_r4d0m_57r1n66666666666555555555_xxxxxxxbbbxxxxxxccccx}}

forensics

Broken Secrets

附件下载下来是7z文件,后缀改为7z 解压,打开是word文件(解压后的),找到media里有一个可疑文件,可惜是损坏的
在这里插入图片描述
用16进制打开发现存在 IHDR 字符串,这种png文件的特征,所以把前四个16进制位改为png的文件头89 50 4e 47,再重新发开即可得flag
在这里插入图片描述
flag:ACECTF{h34d3r_15_k3y}

Hidden in the traffic

打开流量包,协议很杂,先丢给CTFNETA工具提取一下流量,把可以数据丢给一把梭
在这里插入图片描述
在这里插入图片描述
flag: ACECTF{p1n6_0f_D347h}

Another Reading between the Lines?

打开hidden文件,发现什么都没有,用xxd hidden,看一下16进制,发现其中只有0d 和 0a 两种字符。
在这里插入图片描述
经过搜索发现,这可能是换行符,在windows中换行符是0d0a,而unix中换行符是0a
在这里插入图片描述
猜测可能要经过转换,把所有的0d0a换成1,所有的0a换成0,得到如下序列,再利用二进制转字符,得到flag

010000010100001101000101010000110101010001000110011110110110111000110000010111110111001000110011001101000110010000110001011011100011011001011111011000100110010100110111011101110011001100110011011011100101111100110111011010000011001101011111011011000011000101101110001100110011010101111101

在这里插入图片描述
flag: ACECTF{n0_r34d1n6_be7w33n_7h3_l1n35}

Deep Memory Dive

先用vscode打开memory_dump.raw,直接搜索ACECTF{,可以发现一些flag片段,但是再找其他的就找不到了,上工具吧在这里插入图片描述先检查一下镜像信息,命令volatility.exe -f D:\下载\memory_dump.raw imageinfo
在这里插入图片描述
然后用axiom打开,选择windows->内存->手动选择类型,加载即可,打开后发现隐藏的进程有个可疑的名字
在这里插入图片描述
再到vscode结合着搜索即可拿到最后一段flag
在这里插入图片描述
flag:ACECTF{3xplor1n6_th3_c0nc3al3d_r1ddl3s}

Keyboard Echo

参考:https://blog.csdn.net/ON_Zero/article/details/130528679

安装:sudo apt-get install tshark
tshark -r usb.pcap -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt

  -r:设置tshark 分析的输入文件
  -T:设置解码结果输出的格式。包括fields,text,ps,psml和pdml,默认为text

再跑一下脚本就出了

#将上面的文件用脚本分隔,加上冒号;
f=open('usbdata.txt','r') 
fi=open('out.txt','w')
while 1:
  a=f.readline().strip() 
  if a:
    if len(a)==16:#键盘流量的话len为16鼠标为8 
      out=''
      for i in range(0,len(a),2):
        if i+2 != len(a):
          out+=a[i]+a[i+1]+":" 
        else:
          out+=a[i]+a[i+1] 
      fi.write(out) 
      fi.write('\n') 
  else: 
    break 
fi.close()
#最后用脚本提取
   # print((line[6:8])) #输出6到8之间的值
   #取出6到8之间的值
mappings = { 0x04:"A",  0x05:"B",  0x06:"C", 0x07:"D", 0x08:"E", 0x09:"F", 0x0A:"G",  0x0B:"H", 0x0C:"I",  0x0D:"J", 0x0E:"K", 0x0F:"L", 0x10:"M", 0x11:"N",0x12:"O",  0x13:"P", 0x14:"Q", 0x15:"R", 0x16:"S", 0x17:"T", 0x18:"U",0x19:"V", 0x1A:"W", 0x1B:"X", 0x1C:"Y", 0x1D:"Z", 0x1E:"1", 0x1F:"2", 0x20:"3", 0x21:"4", 0x22:"5",  0x23:"6", 0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"\n", 0x2a:"[DEL]",  0X2B:"    ", 0x2C:" ",  0x2D:"-", 0x2E:"=", 0x2F:"[",  0x30:"]",  0x31:"\\", 0x32:"~", 0x33:";",  0x34:"'", 0x36:",",  0x37:"." }
nums = []
keys = open('out.txt')
for line in keys:
    if line[0]!='0' or line[1]!='0' or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0':
         continue
    nums.append(int(line[6:8],16)) 
keys.close()
output = ""
for n in nums:
    if n == 0 :
        continue
    if n in mappings:
        output += mappings[n]
    else:
        output += '[unknown]'
print ('output :\n' + output)


在这里插入图片描述

拿到flag要格式化后才能交对
flag: ACECTF{y0u_h4v3_f0und_17}

Fractured Frames

这个题修改一些jpg的高度即可得到flag

flag: ACECTF{th1s_sh0uld_b3_en0u6h}

steganography

HeaderHijack

https://fix.video/

需要修复文件头,先找一个在线修复视频的网站,然后修复好就可以在视频中获得flag
在这里插入图片描述
flag: ACECTF{d3c0d3_h3x_1s_fun}

Cryptic Pixels

binwalk提取图片中有个加密的压缩包
在这里插入图片描述
需要用archpr工具和rockyou.txt字典来爆破来爆破
在这里插入图片描述
解压出来是一个类似flag的东西,但不是flag
在这里插入图片描述
随波逐流一把梭,得到flag
在这里插入图片描述
flag :ACECTF{h4h4_y0u’r3_5m4r7}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值