Security

WebGoat를 도커 컨테이너에 올려 실습을 진행한 후 실습이 마무리 되어 종료하고 다시 실행할 경우에는 어떻게 다시 WebGoat 실습 환경으로 접속할 수 있을까? 그 방법에 대해 자세히 알아보고자 한다 1.1 명령어로 재실행우선 윈도우 파워쉘을 관리자 권한으로 열고, 명령어로 컨테이너를 재시작하기 위해서는 어떤 컨테이너를 가동할지 컨테이너 리스트를 확인해주어야 한다. docker ps : 컨테이너의 리스트를 불러오는 명령어docker ps -a : 종료된 컨테이너를 포함한 모든 컨테이너 리스트를 출력하는 명령어 가동할 컨테이너의 리스트를 확인했다면 'docker start [가동할 컨테이너의 ID 또는 이름]'으로 실행시킬 수 있다. 우리는 WebGoat를 실행시킬 것이기 때문에 'docker sta..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
본 실습에서는 카나리를 우회하고, 셸 코드와 Return Address Overwrite를 이용하여 셸을 획득하는 실습을 진행할 예정이다.📌 실습 예제 코드// Name: r2s.c// Compile: gcc -o r2s r2s.c -zexecstack#include #include int main() { char buf[0x50]; printf("Address of the buf: %p\n", buf); printf("Distance between buf and $rbp: %ld\n", (char*)__builtin_frame_address(0) - buf); printf("[1] Leak the canary\n"); printf("Input: "); fflush(stdout..
01 Stack Canary란?스택 카나리는 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에 임의의 값을 삽입하고, 함수의 에필로그에서 해당 값의 변조를 확인하는 보호 기법으로, 카나리 값의 변조가 확인되면 프로세스는 강제로 종료된다.  02 Canary의 작동 원리(1) 카나리 정적 분석📌 스택 버퍼 오버플로우 발생 예제 코드// Name: canary.c#include int main() { char buf[8]; read(0, buf, 32); return 0;}​ 우분투 22.04 버전의 gcc는 기본적으로 스택 카나리를 적용하여 컴파일 하기 때문에, 카나리 비활성화를 위해 -fno-stack-protector 옵션을 추가하여 카나리 없이 컴파일 할 수 있도록 진행📌 컴파일 명령어 예제..
우선, 해당 문제는 앞서 진행했던 시스템 해킹 스터디에 이어서 진행하는 문제로 rao.c 파일을 그대로 활용한다. 따라서 제공된 코드 파일의 경우 아래와 같다.📌 rao.c 코드#include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0);}void get_shell() { char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL);}int main() { char buf[0x28]; init(); printf("Input: "); scanf("%s", buf); return 0;}​ 위와 같이 작성한 rao 실행파일을 컴파일 ..
veriperi
'Security' 카테고리의 글 목록 (2 Page)