协会平台更新了。放一篇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: