๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Tried. Failed. Logged.
๐ŸดCTF/pwnable.kr

pwnable.kr - fd

by Janger 2023. 2. 16.
728x90

 

๋ฌธ์ œ๋ฅผ ํด๋ฆญํ•˜๋ฉด ssh๋ฅผ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์žˆ์œผ๋‹ˆ ๋ณต์‚ฌํ•ด์„œ cmd์—์„œ ์ž˜ ์ž…๋ ฅํ•œ๋‹ค. 

๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” (guest)

 

 

 

ํ˜ธ์ŠคํŠธ์— ์ ‘์†์„ ํ•˜๊ณ  ํŒŒ์ผ ๋ชฉ๋ก์„ ํ™•์ธํ•˜์˜€๋Š”๋ฐ ๋‚ด๊ฐ€ ์ฐพ๊ณ  ์‹ถ์–ด ํ•˜๋Š” flag๊ฐ€ ๋ณด์ธ๋‹ค. 

ํ•˜์ง€๋งŒ flag๋Š” fd_pwn์ด๋ผ๋Š” ์œ ์ €๋งŒ ์—ด์–ด๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๊ถŒํ•œ์ด ์„ค์ •๋˜์–ด ์žˆ์—ˆ์Œ(ํ˜„์žฌ ๋‚ด ์ด๋ฆ„์€ fd)

 

ํŒŒ์ผ๋“ค ์ค‘์—์„œ fd์—๋Š” setuid๊ฐ€ ์„ค์ •์ด ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋“œ๋ฏผ ๊ถŒํ•œ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒŒ ๊ฐ€๋Šฅํ•˜๋‹ค. 

๋งˆ์นจ fd์˜ ์†Œ์Šค ์ฝ”๋“œ๋กœ ๋ณด์ด๋Š” fd.c์˜ ๋‚ด์šฉ๋ฌผ์„ ์‚ดํŽด๋ณธ๋‹ค. 

 

fd.c์˜ ๋‚ด์šฉ๋ฌผ์„ ํ™•์ธํ•˜๋ฉด ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ ๋ฐ›๋Š”๋ฐ

 

int fd = atoi( argv[1] ) - 0x1234; <-- ๊ทธ๊ฑธ ์—ฌ๊ธฐ์— ๋Œ€์ž…์„ ํ•ด์„œ

len = read(fd, buf, 32); <-- ๋‹ค์‹œ read ํ•จ์ˆ˜์—๋‹ค ๊ฑด๋„ค์ฃผ์–ด์„œ

 

        if(!strcmp("LETMEWIN\n", buf)){
                printf("good job :)\n");
                system("/bin/cat flag");

์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๊ฒŒ ๋˜๋ฉด  ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค. 

 

์ดํ•ดํ•˜๊ณ  ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์ œ์˜ ์ด๋ฆ„์ธ fd(ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ)์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋‘˜ ํ•„์š”๊ฐ€ ์žˆ๋Š”๋ฐ, 

 

ssize_t read(int fd, void *buf, size_t nbyte); <- ์—ฌ๊ธฐ read ํ•จ์ˆ˜์— ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ fd ๊ฐ’์„ ๋ฐ›๋Š”๋ฐ 

์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ํ‘œ์ค€ ์ž…๋ ฅ์ธ 0๋ฒˆ์„ ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํ•œ๋‹ค. 

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ ์œ„๋กœ ๊ฐ€์„œ

int fd = atoi( argv[1] ) - 0x1234;

์—ฌ๊ธฐ์—๋Š” +0x1234 ์ฆ‰ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด 4660์„ ์ž…๋ ฅํ•ด์•ผ read ํ•จ์ˆ˜๋กœ ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. 

 

 

์ด๋ ‡๊ฒŒ 4660์„ ์ž…๋ ฅํ•˜๋ฉด ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š”๋ฐ ์—ฌ๊ธฐ์—๋‹ค "LETMEWIN"์„ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ(\n)๋ฅผ ์ณ์ค€๋‹ค. 

 

๊ทธ๋žฌ๋”๋‹ˆ flag์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•ด์คฌ๋‹ค. 

 

"mommy! I think I know what a file descriptor is!!"

 

 

 

์ฐธ๊ณ : 

https://minsoftk.tistory.com/40

 

open, close, read ํ•จ์ˆ˜์— ๋Œ€ํ•˜์—ฌ

ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :) ํ•จ์ˆ˜๋“ค์— ๊ณต๋ถ€ํ•˜๊ธฐ ์ „ ์‚ฌ์ „์ง€์‹ ํ•จ์ˆ˜๋“ค์— ๊ณต๋ถ€ํ•˜๊ธฐ์— ์•ž์„œ ํŒŒ์ผ๋””์Šคํฌ๋ฆฝํ„ฐ๋ผ๋Š” ๊ฐœ๋…์„ ๋จผ์ € ์ดํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฉด ์ข‹๋‹ค. ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ(File

minsoftk.tistory.com

 

728x90