전체 글 (34) 썸네일형 리스트형 [ARM] exploit_RTL ASLR이 꺼진 환경에서 가능한 exploit이다. buf에 128byte를 넣고 더미 데이터 4byte "bbbb"를 넣어준다음에 gop gadget으로 jump를 해준다. 처음 jump를 해줄 곳은 0x76e9ad44의 주소이다. pop {r4, pc}를 하면 r4에 (/bin/sh의 주소 -6byte)를 넣어 주고 pc에는 0x76e9ad40의 주소를 넣어준다. 그러면 r4=&(/bin/sh)-6 이되고 pc=0x76e9ad40 이므로 add r0, r4, #6으로 jump를 할 것이다. 이때 r4=&(/bin/sh)-6이므로 add r0, r4, #6의 명령어로 인해 r0=/bin/sh의 주소가 들어갈 것이다. 그런다음 다시 pop {r4, pc}명령어가 실행이 되는데 이때 r4에는 더미 값을 넣.. [ARM] exploit_ROP ROP의 가장 기본적인 예시이다. ROP를 해주기 위해선 system함수의 offset과 필요한 가젯들을 찾는 것이다. 과정은 다음과 같이 해야한다. 1. write함수로 read 함수의 실제 주소를 얻는다. 2. read함수로 system함수의 offset을 연산하여 system 함수의 실제 주소를 구한다. 3. read함수로 .bss영역에 "/bin/sh"문자열을 저장한다. (끝에 \x00을 붙여 문자열의 끝을 알린다.)--->read(0,&bss,0x8) 4. read함수로 write함수의 got에 system함수의 실제주소 저장. 5. bss영역의 주소를 인자로 write의 plt를 호출 하지만 실질적으로는 system함수 호출 ida로 write의 plt 부분과 got부분 ,read의 plt부분.. 이전 1 2 3 4 5 다음