Chaining RTL
-
[FTZ Level19 풀이]System/FTZ 2018. 2. 17. 01:20
[Level19 Code]12345678#include void main(){ char buf[20]; gets(buf); printf("%s\n",buf);} cs코드는 굉장히 심플하다.gets( )에서 BOF취약점이 발생하니까, 이 점을 이용해서 RTL공격으로 쉘을 따도록 하겠다.RTL에 대해서는 블로그에 정리해두었으니, 참고하길 바란다.[RTL 정리글] RTL공격을 하기 위해서는 System( )주소, /bin/sh의 문자열 위치, RET까지의 offset을 구해야 한다.우선 attackme가 사용하는 libc버전을 확인해보자 [ldd attackme]ldd명령어로 libc버전이 /lib/tls에 위치한 so.6버전임을 알아냈다.libc버전을 알아냈으니 이제 System( )와 /bin/sh의 문자..
-
[02-11 공부정리(Chaining RTL 정리)]공부정리 2018. 2. 11. 01:10
오늘은 protostar Stack6~7번을 풀었다.6번은 RTL을 7번은 Chaining RTL을 이용해서 풀었다.7번같은 경우는 ASLR이 걸려있는 상황이라면 ROP를 이용해야 하는 문제였다.내일은 ASLR이 걸려있는 상태라고 가정하고 ROP로 문제를 풀어볼 생각이다. 자 그럼 오늘 공부한 부분들을 정리하도록 하겠다. [Chaining RTL] RTL공격을 할때 System( )뒤에 dummy값으로 "AAAA"를 준 적이 있다.RTL 정리할 때도 말했지만 dummy값 부분은 의미없는 부분이 아니다.system( )가 끝나고 복귀할 주소가 저장되어 있는 공간이다.하지만, 우리는 /bin/sh을 따내면 그 뒤 상황은 어디로 복귀하던 상관이 없기에 "AAAA"라는 dummy값을 준 것이다. Chaining..