본문 바로가기

WarGame/HackerSchool_LOB

HackerSchool LOB Level13

13번 문제이다.


일단 소스를 보면,

ret주소가 들어있는 부분에 bf이면 프로그램이 종료된다.

흠...일단 스택이 0xbfffxxxx로 시작하므로, 스택으로는 공격을 할 수 없다는 생각을 하였다.

그럼, 그 유명한 공유라이브러리를 사용하는 RTL인가?

공유라이브러리는 0x400xxxxx 어쩌구로 시작하는 주소인것 같다.

결국, 리턴주소를 공유라이브러리로 변경하면 될 것 같다.


일단, 공유라이브러리로 어떻게 공격하는지 좀 검색을 해 보았다.



RTL이란, (Return To Libc) 로,

쉘코드가 없이 공격을 하는 것이다.

리턴주소에 공유라이브러리의 system()함수나 execl()함수등의 주소로 변경하여 쉘을 불러오는 것이다.



d

메인에 브레이크를 걸고

실행을 한 후, p system 으로 시스템함수의 주소를 알 수 있다.


system함수 내에서 /bin/sh 이 들어간 주소를 찾아야 한다.

아래의 간단한 c코드를 짜서 주소를 찾는다




자, 이제 system함수의 주소(0x40058ae0)와

/bin/sh의 환경변수의 주소(0x400fbff9)도 구했다.



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





'WarGame > HackerSchool_LOB' 카테고리의 다른 글

HackerSchool LOB Level15  (0) 2014.08.23
HackerSchool LOB Level14  (0) 2014.08.20
HackerSchool LOB Level12  (0) 2014.07.31
HackerSchool LOB Level11  (0) 2014.07.31
HackerSchool LOB Level9  (0) 2014.07.30