일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kotlin
- DART
- tabbar
- binding
- 테스트
- 계측
- scroll
- Dialog
- TEST
- Coroutines
- CustomScrollView
- Flutter
- viewmodel
- activity
- ScrollView
- data
- textview
- LifeCycle
- textfield
- drift
- 안드로이드
- Navigation
- Compose
- 앱
- livedata
- appbar
- 앱바
- Button
- intent
- android
- Today
- Total
목록리버싱/Hack Me (6)
Study Record
[패스워드] 단계 패스워드 level1 level1 level2 hacker or craker level3 can you fly? level4 suck my brain level5 what is your name? level6 what the hell level7 come together level8 break the world level9 apple level10 interesting to hack! level11 what!@#$? level12 it is like this level13 have no clue level14 what that nigga want? level15 guess what level16 about to cause mass level17 king poetic level18 why..
15단계 → 16단계 ※ 15단계(level15) 패스워드 : "guess what" ☞ 기초개념 - 버퍼 오버플로우 https://laustudy.tistory.com/65 - 버퍼 오버플로우 ㉮ hint 파일을 보니 fgets 함수에서 buf 의 크기는 20byte인데 표준 입력으로 45byte까지 쓸 수 있게 되어있다. 따라서 이 함수를 이용해서 버퍼 오버플로우 공격을 실행할 수 있다. 코드의 흐름을 보아 check 라는 포인터 변수의 값을 0xdeadbeef 로 바꿀 수 있다면 다음 단계의 계정으로 쉘을 실행시킬 수 있을 것이다. ※ attackme 의 코드부분으로 추측된다. ㉯ 버퍼 오버플로우 공격을 하기 전, check(포인터 변수)와 buf 배열 사이가 얼만큼 떨어져 있는지 확인해본다. at..
13단계 → 14단계 ※ 13단계(level13) 패스워드 : "have no clue" ☞ 기초개념 - 버퍼 오버플로우, 쉘코드, 에그쉘, 메모리 보호 기법 https://laustudy.tistory.com/65 - 버퍼 오버플로우 https://laustudy.tistory.com/73 - 에그쉘 https://laustudy.tistory.com/70 - 쉘코드 https://laustudy.tistory.com/69 - 메모리 보호 기법 ㉮ hint 를 확인해본다. # cat hint hint 내용은 /home/level13/attackme 의 내부 소스 코드인 것 같다. 소스 코드에서 strcpy() 함수로 인자값으로 받은 argv[1] 값을 buf 배열에 저장하는 과정에서 글자 제한을 두고 ..
11단계 → 12단계 ※ 11단계(level11) 패스워드 : "what!@#$?" 풀이 1. 포맷 스트링 ☞ 기초개념 - 포맷 스트링, 에그쉘, 쉘코드 https://laustudy.tistory.com/66 - 포맷 스트링 https://laustudy.tistory.com/73 - 에그쉘 https://laustudy.tistory.com/70 - 쉘코드 ㉮ hint 를 확인한다. # cat hint hint 의 내용을 보니 /home/level11/attackme 의 소스코드 내용으로 추정된다. printf() 함수를 포맷 스트링 공격에 취약한 방식으로 사용하고 있는 것 같다. ls 명령어를 통해 attackme 가 level12 계정으로 setuid 비트가 걸려있어 이 프로그램이 실행되는 동안에..
7단계 → 8단계 ※ 7단계(level7) 패스워드 : "come together" ☞ 기초개념 - 진법 전환 https://laustudy.tistory.com/63 ㉮ hint 를 본다. # cat hint ㉯ /bin/level7 을 실행해봤다. hint 를 생각해보면 2진수를 10진수로 바꿔야하고 패스워드는 가까운 곳에 있다고 했다. ㉰ "--_--_- --____- ---_-__ --__-_-" 가 "-"는 1 이고 "_" 는 0인 2진수 문자열이라고 생각해볼수도 있을 것 같다. # man ascii 구분 표기 예 아스키문자열 2진수(Bin) 1101101 1100001 1110100 1100101 10진수(Dec) 109 97 116 101 mate 16진수(Hex) 6d 61 74 65 ma..
1단계 → 2단계 ※ 1단계(level1) 패스워드 : "level1" ㉮ hint 를 확인한다. # cat hint ㉯ find 명령어로 소유자가 level2 이고 setuid 비트가 걸려있는 파일을 찾는다. # find -user level2 -perm -4000 2>/dev/null ㉰ /bin/ExecuteMe 를 실행시켜본다. # /bin/ExecuteMe 레벨2의 권한으로 한가지 명령어를 실행시킬 수 있다면 가장 강력한 명령어는 "bash" 이다. bash 명령어로 레벨 2의 쉘을 획득하여 패스워드를 확인해볼 수 있다. 2단계 → 3단계 ※ 2단계(level2) 패스워드 : "hacker or cracker" ㉮ hint 를 확인한다. # cat hint ㉯ find 명령어로 다음 단계(lev..