Phantom

ARMv3 Incognito 2013 GotaShell 본문

Pwnable/ARM, MIPS

ARMv3 Incognito 2013 GotaShell

Ph4nt0m_ 2018. 7. 6. 13:48
반응형


2013 Incognito pdf 파일 안에 나와있는 예제이다. 오늘은..이걸 풀거다.



슬슬 감이 잡히기 시작한다. 좀 더 분석이 자세해졌지만 아직 부족함이 많다.


취약점은 strcpy에서 나고 결정적인 공격은 strcpy를 통해 ebp처럼 행동하는 r11의 값을 변조해서 gotashell 함수에 들어가게 하면 된다.


난 A를 20개를 입력했고 vuln함수에서 Buffer로 16바이트를 줬다(빨간색). 그리고 노란색이 취약점 부분이며, pop에서 r11의 주소흐름을 바꿔야 한다. 파란색은 r11이다.

그렇다면 먼저 gotashell 함수 주소를 구하고 A*16 + gotashell 주소를 붙여주면 vuln 함수가 pop 하면서 gotashell로 이동할 거다.

주소 획득


실행 및 확인.
strcpy이전엔 0x84f8이 들어 있었고 함수 실행 후 0x8468로 변조 됐다.

0x84f8 은 main으로 돌아가는주소, 0x8468은 GotaShell의 주소다.


sp는 입력값의 마지막 4바이트 부분을 가리키고 pc는 GotaShell을 가리킨다.


분석 성공 흐름이 바뀌었다.

반응형

'Pwnable > ARM, MIPS' 카테고리의 다른 글

ARMv2 Hand-ray  (0) 2018.07.05
ARMv1  (0) 2018.07.04
Comments