HanJeouk의 개인공부 블로그

문제의 코드를 보면 getenv라는 함수의 값을 variable에 저장하고 나중에 strcpy 함수를 이용해 buffer에다가 variable 값을 저장한다. 아마 여기서 취약점이 발생할 것 같은데 환경변수에다가 코드를 짜서 나중에 버퍼에 복사되었을 때 버퍼 값이 꽉 채워지고 그 다음에 0x0d0a0d0a도 넣어준다면 BOF가 되어 modified 값에 들어가서 성공할 수 있을 것이다.

그냥 코드를 써 넣는다면 bad variable name 이라고 뜰 것이다. 그래서 나는 문자열로 받게 코드 사이에 ""을 추가했다. 이게 맞겠지? 

성공하면

ㅎㅎ 끝

 

'Wargame > Protostar' 카테고리의 다른 글

Protostar Stack5  (0) 2017.04.05
Protostar Stack4  (0) 2017.04.02
Protostar Stack3  (0) 2017.04.01
Protostar Stack1  (0) 2017.03.22
Protostar Stack0  (0) 2017.03.20



이 문제는 strcpy 함수의 취약점을 이용해 버퍼의 메모리를 overflow 하여 modified 변수 값을 수정하는 문제 같다.

그래서 스크립트를 짜봤다. 리틀엔디안으로 주소를 넣어야한다아.

통과~ 보다가 틀린게 있으면 피드백 좀...

'Wargame > Protostar' 카테고리의 다른 글

Protostar Stack5  (0) 2017.04.05
Protostar Stack4  (0) 2017.04.02
Protostar Stack3  (0) 2017.04.01
Protostar Stack2  (0) 2017.03.29
Protostar Stack0  (0) 2017.03.20

다시 블로그에 글을 포스팅 시작할 것이다. FTZ Level 시리즈는 12까지 풀어보고 별로인 것 같아서 protostar로 넘어갔다.

우선 문제를 보면

gets(buffer)에서 버퍼오버플로우 취약점이 생기는데 그것을 이용하는 문제인 것 같다.

그래서 버퍼 값에 64를 넘겨주면 you have changed thr 'modifiedl' variable이라는 문구가 나오는 것 같다.


역시 버퍼 값에 65개를 넣어줬더니 예상한 문구가 나왔다. 

'Wargame > Protostar' 카테고리의 다른 글

Protostar Stack5  (0) 2017.04.05
Protostar Stack4  (0) 2017.04.02
Protostar Stack3  (0) 2017.04.01
Protostar Stack2  (0) 2017.03.29
Protostar Stack1  (0) 2017.03.22

training10은 SetUID에 대해서 공부했다. training10은 Level1 푸는데 중요한 역할을 했던 것 같다.

이렇게 FTZ training은 끝이다. 다음에는 FTZ Level 시리즈를 올릴 것이다.

출처: http://hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=file&select_arrange=hit&desc=desc&no=1414

'Linux > HackerSchool FTZ' 카테고리의 다른 글

FTZ training9  (0) 2017.03.05
FTZ training8  (0) 2017.03.05
FTZ training7  (0) 2017.03.05
FTZ training6  (0) 2017.03.03
FTZ training5  (0) 2017.03.02


training9는 리눅스 권한에 대해서 배운다.

출처: http://hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=file&select_arrange=hit&desc=desc&no=1414


training9,10은 많이 중요하다고 느낀다.

'Linux > HackerSchool FTZ' 카테고리의 다른 글

FTZ training10  (0) 2017.03.05
FTZ training8  (0) 2017.03.05
FTZ training7  (0) 2017.03.05
FTZ training6  (0) 2017.03.03
FTZ training5  (0) 2017.03.02

training8에서는 일반 텍스트 파일 만들기와 프로그램 짜기를 다뤘다.

출처: http://hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=file&select_arrange=hit&desc=desc&no=1414


FTZ training 중에서 가장 신기했었다.

'Linux > HackerSchool FTZ' 카테고리의 다른 글

FTZ training10  (0) 2017.03.05
FTZ training9  (0) 2017.03.05
FTZ training7  (0) 2017.03.05
FTZ training6  (0) 2017.03.03
FTZ training5  (0) 2017.03.02


