본문 바로가기

Wargame/Lord Of Buffer overflow

[LOB] 9번 troll -> vampire











id : troll

password : aspirin


로그인 후 vampire.c 코드를 보면 다음과 같다.










이번 문제는 리턴 어드레스의 주소의 끝에서 두번째가 0xff이면 안되고


주소의 끝이 0xbf 이어야 문제가 풀린다.


스택에 값을 엄청 넣어주면 ff 부분이 다르게 바뀐다는 사실을 알게 되었다.









\xbf를 10만개 넣어줬더니 0xff 부분이 0xfe로 바뀐 것을 확인할 수 있다.







NOP(44) + RET(4) + NOP(10만) + 쉘코드(25) + NOP(4)


이렇게 넣어주면 NOP sled를 통해 쉘코드가 실행된다.


my-pass를 통해 비밀번호를 알아냈다.





'Wargame > Lord Of Buffer overflow' 카테고리의 다른 글

[LOB] 11번 skeleton -> golem  (0) 2017.11.19
[LOB] 10번 vampire -> skeleton  (0) 2017.11.17
[LOB] 8번 orge -> troll  (0) 2017.11.16
[LOB] 7번 darkelf -> orge  (0) 2017.11.14
[LOB] 6번 wolfman -> darkelf  (0) 2017.11.07