Level14로 로그인하고 hint를 확인해 줍시다.

fgest를 통해 사용자로부터 입력을 45개 만큼 받아오고, check부분이 0xdeadbeef라면 조건을 통과해 level15권한의 쉘을 띄워주는 코드네요.

 

어셈블리어 코드를 한번 확인해 봅시다.

56byte 만큼의 스택을 잡고, 4byte를 추가로 잡아주네요.

Fgest를 통해 받아온 입력값은 ebp-56에 저장이 되구요.

Ebp-16deadbeef라면 조건을 통과하네요.

필요한 정보는 다 획득한 듯 싶습니다.

스택을 그려보면 다음과 같이 됩니다.

dummy (4byte)

crap (4byte)

dummy (4byte)

check (4byte)

dummy (20byte)

buf (20byte)

Buf에 값을 입력해서 40byte를 채우고 check0xdeadbeef를 입력하면 끝나네요.

Fgest도 딱 맞춰서 45자를 입력받고 있습니다. 44가 아니고 45인것은 뒤에 개행문자 1byte가 포함 되기 때문입니다.

 

40개의 A0xdeadbeef를 넣어주도록 하겠습니다.

어렵지 않게 level15의 쉘을 획득할 수 있었네요.


level15의 암호는 guess what입니다.

+ Recent posts