周报(欢乐赛+信息搜集ctfshow+Trae-mcp)

web1 -20(信息搜集)

git泄露:(1)就是普通的git log/diff /reset --hard(恢复)/ 直接dirsearch扫描发现git

(2)git stash开发中断保存命令 git checkout <> 切换分支 切回然后 git stash pop恢复保存

svn泄露:和git差不多(/.svn/entries可查看目录文件追溯源码,老版本.svn/text-base;新版本pristine目录下有源码备份,都查不到的话,有个wc.db其中有个NODES可以看路径信息恢复源码local_relpath和repos_path还有一个check文件内容的校验可用于定位缓存文件)

vim泄露:当编辑过程中异常退出可能会生成缓存文件/.index.php.swp(再次异常退出swo)

域名隐藏信息TXT里面可以储存任意文本信息而且不会影响DNS解析,域名解析在线记录工具Nslookup(在线)

扫描到editor访问得到如上图页面

php探针:PHP探针是一种用于探测服务器和PHP环境信息的工具。它可以实时查看服务器的硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。常用的又tz.php

backup.sql :备份sql文件

如果分数大于100输出:.......去解码一下

访问110.php(谐音梗)

AES解密出来

mdb文件是早期asp+access构架的数据库文件,文件泄露相当于数据库被脱裤了。

mdb文件是早期asp+access构架的数据库文件,早期asp+access具有漏洞,一旦被扫描到目录下的存在mdb文件,攻击者可以直接访问地址进行下载获取 数据库 信息。 直接查看url路径添加/db/db.mdb 下载文件通过txt打开或者通过EasyAccess.exe打开搜索flag

这里我不太认得EasyAccess.exe是干嘛的去搜了一下,这是一个第三方数据库管理工具,专门用来编辑查看Access数据库(.mdb文件:是二进制格式记事本直接打开是乱码,看不到结构化数据)

这个好在flag没有乱码

欢乐赛

我是真觉得活腻歪了可以看看这个题,做了几个觉得太抽象了,就去刷CTFSHOW的web了

热身签到

复制代码
s = "54515552545455515456547055555566545654495548554855575370515051485150515453705555545755525456537054515551515051485150515450495568"
decoded = ''
for i in range(0, len(s), 2):
    num = int(s[i:i+2])
    decoded += chr(num)
print(decoded)

就是没两位合成16制码,然后解码得到flag

HappySong

算了这种题我的脉冲导出不了不过多纠结,最后导出二进制文件然后解码

happy2026

复制代码
https://97d15cb0-8ab1-4ff3-8f12-d67b94ef2f50.challenge.ctf.show/?year=2026&new[2026]=x&happy[x]=/etc/passwd

这道题先是弱比较再是强比较,is_numeric判断是数值还是字符数值,

复制代码
if($year==2026 && $year!==2026 && is_numeric($year)){
include $happy[$new[$year]];
}

然后进行数组传递,先将$year当作key值传递到得到变量new中,然后再将得到的值当作key传到happy中,然后将得到的值进行文件包含,这是一个动态赋值,数组的键和值都是一样的只要保持键和前面保持一直就行,

伪协议获取flag.php源码解码得到flag(要获取php文件源码而不是执行后的就要用到伪协议)

happyEmoji

这道题不知道哪个神人出的,分四个转速,并且四个一组然后分析出四进制,然后根据转到不同的位置像素不同,写脚本进行像素提取得到base64解码得到flag,反正我写不来看看得了

大佬脚本小弟膜拜膜拜

复制代码
from PIL import Image, ImageSequence
import math
 
# ================= 配置区 =================
GIF_PATH = 'C:/Users/tsddd/Downloads/HappyEmoji/flag.gif'
FRAME_INDEXES = [3, 34, 65, 96]   # 从 1 开始计数
 
BLOCK_H = 42
BLOCK_W = 61
GAP_H = 10
 
TARGET_Y = 15
TARGET_X = 34
 
SHIFT_X = 5   # 向右平移 5 像素
# =========================================
 
COLOR_MAP = {
    (191, 175, 143): 0,
    (255, 223, 127): 2,
    (255, 239, 111): 1
}
 
STRIDE_H = BLOCK_H * 4 + GAP_H
 
 
def shift_image_right(img, shift):
    """整张图向右平移 shift 像素"""
    w, h = img.size
    new_img = Image.new('RGB', (w, h), (0, 0, 0))
    new_img.paste(img, (shift, 0))
    return new_img
 
 
