2024源鲁杯
本文最后更新于 2025年3月15日 晚上
源鲁杯
pwn
Round1
giaopwn
简单的栈题
1 | |
ezstack
一个命令执行的字符过滤绕过
1 | |
ezorw
写一个openat加sendfile的shellcode就好了
1 | |
canary_orw
劫持一下stack_chk_fail函数
再利用jmp rsp的gadget执行shellcode就好了
1 | |
ezfmt
先用格式化字符串泄露libc基址,返回到_start函数再利用一次格式化字符串修改printf为system
最后输入/bin/sh获取shell
1 | |
msg_bot
从程序中还原protobuf结构体
1 | |
写一个c语言的打包函数
1 | |
写一个纯可打印字符的shellcode读取另一部分shellcode
再使用retfq转为32位执行open
最后转回64位使用read和write获取flag
1 | |
Round2
ezstack2
程序中有个后门,控制一下参数再调用后门函数就好
1 | |
shortshell
用5个字节的shellcode跳到后门处
1 | |
magicread
简单的栈迁移
1 | |
Round3
Secret
签到题,随便逆逆拿到密码
然后nc上去输密码就有flag
ezstack3
第一次输入泄露一下栈地址
第二次输入进行栈迁移,并且同时返回到输入的位置再次输入
第三次劫持read的返回地址,并且利用栈构造/bin/sh
1 | |
null
glibc-2.27的堆题
edit函数有个off by null
create函数限制堆的大小不能大于0x100
泄露libc_base然后打malloc_hook即可
1 | |
2024源鲁杯
https://voidchunk.github.io/2024/11/05/YLCTF2024/