Mommy, there was a shocking news about bash.
I bet you already know, but lets just make it sure :)
ssh shellshock@pwnable.kr -p2222 (pw:guest)
#include <stdio.h>
int main(){
setresuid(getegid(), getegid(), getegid()); //ruid(실재 사용자realuser), euid(유효사용자effectiveuser), suid(파일 소유자setuser)를 getegid()(egid)로 세팅
setresgid(getegid(), getegid(), getegid());
system("/home/shellshock/bash -c 'echo shock_me'");
return 0;
}
일단 코드는 되게 짧네요
이걸 이용해서 flag를 따야하는데.. getegid()가 많이 나오므로 plt를 조작하는 건가 생각하면서 삽질좀 하다가
'
shellshock가 단순히 문제 이름이 아니라 bash의 취약점이라는 사실을 알게되었다.
CVE-2014-6271이라 불린다고 한다.
자세한 설명은 http://blog.naver.com/PostView.nhn?blogId=renucs&logNo=220144713558
shellshock 취약점 진단을 해보니 취약하다는 결과가 나왔다.
이는 bash에서 함수의 정의를 환경변수로 저장하기 때문에 나오는 취약점인데, 함수의 정의 (){return;}후에 원하는 명령어를 넣어주면 bash가 이 함수 정의를 import할때 뒤의 명령어도 함께 실행시켜준다.
예전에 이 취약점으로 떠들석 햇다고 한다. 지금은 리눅스 버전을 update만 하면 공격이 통하지 않는다.
'war game > pwnable.kr' 카테고리의 다른 글
pwnable.kr cmd1 1pt (0) | 2016.10.11 |
---|---|
pwnable.kr lotto 2pt (0) | 2016.10.11 |
pwnable.kr blackjack 1pt (0) | 2016.10.11 |
pwnable.kr coin1 6pt (0) | 2016.10.11 |
pwnable 1pt mistake (0) | 2016.10.10 |