티스토리 뷰

Write Up/pwnable.kr

pwnable.kr)shellshock

PORORIRI 2019. 4. 2. 08:52
반응형

오늘 풀이할 문제는 [Toddler's Bottle]에 있는 ShellShock이다.

Shellshock에 관한 자세한 내용은 아래에 내가 정리 해둔 링크를 참고 하면 된다.

https://pororiri.tistory.com/30

 

취약점)Shellshock_bash쉘 취약점

쉘 쇼크 취약점에 대해 공부를 해 본 내용을 정리 해 보고자 한다. 글 쓰다가 중간에 거의 다 쓴 글이 날아가서 매우 화가 나는데 정신 차리고 다시 정리 해 보겠다. ShellShock(CVE-2014-6271) 는 2014년에 발견..

pororiri.tistory.com

위 글에서도 말했듯 shellshock는 배쉬쉘 취약점으로 환경변수에서 함수 선언 후의 명령문을 배쉬에서 함수를 등록하는 과정에서 실행되는 취약점으로 간단하지만 치명적인 취약점이다.

 

 

주어진 서버로 접속해보면, bash, flag, shellshock 실행파일, shellshock.c 파일이 있다.

 

 

shellshock.c 의 소스코드는 위와 같다. 이때 shellshock 프로그램은 이 폴더 경로에 있는 bash 를 실행 시키고 이 bash가 바로 shellshock 취약점이 있는 배쉬라는 것을 알 수 있다.

 

 

-export,  env

리눅스 환경변수는 명령문은 export와 env 두개가 있다.

 env : 환경변수를 보여주거나, 설정 혹은 삭제하는 명령, export : 쉘변수를 환경변수로 변경해주는 명령.

env를 실행하면 선언한 환경변수 선언과 동시에 현재 있는 환경변수 목록을 보여주고, export는 선언만 한다.

따라서 두개의 명령어 다 shellshock을 일으 킬 수 있다.

 

 

 

 

함수를 선언 해줄 때는 함수이름='()한칸띄우고{한칸띄우고 실행할 명령;};띄우고 배시에서 실행할명령' 으로 선언 해줘야 한다. 띄우는 공백이 매우 중요한데 이 공백을 지키지 않으면 아무리 익스플로잇을 해도 제대로 함수 선언이 되지 않아 실패 하게 된다!

 

반응형
Comments
댓글쓰기 폼