shellcode

System Hacking Advanced

[dreamhack] shell_basic

쉘코드를 작성하는 문제다. execve(), execveat()처럼 쉘을 실행하는 함수는 사용할 수 없다. 문제 의도는 다른 함수를 이용해서 flag를 읽을 수 있도록 쉘코드를 작성하는 것이 목표다. 설명에서 flag 파일 위치를 절대경로로 알려주고 있다. 일반적인 쉘코드는 execve("/bin/sh", ..., ...) 처럼 쉘을 실행하는 유형이 대부분이다. 그러나 execve()를 사용할 수 없는 상황이므로 일반적인 쉘코드를 사용해서 쉘을 획득하는 것은 불가능하다. 그렇다면, flag를 어떻게 획득할 수 있을까? 목표는 쉘을 실행하는 것이 아니라 flag를 획득하는 것이다. 그렇다면, execve()를 사용하지 않고 read(), write()로 flag를 읽는 방식으로 접근해볼 수 있다. read..

ftz

[ftz] level11

문제분석#include #include int main( int argc, char *argv[] ){ char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str );}○ 코드 분석1) str[256] 선언2) setreuid()를 통해 level12의 권한으로 설정3) argv[1]을 받고 str[256]에 복사4) str[256] 출력 level12 권한으로 설정 후 argv[1]을 str[256]에 복사하고 있다. 복사하는 과정에서 argv[1]에 대한 검증이 없다. 따라서 argv[1]을 이용해서 버퍼 오버플로우 공격을 수행할 수 있다. 디렉토리의 파일들을 확인해보면 attackme라는 level12의 setuid ..

keyme
'shellcode' 태그의 글 목록