#include <stdio.h>
int main(){
setresuid(getegid(), getegid(), getegid());
setresgid(getegid(), getegid(), getegid());
system("/home/shellshock/bash -c 'echo shock_me'");
return 0;
}
쉘쇼크라고 검색하면 자료가 많이 나온다.
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
나무위키에 나오는 취약성 확인 코드인데, vulnerable이 출력되면 안 된다.
환경변수로 함수를 선언하고, 이후에 bash까지 실행돼버리는 취약점이란다.
추가로 더 확인해보면, 환경변수로 함수 선언시 이후에 코드에 대해서 버려야 되는데,
확인하는 부분이 없고, 상당히 오랜 기간 존재했던 취약점이고 이슈가 된건 14년이라고...
엄청 이해가 잘 되진 않는다...
최근에는 보안패치가 이루어졌다니, 오래 전 시스템을 접하게 될 기회가 있다면
확인해볼만한 취약점인 것 같다.
상당히 강력해서 루트권한도 바로 탈취된다고 하고, 이미 한 번 취약했던 OS는
백도어가 있을 수 있으므로 그냥 포맷을 권장한단다.
'Pwnable.kr' 카테고리의 다른 글
Pwnable.kr [blackjack] (0) | 2019.05.01 |
---|---|
Pwnable.kr [coin1] (0) | 2019.05.01 |
Pwnable.kr [mistake] (0) | 2019.05.01 |
Pwnable.kr [leg] (0) | 2019.05.01 |
Pwnable.kr [input] (0) | 2019.04.30 |