type
Post
status
Published
date
slug
summary
tags
推荐
CTF
category
CTF-WP
category (1)
icon
password
comment

WEEK1

WEB

ez_rce

访问网址发现给了源代码
直接谷歌搜索subprocess.run rce ctf,搜到了相似的知识点
image-20241006181638141
image-20241006181638141
https://ctftime.org/writeup/37413
点进去查看后发现dc命令中!后的命令可以当系统命令执行,直接构造exp
image-20241006181750951
image-20241006181750951
得到flag=0xGame{Do_You_Know_gtfobins?Try_To_Use_It!}
这个flag有点有趣,问我知不知道gtfobins,我还真没听说过,就去谷歌搜索了一下
得到网址:https://gtfobins.github.io/
发现里面都是二进制文件的rce命令,包括这题的dc命令也有,真的是大开眼界
image-20241006182017249
image-20241006182017249

ez_sql

题目提示是sqlite,直接用union联合注入
先看表名
image-20241006220659348
image-20241006220659348
然后直接看flag字段
image-20241006220625740
image-20241006220625740

ez_ssti

常规的ssti但是又不常规,这题的ssti貌似有些文件不能直接cat,无奈之下只好用open
因为通过源代码可以知道这个flag本来在env的环境变量中但是在运行py文件的时候被删除了,所以只能在虚拟目录下访问当前京城的环境变量才能获取flag
image-20241007114057937
image-20241007114057937

ez_login

用户名admin,密码admin123直接登录得到flag

ez_unser

大致的逻辑就是先构造pop链往.log文件中写php一句话木马,然后将得到的.log文件经过pop链改名
exp
得到.log文件名
image-20241007180011919
image-20241007180011919
将log文件名改成php的payload
访问木马,执行命令查看flag
image-20241007180620812
image-20241007180620812

hello_http

image-20241007185717583
image-20241007185717583
先用指定的浏览器访问
image-20241007185750110
image-20241007185750110
这边我偷懒不抓包了,直接用hackbar,下一步是get传参
image-20241007185836409
image-20241007185836409
下一步是用post传参
image-20241007185913699
image-20241007185913699
下一步是添加cookie
image-20241007185954937
image-20241007185954937
下一步是修改Referer
image-20241007190127975
image-20241007190127975
下一步是xxf伪造
image-20241007190156711
image-20241007190156711
得到了flag

hello_web

之家ctrl+u查看网页源代码得到第一段flag和下一个路由提示
image-20241007190413176
image-20241007190413176
查看下一个路由
image-20241007190505657
image-20241007190505657
查看响应包,因为前面是中文所以解码不正确,后面直接是flag的后半段
两段flag拼接起来得到完整的flag
0xGame{ee7f2040-1987-4e0a-872d-68589c4ab3d3}

Blockchain

肘,上链!

image-20241007190708831
image-20241007190708831
先去nc创建账户
image-20241007190817854
image-20241007190817854
提示我们先要去账户充钱,那么我们就先打开题目给的faucet地址,输入账户
image-20241007191328535
image-20241007191328535
成功之后再去nc那边查看交易的地址
image-20241007191427924
image-20241007191427924
和交易的源码
image-20241007191501186
image-20241007191501186
接下来先去小狐狸钱包(MetaMask)添加测试网络
image-20241007191846703
image-20241007191846703
网络名称随便填,rpc填题目给的rpc,链id填错它会告诉你正确的,货币符号随便填,点击保存
image-20241007192012062
image-20241007192012062
将账户号复制去之前的faucet地址充钱得到1单位电子货币,然后打开solidity在线编辑网站
https://remix.ethereum.org/
image-20241007192239396
image-20241007192239396
将之前的源码粘贴到里面并且编译一下
image-20241007192544203
image-20241007192544203
点击交易的地方,选择小狐狸钱包自动绑定账户
image-20241007192819461
image-20241007192819461
输入交易的地址点击At Address
这个代码运行的结果是0x83c9a53a09792c2f7d6d0b19bede7af634e365c92cb3874761e2f0ac2f31bd6a,所以我们只要给sigin赋值这个结果就可以
image-20241007193506625
image-20241007193506625
返回true交易成功,现在就去获取flag
image-20241007193557651
image-20241007193557651
成功拿到flag

MISC

0xGame2048

image-20241007195133921
image-20241007195133921
直接base2048在线解密

一明一暗

