PWN dragon echo1 echo2 [pwnable.kr]CTF writeup题解系列16

本文是关于pwnable.kr CTF挑战的题解,涉及三个题目:dragon、echo1和echo2。dragon利用整数溢出和UAF漏洞,echo1利用栈溢出,echo2则利用格式化字符串漏洞。通过泄露GOT表,寻找并执行system和binsh,实现漏洞利用。
摘要由CSDN通过智能技术生成

由于pwnable.kr说明了不要将题解的利用脚本直接提出来,所以我就简单说下思路,本篇包括三个题目


目录

0x01 dragon

0x02 echo1

0x03 echo2


0x01 dragon

执行步骤

整数溢出漏洞:pDragon->HP 的类型是 signed byte,所以当超过127,就是负数了。这就是整数溢出漏洞

uaf漏洞:
1. malloc person
2. malloc dragon
3. free dragon
4. malloc pInput=dragon
((void (__cdecl *)(dragon *))pDragon->f_printinfo)(pDragon); = ((void (__cdecl *)(dragon *))pInput->f_printinfo)(pInput);

ida struct

00000000 person          struc ; (sizeof=0x10, mappedto_5)
00000000 type            dd ?
00000004 HP              dd ?
00000008 MP              dd ?
0000000C f_printinfo     dd ?                    ; offset
00000010 person          ends
00000010
00000000 ; ---------------------------------------------------------------------------
00000000
00000000 dragon          struc ; (sizeof=0x10, mappedto_6)
00000000 f_printinfo 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值