Hackerschool FTZ의 Level 19 풀이입니다. 18번 코드와 비교하면 너무나도 짧네요.. ㅋㅋ 하지만 자세히 보면 setreuid 함수가 없습니다. level 20의 uid를 'cat /etc/passwd | grep level20' 명령어로 확인해보니 3100이 나왔습니다. 그러니 기존의 쉘코드 앞에 setreuid(3100,3100);를 추가하면 될 것 같습니다. buf부터 ret까지의 거리는 0x100000000+4-0xffffffd8=44이므로 44입니다. 그럼 이제 setreuid(3100,3100);를 추가한 쉘코드를 환경변수에 등록하고 주소를 알아내겠습니다. 이제 공격 코드를 만들어서 넣어주면.. Password : we are just regular guys
Hackerschool FTZ의 Level 18 풀이입니다. 이번에는 코드가 엄청나게 깁니다.. shellout 함수를 실행시키면 될 것 같습니다. 그러려면 check 값을 0xdeadbeef로 만들어야 하는데 check에 값을 입력하는 부분이 없습니다. 그러므로 char string[100]; 보다 더 작은 주소에 있는 check에 접근하기 위해서 case 0x08: count--; printf("\b \b"); break; default: string[count] = x; count++; break; 위 코드를 이용해서 0x08로 4byte 뒤로 이동해서 check에 값을 넣어주면 됩니다. Password : swimming in pink
Hackerschool FTZ의 Level 17 풀이입니다. 16번 문제와 유사하지만 이번에는 shell 함수가 보이지 않습니다. 직접 shell을 실행시켜주는 코드를 작성해야 할 것 같습니다. 16번 문제와 shell 함수가 없다는 것만 빼고는 똑같기에 이번에도 40개의 문자를 앞에 넣어주면 됩니다. 이제 직접 쉘코드를 환경변수로 등록하고 shell 코드의 주소를 알아보겠습니다. 이제 공격 코드를 작성해서 넣어주면.. Password : why did you do it
- Total
- Today
- Yesterday
- Programming
- c++
- Level 02
- Advance RCE
- Basic RCE
- hackerschool
- pwnable
- C#
- Level 05
- xcz.kr
- 멘토링
- Unity
- Write-up
- HackingCamp
- Level 04
- 안드로이드
- Level 01
- 풀이
- 유니티
- Level 06
- 안드로이드 멘토링
- Level 03
- 17th HackingCamp CTF
- Android
- wargame
- ftz
- reversing.kr
- unity2d
- CodeEngn
- Reversing
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |