HackerSchool LOB Level 15
Hacking/LOB(RedHat)

HackerSchool LOB Level 15




코드를 보자

※ No Stack  No RTL

스택영역과 라이브러리 영역에 코드를 올릴수가없다


풀이법은 RET에다 코드로서의(RET)을 넣는것이다.

어셈블리 RET은 

POP EIP

JMP EIP       로 이루어져있다.

해석해보자면 EIP를 POP한다음 EIP로 점프하는것이다.

RET에다가 어셈블리RET을 넣으면 RET이 실행되면서 안의 POP EIP가 실행되 주소가 +4 되고 +4된 주소로 점프한다.

우리는 환경변수에 코드를 올리고 공격해보겠다.


환경변수 test에 놉과 쉘코드를 올려준다.


getenv함수를 이용하여 환경변수 test의 주소를 구해준다.


gdb로 assasin을 복사한 assasi1을 열어 디스어셈블해주면 ret의 주소를 알수있다.

RET의 주소는 0x804851e  이다.


페이로드를 짜보자자면 ./assassin `python -c 'print "\x90"*44+"\x1e\x85\x04\x08"+"\xaf\xfc\xff\xbf"'`  이다.


비밀번호는 pushing me away이다.



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

HackerSchool LOB Level 17  (0) 2015.09.26
HackerSchool LOB Level 16  (0) 2015.08.29
HackerSchool LOB Level 14  (0) 2015.08.10
HackerSchool LOB Level 13  (0) 2015.08.05
HackerSchool LOB Level 12  (0) 2015.08.01