pwnstep1-2 writeup

这篇博客详细介绍了CTF挑战中的一个pwn题目,涉及栈溢出攻击的实践和分析。作者通过ida分析程序,揭示了如何利用不限长度输入的gets函数触发栈溢出来获取flag。在STEP1中,构造特定字符串覆盖内存达到目标。在STEP2中,发现strcpy函数的漏洞,通过精心设计的输入覆盖限制长度的变量,从而调用特定函数获取flag。博客以C语言编写了实现这一过程的代码。
摘要由CSDN通过智能技术生成

协会平台更新了。放一篇writeup

一道pwn的简单题目,主要练练栈溢出。

STEP1:

nc连接上去之后是3个选项。其中1,2都有字符串的输入。先丢ida分析。
根据一些字符串的输出理清函数的调用关系。先来step1.
提示输入字符串(不限长度的)然后rol13加密。重点是如下的分支跳转。

.text:0804891E 09C                 cmp     [ebp+var_D], 5Ch             ; <-比较[esp+var_D]与5Ch。成功这调用函数打印flag。
.text:08048922 09C                 jnz     short loc_8048956
.text:08048924 09C                 sub     esp, 0Ch 
.text:08048927 0A8                 push    offset aCongratulation        ; "Congratulations you've got the point!"
.text:0804892C 0AC                 call    _puts         
.text:08048931 0AC                 add     esp, 10h    
.text:08048934 09C                 sub     esp, 0Ch     
.text:08048937 0A8                 push    offset aGiveYouWhatYou       ; "Give you what you want:"
.text:0804893C 0AC                 call    _puts     
.text:08048941 0AC                 add     esp, 10h    
.text:08048944 09C                 sub     esp, 0Ch 
.text:08048947 0A8                 push    offset file                  ; "flags/step1"
.text:0804894C 0AC                 call    sub_80486AB                  ; <-打印flag的函数。参数是flags/step1
.text:08048951 0AC                 add     esp, 10h  
.text:08048954 09C                 jmp     short loc_8048966 ; Jump
.text:08048956     ; ---------------------------------------------------------------------------
.text:08048956
.text:08048956     loc_8048956:                                         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值