다른 공부를 위해 복습을 간략하게 하려고 한다. 블로그에도 간략히 오늘처럼 올릴 것이다. training7은 파일 압축과 해제를 다룬 내용이다.

http://hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=file&select_arrange=hit&desc=desc&no=1414 


여기 링크로 들어가면 FTZ 6~10 까지 간략하게 되어있다. 간략하게 볼 때 좋은 것 같다.

'Linux > HackerSchool FTZ' 카테고리의 다른 글

FTZ training9  (0) 2017.03.05
FTZ training8  (0) 2017.03.05
FTZ training6  (0) 2017.03.03
FTZ training5  (0) 2017.03.02
FTZ training4  (0) 2017.02.26

training6는 trainig5에서 말했던 것처럼 passwd 파일 분석을 다룬다. ㄱㄱ


우선 cat /etc/passwd 로 passwd 파일을 열어보면


우선 passwd 파일의 역할을 먼저 보면

알아두자.

이제 passwd 파일 중에서 하나를 가져와 보면

이제 이 문자열 한 줄을 정리할 것이다.

root: 서버에 로그인할 때 사용되는 아이디를 말해준다.


x: x는 원래 비밀번호가 있는 자리였는데 전에는 암호화 방식을 사용했지만 해커들이 암호화 방식을 계속

뚫자, 결국 암호화 대신 etc/shadow 파일에 패스워드만 모아서 저장했다. 그래서 shadow 파일은 관리자 권한을 가진 사람만  볼 수 있도록 만들어졌다.


첫 번째 0: 사용자 계정 uid를 나타낸다.


두 번째 0: 사용자 계정 gid를 나타낸다


Admin: 사용자의 이름을 나타낸다.


/root: 사용자가 로그인에 성공 했을 때 기본으로 위치하게 되는 디렉토리다.(사용자 계정 홈 디렉토리)


/bin/bash: 사용자가 처음 로그인 했을 때 실해되게 할 프로그램.(로그인 쉘)


training6는 여기까지다.



'Linux > HackerSchool FTZ' 카테고리의 다른 글

FTZ training8  (0) 2017.03.05
FTZ training7  (0) 2017.03.05
FTZ training5  (0) 2017.03.02
FTZ training4  (0) 2017.02.26
FTZ training3  (0) 2017.02.26

training5에서는 서버정보 수집에 대해 배웠다.


1. whoami

whoami는 자신의 아이디를 보여준다.


2. id

id는 whoami보다는 조금 더 자세하다고 기억하자 나중에 자제히 설명이 나온다(trainer9).


3. cat /etc/passwd

사용자들의 모든 ID들이 저장되어있는 passwd 파일을 열었다. 설명은 training6에서 나온다.


4. root 권한

root에 관하여 알아두자!


5. 패키지

패키지도 알아둬야 할 것 같다.


6. cat /etc/*release


이 명령어들을 입력함으로써 서버의 OS 버젼을 알 수 있다.


7. rpm -qa

rpm -qa는 패키지들을 보여주는 명령어인 것 같다.


8. cat /proc/cpuinfo

cat /proc/cpuinfo  명령어를 사용해서 cpu의 버전 등 정보를 얻었다.


9. cat

training5 에서 cat 이라는 명령어를 봤을 것이다. cat "파일이름" 을 입력하면 파일의 내용을 화면으로 보여주는 명령어다. 많이 쓰일테니 잘 알아둬야겠다.

training5는 여기까지다


'Linux > HackerSchool FTZ' 카테고리의 다른 글

FTZ training7  (0) 2017.03.05
FTZ training6  (0) 2017.03.03
FTZ training4  (0) 2017.02.26
FTZ training3  (0) 2017.02.26
FTZ training2  (0) 2017.02.19

training 4에서는 디렉토리 설명과 간단한 퀴즈가 진행된다.


1. 디렉토리 설명


training은 디렉토리만 다루는 내용이라 딱히 올릴만한 사진이 없었다. 

training 4는 여기까지다.

'Linux > HackerSchool FTZ' 카테고리의 다른 글

FTZ training6  (0) 2017.03.03
FTZ training5  (0) 2017.03.02
FTZ training3  (0) 2017.02.26
FTZ training2  (0) 2017.02.19
FTZ training1  (0) 2017.02.19