Wargame Site/Pwnable.kr
-
Pwnable.kr #5 cmd2Wargame Site/Pwnable.kr 2019. 4. 11. 12:44
'CMD1' 과 같은 방법으로 접근하는 문제일 것 같다는 생각이 들었다. other 의 권한으로 접근할 수 있는 것은 cmd2.c 의 소스보기와 cmd2 의 실행권한이고, cmd2 에 group 에 setGUID 가 설정되어있는 것을 토대로 flag 의 파일을 읽어오는 문제이다. 형식은 비슷하지만, 이전 문제보다는 좀 더 필터링이 많아진 것을 한눈에 알 수 있었다. 그 중 가장 절망적이었던 것은 '/' 였다.... "\$[ 명령어 ]" 의 형태를 취했을 때 '/' 를 사용할 수 있는 것을 알 수 있다. 루트 디렉터리로 이동한 뒤 /bin/sh 명령어를 작동시키니 문제를 해결할 수 있었다. 우선 CMD1 과 같은 방식의 접근으로 해결해보았다. 아래는 sh 을 열어서 확인하는 방법이다.
-
Pwnable.kr #4 cmd1Wargame Site/Pwnable.kr 2019. 4. 9. 15:59
다음으로 접근한 문제는 "CMD1" 이었다. 우선 자아정체성부터 찾자 'ls -l' 를 통해 하위목록을 확인해보니 전형적인 Pwnable 문제의 구조같았다. other 의 권한으로 접근할 수 있는 것은 cmd1.c 의 소스보기와 cmd1 의 실행권한이고, cmd1 에 group 에 setGUID 가 설정되어있는 것을 토대로 flag 의 파일을 읽어오는 문제이다. 소스안에서 putenv 의 PATH 를 통해 환경변수를 설정한 것을 알 수 있었다. 하지만, 딱봐도 저런 디렉터리는 없을 것 같다. 역시나 없다. 그렇다면 어떻게 접근해야할까? 우선 우리가 'cat', 'ls' 라는 명령어를 입력했을 때 일어나는 일을 이해해볼 필요가 있다. 명령어의 위치를 살펴보기 위해 'which ls', 'which cat'..
-
Pwnable.kr #3 bofWargame Site/Pwnable.kr 2019. 3. 8. 21:39
3 단계 문제 bof 이다. 이번엔 netcat 을 통한 접근인 듯 하다.우선 bof.c 에 대한 소스 코드를 살펴보자! wget http://pwnable.kr/bin/bofwget http://pwnable.kr/bin/bof.c 를 통해 실행파일 및 소스코드를 다운 받았다. gdb 를 활용했다. (gdb bof)그 뒤 intel 방식으로 바꿔준뒤, func 함수의 내용의 어셈블리 표현을 볼 수 있었다.주목해야할 부분은 gets 함수와 key 값의 위치이다. gets 함수는 에 있으며, 그 인자는 ebp-0x2C 에 있는 것을 알 수 있으며,key 와 카페 베이베를 비교하는 부분은 에서 확인할 수 있다.key 의 위치가 ebp+0x8 인 것을 확인할 수 있다. 결국 ebp - 0x2C ( 44 (-0..
-
Pwnable.kr #2 collisionWargame Site/Pwnable.kr 2019. 2. 24. 22:19
분야는 다르지만, pawnable.kr 이 los 보다 어려운 것 같다. 이번에도 ssh 를 이용한 접근이다. 우선 현재 접속한 계정정보를 알아보도록하자. 'ls -l' 의 결과 다음과 같은 결과가 나왔고, 1 단계 문제와 마찬가지로 col 파일의 실행, 읽기 권한과 col.c 의 읽기 권한이 있는 것을 알 수 있다. col.c 의 코드는 다음과 같았다. 우선 인자를 넘겨주어야 한다는 점, 그리고 인자의 길이가 20 이여야 한다는 점 그리고 check_password ( 인자 ) 의 결과가 hashcode 와 같아야 한다는 제약조건이 있었다. hashcode 의 값은 0x21DD09EC 이고, 분석을 해보니 20 개의 char 를 int 를 가르치는 포인터로 변환했다. 그럼 기존의 char 들의 hex ..
-
Pwnable.kr #1 fdWargame Site/Pwnable.kr 2019. 2. 24. 13:31
이번엔 SQL Injection 이 아닌 System 쪽이다 !! 너무나도 유명유명한 Pwnable.kr 을 풀어보려한다. ssh 로 접근하여 푸는 문제들이 대부분인 것 같았다. 일단 접근한 계정 정보를 파악해보자.user, group 권한이 모두 fd 로 되어있었다.그리고나서, 파일들의 정보를 보기위해 'ls -al' 를 입력하였다. ls 로 파일들을 보니 fd 의 권한으로는 fd 의 실행권한, other 를 통한 fd.c 의 읽기 권한이 있는 것을 확인할 수 있었다. fd 의 소스코드로 추정되는 fd.c 를 우선 읽어보았다. 우선 처음보는 read 라는 함수를 이해하는 것이 필요했다. man read 를 통해 기본적인 파라미터를 파악한 뒤, 이중 fd(file descriptor) 에 대한 이해가 필..