본문 바로가기
시스템 해킹/LOB

golem

by sonysame 2016. 10. 30.


argv[1]의 41자를 복사해서 buffer에 넣는다.


이건 39자 A

 


이건 40자 A


이건 41자 A


sfp가 바뀌게 되는다.


마지막에 lev ret에서 무슨 일이 이루어지나??
lev = mov ebp esp 

  pop  ebp

ret = pop eip


esp에 바뀐 ebp가 들어가고,

pop이 이루어지니 esp+4 byte가 된 다음,

그 부분이 eip에 들어 가게 된다!!

프로그램 실행의 흐름을 바꿀 수 있게 된 것이다.


0xbffffd74에 A가 들어가기 시작했으니,,

0xbffffd70을 새로운 ebp에 넣으면,,, 

eip에 0xbffffd74가 들어가 쉘코드가 실행 되는것!!!



계속 바뀌는 빡치는 현상이 발생했지만,,

brute forcing을 하니 뚫렸다!


기분 짱 좋다!


하핫,,,내 풀이는 이상한 풀이였다.

ebp+4byte에 있는 곳의 주소가 eip에 들어가는 것이다.

그러니까 내가 한 것은, ebp+4byte가 아주 뒤에 있었고, 거기에서 이동한 곳이 뒤쪽에 있는 쉘코드가 된 것이다. 아주 우연히




argv[2]가 들어간 부분 대충: 0xbffff898


argv[2]의 주소를 계속 넣어줘서 거기에 걸리게끔

NONO
0xbfffffdc부분에 nop+쉘코드 들어가 있으므로 뚫리는 거임!!!!!

*


'시스템 해킹 > LOB' 카테고리의 다른 글

bugbear  (0) 2016.10.30
darkknight  (0) 2016.10.30
skeleton  (0) 2016.10.30
vampire  (0) 2016.10.30
troll  (0) 2016.10.30