def decode_image(img):
    width, height = img.size
    pixels = img.load()
 
    cols = math.ceil(width / BLOCK_W)
    groups = math.ceil(height / STRIDE_H)
 
    decoded_chars = []
 
    for group in range(groups):          # 从上到下
        for col in range(cols):          # 从左到右
            digits = []
 
            for i in range(4):
                base_x = col * BLOCK_W
                base_y = group * STRIDE_H + i * BLOCK_H
 
                x = base_x + TARGET_X
                y = base_y + TARGET_Y
 
                if x >= width or y >= height:
                    value = 3
                else:
                    pixel = pixels[x, y]
                    value = COLOR_MAP.get(pixel, 3)
 
                digits.append(str(value))
 
            base4 = ''.join(digits)
 
            if any(c not in '0123' for c in base4):
                decoded_chars.append('?')
            else:
                decoded_chars.append(chr(int(base4, 4)))
 
    return ''.join(decoded_chars)
 
 
# ================= 主流程 =================
gif = Image.open(GIF_PATH)
 
final_result = []
 
print('==== GIF 帧解码 ====')
 
for idx in FRAME_INDEXES:
    frame_no = idx - 1  # 转为 0-based
 
    gif.seek(frame_no)
    frame = gif.convert('RGB')
 
    # 右移 5 像素
    shifted = shift_image_right(frame, SHIFT_X)
 
    decoded = decode_image(shifted)
 
    print(f'\n帧 {idx} 解码结果:')
    print(decoded)
 
    final_result.append(decoded)
 
print('\n==== 最终拼接结果 ====')
print(''.join(final_result))

这道题一开始被随波逐流诈骗了,不过确实有疑点

他告诉我包含NTFS数据流,我尝试用命令行提取一下zip文件和gif文件都包含NTFS数据流,按理说如果从网页上下载zip,然后本地解压gif文件只有可能zip文件包含NSTFS数据流,但是gif也包含,gif里面的就很有可能是手动或添加的,里面极有可能包含flag信息,但另一个奇怪的是他的url又指向本地zip文件的地址,这是NFTS数据流得基本格式

复制代码
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://ctf.show/
HostUrl=https://ctfshow-1257200238.cos.ap-shanghai.myqcloud.com/static/file/HappyEmoji.zip

都学了知识点就补充一下吧

Zone.Identifier 是NTFS文件系统中的一个备用数据流

  • ZoneId**:这是最核心的部分,代表文件的来源区域** 。常见的值有:
  • 3**:表示文件来自** 互联网(Internet Zone) ,这是最常见的情况。
  • 0**:本地计算机**
  • 1**:本地Intranet**
  • 2**:受信任的站点**
  • 4**:受限制的站点**
  • ReferrerUrl****和 HostUrl**:记录文件是从哪个网页下载的,以及实际下载链接的URL**

SafePIN

这个题也比较抽象,我想的是将附件和0-9都用这个打开进行对照然后得出音频所代表的数字。因为本人听不出来,脚本也不会搓,爆破肯定行不通因为试的多了会冷却

6666放弃了这都什么神人题目、

Trae-mcp

当时配的时候忘记记录一下,但是主要参考了这位佬的博客https://blog.csdn.net/m0_67581821/article/details/147853296?fromshare=blogdetail&sharetype=blogdetail&sharerId=147853296&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_link

相关推荐
七夜zippoe2 小时前
Python 3.12+ 新特性深度解析:类型系统与性能革命
android·网络·python·类型系统·性能革命·3.12+
米饭不加菜2 小时前
Windows 键盘快捷方式总览
windows·计算机外设
zzzsde2 小时前
【Linux】进程控制(2):进程等待&&进程替换
linux·服务器·网络
小小小米粒2 小时前
观察者模式
windows
lucky_syq2 小时前
Windows电脑部署OpenClaw保姆级教程(2026最新版)
人工智能·windows·开源·电脑·openclaw
CDN3602 小时前
各种网站高防服务器选型:360CDN 高防够用吗?
服务器·网络·安全
嵌入式-老费2 小时前
vivado hls的应用(带ddr读取的ip)
服务器·网络·tcp/ip
软件工程小施同学2 小时前
区块链论文速读 CCF A--CCS 2025 (2) 附pdf下载
网络·pdf·区块链
小鱼不会骑车3 小时前
TCP 核心知识精讲:是什么 · 为什么 · 怎么做
网络·网络协议·tcp/ip