32c3 ctf writeup

本文记录了32c3 CTF比赛中的两个挑战:Forth和Gurke。在Forth题目中,通过分析yforth源码,发现了栈溢出漏洞,并利用dump函数泄露信息,最终构造ROP链获取libc地址。在Gurke题目中,利用Python pickle的漏洞,绕过安全限制,通过读取进程内存找到flag,该flag存储在ld.so后面的mmap内存区域。
摘要由CSDN通过智能技术生成

write by ling.

32c3 ctf总共做了3个题目,简单记录一下。

1. forth

只给了一个ip和端口,通过回显信息知道是yforth,网上直接下到了对应的源码。

在源码中搜索system,找到了如下函数:



yforth支持的命令都用一个code的宏定义出来。



分析_system函数,发现需要带2个参数,一个为执行命令的地址,一个为执行命令的长度。

如果需要执行system(“sh”),那么len=2,所以现在需要知道一个sh字符串的地址。


而因为没有给可执行程序,所以无法知道sh字符串的地址。


之后在源码中寻找泄露的函数,最后找到一个dump,能够实现任意地址任意长度泄露。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值