一眼压缩包明文攻击,直接把给你的图片压缩成zip,然后去明文攻击
image-20241007202604580
image-20241007202604580
查看压缩算法,用bandizip将jpg按相同算法压缩
image-20241007202656567
image-20241007202656567
然后直接明文攻击解密
image-20241007202846730
image-20241007202846730
查看hint,发现是盲水印
image-20241007202926544
image-20241007202926544
大概率就是java盲水印了
image-20241007203200744
image-20241007203200744
得到flag
image-20241007203222371
image-20241007203222371
0xGame{N0w_st4rt_uR_j0urn3y!!}

关注 DK 盾谢谢喵

按要求来直接得到flag,然后取关,嘿嘿嘿
0xGame{W31c0m3_70_0x64m3_2024_5p0n50r3d_8y_dkdun}

加密的压缩包?

打开得到密码提示
image-20241007203610906
image-20241007203610906
但是加密位被改了,得改回来,改成加密的样子
image-20241007204156441
image-20241007204156441
然后成功解压缩得到flag
0xGame{M@ybe_y0u_ar2_t4e_mAsTer_0f_Z1p}

我的世界基岩版(?

辣鸡题目,直接不做,没硬核知识点,但是还是做了
思路是坐矿车上去向下看
0xGame{MC_SErver_4_CTFers}

RE

BabyBase

养成好习惯先查壳发现没壳
image-20241007204554759
image-20241007204554759
直接ida64启动,shift+f12查看字符串
image-20241007204703678
image-20241007204703678
盲猜base64,直接去大厨解密
image-20241007204744505
image-20241007204744505

BinaryMaster

继续保持好习惯
image-20241007204854946
image-20241007204854946
直接ida启动!!!
image-20241007204949011
image-20241007204949011
直接找到flag

SignSign

好习惯不能忘
image-20241007205117677
image-20241007205117677
ida接着启动!!!
image-20241007205215428
image-20241007205215428
shift+f12找到两段flag拼接起来就行
0xGame{S1gn1n_h3r3_4nd_b3g1n_Reversing_n0w}

Xor-Beginning

好习惯
image-20241007205348280
image-20241007205348280
接着启动ida
image-20241007205751233
image-20241007205751233
主要就是
大致逻辑就是密文的每一位去异或78-密文所在那一位就行,主要就是查看密文,直接下上面图片的断点然后调试
得到密文
然后就直接写脚本逆向
image-20241007210209531
image-20241007210209531
得到了flag

Xor-Endian

010查看是ELF
image-20241008163623498
image-20241008163623498
ida启动!!
加密函数
其中key=Key0xGame2024,思路是循环异或
image-20241008164519879
image-20241008164519879
先动调得到密文
exp
image-20241008164833871
image-20241008164833871

PWN

test your pwntools

直接上exp

WEEK2

MISC

呜呜呜~我再也不敢乱点了

先用wireshark打开流量包,发现了tls加密,导入它的log文件
image-20241013110030782
image-20241013110030782
解密之后导出对象,选择zip文件,解压后看到一个clean_file_rubbish.ps1,打开来发现c2语句
image-20241013110213735
image-20241013110213735
去base解一下第一个变量的字符串得到
image-20241013110238272
image-20241013110238272
把ip md5一下上交就行

我叫曼波

exp

报告哈基米

010查看附件结尾
image-20241013134446328
image-20241013134446328
提示猫变换但是没解密参数
image-20241013134515588
image-20241013134515588
lsb得到解密参数,用脚本
得到第一部分flag
image-20241013134606545
image-20241013134606545
随后发现可疑报错
image-20241013125124379
image-20241013125124379
看到报错输出发现可能有zip,那就先去提取一下
保存
image-20241013131010604
image-20241013131010604
这串字符逆序一下
image-20241013131032920
image-20241013131032920
提示你是Tupper画图,网上找到exp
画出图片
image-20241013131116897
image-20241013131116897
得到后面的flag,拼接最后的flag
0xGame{hajimi_i5_Cute_r1ght?}

WEB

baby_ssrf

源码
可以看到是一题ssrf的题目,借此机会去完善一下自己的知识库
这边要进行一个127.0.0.1的IP绕过,并且请求要是POST,所以要用到gopher伪协议,直接放exp
生成的exp
直接去打
image-20241026131642800
image-20241026131642800
得到了flag

baby_xxe

构造xxe
这边需要注意的是,构造的时候不能加encode,不然python会解析错误,用post传参的时候需要进行一次url编码
image-20241026141920390
image-20241026141920390

hello_shell

先进行rce,因为无回显所以反弹shell
编码后上传
反弹shell后就直接suid提权,用wc可执行文件查看/flag
image-20241026181017106
image-20241026181017106

hello_include

有点抽象
首先搜给用户看的php文件
image-20241026182041829
image-20241026182041829
去访问这个phps
image-20241026182106452
image-20241026182106452
可以看到有文件包含漏洞,先去看phpinfo.php
image-20241026182146214
image-20241026182146214
得到flag路径
过滤了php伪协议那就直接用file伪协议
image-20241026182340715
image-20241026182340715

baby_pickle

考察手搓pickle的反序列化代码
得到加密结果再去执行就能反弹shell

RE

BabyUPX

养成好习惯
image-20241013182907380
image-20241013182907380
去脱壳
image-20241013182955033
image-20241013182955033
ida启动!!
image-20241013183132536
image-20241013183132536
找到encode函数和encdata
image-20241013183235948
image-20241013183235948
大概意思就是将高低位交换,那就直接写exp

FirstSight-Jar

java反编译,直接用jadx
image-20241013192859066
image-20241013192859066
反编译得到加密函数和密文,直接去写解密脚本

FisrtSight-Pyc

直接pyc反编译
image-20241013194628866
image-20241013194628866
然后运行输入神秘代码
image-20241013194648643
image-20241013194648643

Xor::Ramdom

好习惯
image-20241013194810347
image-20241013194810347
打开ida
image-20241013201036523
image-20241013201036523
伪随机
image-20241013201047138
image-20241013201047138
加密流程
exp

ZzZ

好习惯
image-20241013201203473
image-20241013201203473
image-20241013204849032
image-20241013204849032
发现z3求解
exp

WEEK3

MISC

重生之我在南邮当CTF大王

游戏中找flag,直接打开游戏文件夹下的data文件夹
image-20241023165526096
image-20241023165526096
所以flag1:0xGame{NJUPT_
image-20241023165649381
image-20241023165649381
flag2:Has_
image-20241023165713316
image-20241023165713316
flag3:VerY_v3Ry_V3ry_
然后一直找不到flag4,直到…..
image-20241023165807895
image-20241023165807895
大胆猜测兽语加密,把一行的兽语都连接起来得到
呜嗷嗷嗷嗷呜呜~嗷呜嗷呜呜呜嗷啊嗷啊呜嗷嗷啊嗷嗷呜呜嗷嗷嗷嗷嗷呜呜嗷呜嗷呜呜啊呜啊啊嗷啊呜啊嗷呜嗷呜呜嗷啊嗷嗷嗷呜啊嗷嗷啊呜嗷呜呜啊啊啊~啊嗷啊呜嗷呜啊嗷啊
在线解密得到
image-20241023165956972
image-20241023165956972
YummY_FooD}
最后全部拼接0xGame{NJUPT_Has_VerY_v3Ry_V3ry_YummY_FooD}

RE

BabyASM

简单来说就是前22个数据加28,后21个数据与前22个数据依此异或
exp

LittlePuzzle

直接问gpt,发现是在做数独游戏,flag是输入每6位一组转成16进制
在线数独解密
image-20241020140224398
image-20241020140224398
exp

Tea

好习惯就不说了,这边就是tea魔改,只加密开头的8位和最后的8位
exp
中间的24位直接提取密文转字符就行
image-20241020140117965
image-20241020140117965

WEEK4

MISC

Encrypted file

打开流量包,直接追踪tcp
image-20241027114242978
image-20241027114242978
发现一开始在目录爆破,接着看
image-20241027114456836
image-20241027114456836
在第134流上传了shell
image-20241027114901401
image-20241027114901401
在135流看到了加密数据,用切面134流的解密脚本去跑
解密脚本
解密后的数据
这一个脚本是在测试自己的shell能否正常执行
将对应的响应包去掉头尾的数字按上面脚本解密后
image-20241027115734307
image-20241027115734307
发现和它传入数据吻合,就代表有效
接下来只关注回显数据了,不用看命令(不是
image-20241027120724556
image-20241027120724556
解密结果
image-20241027120733088
image-20241027120733088
我开始怀疑secret.php是不是用openssl加密了,再接着往下看
image-20241027131608954
image-20241027131608954
将第139流的发送数据解密
image-20241027131626708
image-20241027131626708
终于发现加密方式了,果然是openssl
image-20241027132308754
image-20241027132308754

Crazy Thursday v me 50 btc

首先查看ppt的宏代码
image-20241027134055086
image-20241027134055086
发现了一个恶意图文件,去下载,得到一个py编译的exe,去反编译
image-20241027134356298
image-20241027134356298
得到pyc文件再去反编译成py
先提取n和c
提取des密钥
解密wav文件
将wav去deepsound解密得到一个winer.txt,再去用snow解密,密码去010看wav结尾
image-20241027145343705
image-20241027145343705
最后得到flag

Untouchable flag

首先是pyjail
这里用到的技巧是breakpoint()
先用unicode编码输入𝐛𝐫𝐞𝐚𝐤𝐩𝐨𝐢𝐧𝐭()
然后反弹shell
image-20241027155841039
image-20241027155841039
还需要提权,发现/etc/passwd文件可写
写入echo “test:adMpHktIn0tR2:0:0:User_like_root:/root:/bin/bash” >> /etc/passwd
这条命令的意思添加一个test/test用户,权限是root
然后切换到test用户,密码就是test,之后就可以读flag了
image-20241027160009260
image-20241027160009260

RE

MineSweeper

找到游戏的指定dll文件
image-20241028161911636
image-20241028161911636
用dnSpy进行逆向分析
找到game主类下的可疑的crypt函数
image-20241028162104637
image-20241028162104637
查看函数
image-20241028162128982
image-20241028162128982
右键分析查看变量的调用,主要查看传进来的Key,至于Game.key双击就能找到
image-20241028162224781
image-20241028162224781
发现被Update方法使用,查看方法
image-20241028162254780
image-20241028162254780
发现传入的参数,左键双击查看
image-20241028162315963
image-20241028162315963
发现了Game.key和Game.haha现在去写解密逻辑,大致逻辑是对key进行变换,然后和密文异或
image-20241028162415139
image-20241028162415139
其中不难发现红框部分就是密文,它是从外部的文件加载的
image-20241028162459016
image-20241028162459016
文件位置如上,用010打开查看具体的密文
image-20241028162645114
image-20241028162645114
找到密文的16进制,开搓脚本!!

PyPro

拿到python编译的exe,先用工具得到pyc
exp.py
运行python exp.py -d PyPro.exe
在目录下得到PyPro.exe_extracted目录,进去找到PyPro.pyc
image-20241028182805520
image-20241028182805520
因为是python 3.12,所以用pycdc进行反编译
image-20241028182833584
image-20241028182833584
得到结果
知道大概是aes-ecb模式
key:0x554B134A029DE539438BD18604BF114
密文:2e8Ugcv8lKVhL3gkv3grJGNE3UqkjlvKqCgJSGRNHHEk98Kd0wv6s60GpAUsU+8Q
填充方式:PKCS5_pad
解出来发现有问题
image-20241028184429305
image-20241028184429305
字符不可见,看了一下密钥是奇数个16进制,应该前面补若干个0(反编译不正确导致的)
image-20241028184514567
image-20241028184514567
最终补一个0之后发现可解了
0xGame{1cb76d38-4900-476f-bf1b-9d59f74d7b2e}

Register

是一个注册机,原理就是给对用户名就可以给你flag
ida查找字符串
image-20241028190604359
image-20241028190604359
发现可疑的用户名,进行调试下断点
image-20241028190641427
image-20241028190641427
执行到if点击查看buf2就是flag
image-20241028190714094
image-20241028190714094
得到flag
0xGame{1b4e549d12ccb4bb4936f95fedecebf55494dec8}

Tea2.0

ida打开找到主加密逻辑以及密文
image-20241030104535644
image-20241030104535644
具体加密函数里面是tea魔改
image-20241030104627081
image-20241030104627081
发现密文怎么改都不对,直到找到…..
image-20241030134232156
image-20241030134232156
原来密文被改了啊,点击进去查看细节
image-20241030134300457
image-20241030134300457
又是一层tea,不过我比较懒,直接动调起来看密文吧,这样自己就少解一层
image-20241030134521249
image-20241030134521249
找到真正的密文,但是小端序,之前我都是手动提取,现在找到一个脚本自动转小端序
得到处理后的小端序的密文
再去解密
0xGame-Week1-misc-web厦门三日游
Loading...