- Today
- Total
목록Pwnable/ARM, MIPS (3)
Phantom
2013 Incognito pdf 파일 안에 나와있는 예제이다. 오늘은..이걸 풀거다. 슬슬 감이 잡히기 시작한다. 좀 더 분석이 자세해졌지만 아직 부족함이 많다. 취약점은 strcpy에서 나고 결정적인 공격은 strcpy를 통해 ebp처럼 행동하는 r11의 값을 변조해서 gotashell 함수에 들어가게 하면 된다. 난 A를 20개를 입력했고 vuln함수에서 Buffer로 16바이트를 줬다(빨간색). 그리고 노란색이 취약점 부분이며, pop에서 r11의 주소흐름을 바꿔야 한다. 파란색은 r11이다. 그렇다면 먼저 gotashell 함수 주소를 구하고 A*16 + gotashell 주소를 붙여주면 vuln 함수가 pop 하면서 gotashell로 이동할 거다. 주소 획득 실행 및 확인. strcpy이전엔..
이번에 해볼 소스는 이것이다. LOB 1번 gremlin 문제인데 진짜 qemu vi 너무 불편하다 화면이 깨끗이 안지워짐 VIM도 마찬가지 ㅂㄷㅂㄷ 디스어셈블하면 다음처럼 보인다. 한줄 한줄 해석은 했고 이걸 이제 다시 소스화 시켜보자. ARM의 Calling Convention은 다음과 같다. Refer - 2013 Incognito ARM exploit R0 ~ R3순서대로 인자 저장 인자가 4개 이상일시 스택을 사용 함수 리턴 값 반환은 R0레지스터를 사용 BL명령으로 호출시 리턴주소는 LR에 저장 r3+#0에 r0값 저장 r0에는 0x2가 있었고 r3+0 에 들어갔다. r3+#0에 r1 저장 r3에는 r7의 값이 저장되어 있었다. r3+0 지점에 r1의 값(0x7efffdf4)를 넣는다. 그리고..
Arm 공부에 앞서.... qemu로 Arm을 구동하기 위해 구동법부터 적겠다. sudo apt-get install qemu wget https://people.debian.org/~aurel32/qemu/armhf/debian_wheezy_armhf_standard.qcow2 wget https://people.debian.org/~aurel32/qemu/armhf/initrd.img-3.2.0-4-vexpress wget https://people.debian.org/~aurel32/qemu/armhf/vmlinuz-3.2.0-4-vexpress 실행 방법 qemu-system-arm -M vexpress-a9 \ -kernel vmlinuz-3.2.0-4-vexpress \ -initrd init..