티스토리 뷰
오늘 풀이할 문제는 [Toddler's Bottle]에 있는 ShellShock이다.
Shellshock에 관한 자세한 내용은 아래에 내가 정리 해둔 링크를 참고 하면 된다.
https://pororiri.tistory.com/30
위 글에서도 말했듯 shellshock는 배쉬쉘 취약점으로 환경변수에서 함수 선언 후의 명령문을 배쉬에서 함수를 등록하는 과정에서 실행되는 취약점으로 간단하지만 치명적인 취약점이다.
주어진 서버로 접속해보면, bash, flag, shellshock 실행파일, shellshock.c 파일이 있다.
shellshock.c 의 소스코드는 위와 같다. 이때 shellshock 프로그램은 이 폴더 경로에 있는 bash 를 실행 시키고 이 bash가 바로 shellshock 취약점이 있는 배쉬라는 것을 알 수 있다.
-export, env
리눅스 환경변수는 명령문은 export와 env 두개가 있다.
env : 환경변수를 보여주거나, 설정 혹은 삭제하는 명령, export : 쉘변수를 환경변수로 변경해주는 명령.
env를 실행하면 선언한 환경변수 선언과 동시에 현재 있는 환경변수 목록을 보여주고, export는 선언만 한다.
따라서 두개의 명령어 다 shellshock을 일으 킬 수 있다.
함수를 선언 해줄 때는 함수이름='()한칸띄우고{한칸띄우고 실행할 명령;};띄우고 배시에서 실행할명령' 으로 선언 해줘야 한다. 띄우는 공백이 매우 중요한데 이 공백을 지키지 않으면 아무리 익스플로잇을 해도 제대로 함수 선언이 되지 않아 실패 하게 된다!
'Write Up > pwnable.kr' 카테고리의 다른 글
pwnable.kr)mistake_연산자 우선 순위 (2) | 2019.04.05 |
---|---|
pwnable.kr)flag_리눅스 upx 언패킹 (2) | 2019.03.31 |
pwnable.kr)bof_버퍼오버플로우 (2) | 2019.03.29 |
pwnable.kr)cmd2_command함수_필터우회 (0) | 2019.03.25 |
pwnable.kr)cmd1_리눅스 환경변수_strstr() (2) | 2019.03.25 |
- Total
- Today
- Yesterday
- 모바일리버싱
- writeup
- Java
- pwnable.kr
- NumberFormatException
- 리버싱기초
- 스프링부트
- 포너블.kr
- DataBinding
- 에러
- 코드로 배우는 스프링 부트
- 펌웨어 분석
- 안드로이드
- 정보보안
- AndroidX
- Spring
- 자바
- 리버싱.kr
- 동적분석
- 뷰모델
- MVVM
- exception
- 웹 MVC
- CTF
- 앱분석
- reversing.kr풀이
- androidstudio
- reversing.kr
- Android
- 칼리리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |