SECURITY/System | Wargame

SECURITY/System | Wargame

[Pwnable.kr] Lotto

​ pwnable.kr lotto 문제 ! 여느 문제들과 동일하게 디렉토리에는 실행파일, 소스코드, flag 파일이 들어있다. 먼저 소스코드의 내용을 이해해보았다. ​ ​ 위의 소스코드에서 마지막 for문을 보면 랜덤으로 6개의 숫자가 lotto 배열에 저장되는 것을 볼 수 있는데 숫자는 아스키 코드 값 1~45 까지 랜덤한 숫자로 정해지는 것을 알 수 있다. ​ ​ ​ 이어서 play 함수의 calculate lotto score 부분을 보면 이중 for문을 사용하여 사용자에게 입력받은 문자열과 무작위로 배정한 lotto[]의 값이 일치하는 부분을 확인할 수 있다. ​ match 값이 6이 되면 lotto 값과 submit의 값이 일치하는 것으로 판단하는데 이중 for문은 6번씩 2중을 확인해 총 36..

SECURITY/System | Wargame

[Pwnable.kr] ShellShock

​ Pwnable.kr shllshick 문제풀이 ! 현재 디렉토리 안에는 flag, shellshock 실행파일, shellshock.c 소스코드 그리고 bash가 있다. shellshock 취약점을 활용하는 것 같아 해당 취약점에 대해 찾아보았다. ​ ​ * ShellShock(CVE-2014-6271) - GNU bash shell에서 환경변수를 통해 공격자가 원하는 명령어를 실행하게 하는 취약점 - 명령어 만으로 시스템을 장악할 수 있어 CVSS 등급 10점을 받음 - 특정 bash 버전의 환경변수와 환경변수 함수 선언에서 나타날 수 있는 버그를 통해 명령어 실행 - 함수 선언 이후에 공격자가 임의적으로 삽입한 시스템 명령어까지 실행 - 형식 : VER= (){ return; }; /bin/id ..

SECURITY/System | Wargame

[Pwnable.kr] Mistake

​ Pwnable.kr 사이트에 hint가 주어져있다. operaort priority 즉 연산자 우선순위를 생각해야하는 문제인 것 같다. 연산자 우선순위를 배운게 무려 이년전이라 흠칫 ​ ​ ​ ls 명령어로 디렉토리에 있는 파일을 확인해보니 flag, mistake 실행파일 mistake.c 소스코드, password ​ ​ ​ password 파일이 어떤 역할을 하는지 궁금했으나 cat으로 읽을 수 있는 파일은 아니었고, 우선 읽을 수 있는 mistake.c 파일을 읽어보았다. ​ ​ ​ 먼저 void 형의 xor 함수와 main 함수가 선언되어있다. main 함수의 내용을 보면 password 파일의 내용을 pw_len만큼 읽어와 pw_buf 리스트에 저장한다. 이후 scanf() 함수로 입력 값..

SECURITY/System | Wargame

[Pwnable.kr] Input2

input 문제의 디렉토리를 확인해보니 flag, input 실행파일, input.c 소스코드가 들어있다. ​ input 파일을 실행해보았지만 별다른 소득을 얻지 못했다. ​ ​ input.c 파일을 읽어보았는데 긴 코드가 들어있다. 차근차근 파악을 해보자면, 선언되어 있는 함수는 main 함수 하나이다. Stage 1 [ argv ] argc를 통해서 검사하는 전체 인자의 갯수는 100개여야함. argv[ 'A' ] 는 "\x00"이여야 함 // argv[ 'A' ] = argv[65] argv[ 'B' ]는 "\x20\x0a\x0d"여야 함 // argv[ 'B' ] = argv[66] ​ Stage 2 [ stdio ] chat 형의 buf 리스트를 4byte 만큼 선언한다. read로 읽어온 bu..

yuujoeng
'SECURITY/System | Wargame' 카테고리의 글 목록