이번 소스이다 RTL기법으로 풀어야지 stack betrayed you도 간단히 피해갈 수 있을거같다.
FTZ와는 달리 LOB는 버전이 좀 낮아서 더미값이 없는거로 생각을해서 

gdb를 일단 보지 않고 진행했다.

ftz에서는 주로 에그쉘을 이용한뒤에 더미값을 채우고 공격하는 식으로 진행을햇었다. 이번에는 /bin/sh주소와 시스템 함수 주소를 이용해서 진행을 해보겠다.

먼저 시스템함수 주소를 구해야한다.
여태까지 해왔던거처럼 권한이 걸려있는 기본 bugbear에 실행을 시키려고 하면
권한이 없다면서 실패하기때문에
새롭게 파일을 만들어서 진행을 해야한다 .

오직 시스템 출력을 하기위한 gdb분석이기 때문에 별 다른 실행이라던가 

브레이크 포인트를 안잡아줘도 괜찮습니다.

또한 objdump를 이용해서 찾아보실수도있습니다

그 후에 /bin/sh를 찾아야 합니다 

shell = 부분에 system 함수의 주소를 넣어주셔야 합니다 .

이렇게 되면 RTL을 위한 기본 준비가 다 끝났습니다.

처음 코드에서 버퍼 40을 넣을 수 있는걸 확인했으니
A*40을 해주고 sfp[dummy4] + system의주소 + dummy[4] + /bin/sh의주소

systemp주소 이전에 dummy4를 넣어주는 이유는 sfp를 채우고 ret를 시스템의 주소로 채우기 위함입니다!
근데 왜 /bin/sh의 주소를 채우기 이전에 dummy의 값을 4만큼 넣어줘야 하는것이냐면 systemp 함수는 ebp+8에 있는 명령어를 실행시키기 때문입니다

관련이 있는 소스같다고 짐작을 해봅니다...

 권한을 휙득했습니다!

'해커스쿨 lob' 카테고리의 다른 글

LOB assassin  (0) 2016.05.13
LOB giant  (0) 2016.05.12
LOB darkknight  (0) 2016.05.11
LOB golem  (0) 2016.05.10
LOB skeleton  (0) 2016.05.05

+ Recent posts