전체 글 25

[docker] docker에서 strace실행이 되지 않는 경우 (Operation not permitted)

docker 에 관한 자세한 정보는 여기서 확인해 볼 수 있습니다.사용이 매우 편리하고 가볍기 때문에 강력하게 추천드리고 싶은 플랫폼인데, docker 에서 strace를 할 때 Operation not permitted 라는 에러가 뜨는 경우가 종종 있습니다.이 경우에 docker 에서 조금 느슨한 보안 옵션을 주면 해결이 가능합니다.일단 직접 보여드리기 위해 새로운 컨테이너를 만들어 보겠습니다. 이미지 파일이 이미 있기 때문에 ubuntu 이미지로 sample이라는 컨테이너를 만들겠습니다. 처음 설치된 컨테이너는 strace가 설치되어 있지 않기 때문에, apt-get update를 한 이후 apt-get install strace로 strace를 설치해 주어야 합니다. 설치된 이후 strace를 실..

자습시간 2017.05.31

[pwnable.kr]Toddler - flag 풀이

pwnable.kr의 toddler카테고리에 속한 문제 가운데 하나인 flag입니다. 아빠가 나에게 packed된 선물을 주셨다! 얼른 열어보자. 라고 하는 문제입니다. 저는 원래 문제를 풀 때 저런 글 안 읽어보고 바로 다운로드 받아서 푸는 편인데, 문제 자체에 엄청난 힌트가 숨겨져 있었네요. 앞으론 잘 읽어봐야겠습니다. 그리고 이것은 리버싱 task이고, 너는 바이너리만 있으면 됩니다~ 라고도 쓰여져 있네요.file명령어로 확인해 보니 64비트용 실행파일(elf)입니다. 64비트용 IDA로 열어보아야 겠습니다. 아무 생각 없이 열어보니, 디컴파일 에러가 납니다. 이런 경우는 처음이라 당황해서 구글링을 해보니, 스택 메모리 구조 상 지정된 주소는 초기 스택 포인터보다 낮은 주소에 있어야 하는데 지정된 ..

[pwnable.kr]Toddler - fd 풀이

pwnable.kr에서 만나볼 수 있는 가장 쉬운 문제이자 가장 처음 만나게 되는 문제입니다. 엄마! Linux에서 파일 디스크립터가 무엇인가요? 라는 문제네요. 만약 정말 초보자라면 저 링크를 따라가서 동영상을 보라고 하는데 문제 풀 때는 몰랐다가 이제서야 봤습니다. 보고 싶으신 분들은 한 번 보시고 어떤지 댓글로 남겨주세요.ㅎ fd@pwnable.kr에 포트 2222번으로 접속해 보라고 합니다. 접속 툴로는 putty를 사용했습니다.접속을 해서 문제에서 알려준 패스워드를 입력하고 난 후, ls -l 명령어를 이용해 한 번 둘러봅니다.flag파일이 하나 있고, fd라는 프로그램과 fd.c라는 프로그램 소스파일이 보입니다. fd가 setuid가 걸려있다는 점을 모두 눈치채셨기 바랍니다.setuid가 걸려..

[pwnable.kr]Toddler - collision 풀이

pwanble.kr의 Toddler카테고리에 있는 문제 가운데 하나인 collision입니다. 아빠가 멋진 MD5 해쉬 collision을 이야기 해주어서 자신도 그 비슷한 걸 해보고 싶다는 내용입니다.우선 pwanble.kr에 포트 2222번으로 접속을 해봐야 할 것 같습니다. 접속 툴로는 putty를 사용했습니다.접속하자 마자 ls로 디렉토리 내용을 살펴보니 flag파일이 바로 보입니다. 하지만 col_pwn 의 소유자 권한과 그룹 권한만 읽을 수 있도록 권한이 세팅되어 있습니다. 즉 flag파일을 열려면 col_pwn권한을 얻어야 한다는 뜻인데, 방법은 간단합니다. col이라는 프로그램에 setuid가 붙어있기 때문입니다. setuid가 붙은 프로그램의 경우 실행 시 파일 소유자의 권한으로 권한이 ..

[pwnable.kr]Toddler - bof 풀이

pwnable.kr의 Toddler 파트에 있는 문제 가운데 하나인 bof 라는 문제입니다.할머니께서 내게 말씀해 주셨는데 버퍼오버플로우가 가장 일반적인 소프트웨어 취약점이라고 합니다. 그게 사실인가요? 라고 하네요. 부럽게도 할머니가 왕년에 짱짱해커였던 모양입니다. download 링크를 통해 다운로드를 받게 되면 bof라는 실행파일과 bof.c라는 소스코드를 얻을 수 있습니다. 우선 소스코드부터 열어봅니다. 저는 에디터로 vscode를 자주 사용하기 때문에 vscode로 열어보았습니다.저희는 이 프로그램이 실행되고 있는 환경에 있는 flag라는 파일을 여는 것이 목표입니다. 그러기 위해서는 system("/bin/sh")과 같은 함수를 활용해서 키 파일에 접근할 수 있는 쉘을 얻어야 합니다.코드를 잘..

정규표현식 기초

이번에는 정규표현식(Regular Expression)에 대해 글을 써볼까 합니다. 기초적인 부분이라 한번 훅 훑어 보는 것도 프로그래밍 지식을 환기시키는데 도움이 되리라 생각됩니다. 0. 정규표현식(Regular Expression) 이란?정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용되는 (형식)언어 입니다. 가령, 다음과 같은 데이터가 있다고 해봅시다.안녕 ! 내 이름은 Poqw 고 내 전화번호는 010-1234-4321 이야. 앞으로 친하게 지내자.만약 이 데이터에서 전화번호만 쏙 뽑아내고 싶다면 숫자를 검색하고 거기서부터 substr( )같은 함수로 14개 까지만 잘라내면 될 것입니다. 하지만 만약 데이터가 여러가지고, 다음과 같다면?안녕 ! 내 이름은 Poqw 고 내 전화번호..

자습시간 2016.03.14

[MySQL] Information_schema

MySQL은 가장 많이 쓰이는 데이터베이스(Database) 중 하나입니다. (현재 이 글을 쓰는 시점 세계에서 2번째로 많이 쓰인다고 합니다)그럼 데이터베이스란 무엇일까요? 데이터베이스는 위키백과에서 다음과 같이 정의하고 있습니다. " 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합이다. 논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조화함으로써 검색과 갱신의 효율화를 꾀한 것이다. 즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있다. " 쉽게 말하자면 "데이터의 집합"이라는 뜻입니다. 하지만 데이터의 종류가 너무 많아질 경우 이 또한 목록화 시킬 필요가 생기는데, 이러한 요구에 맞..

자습시간 2015.12.29

[xcz.kr] PROB36 문제풀이

xcz.kr Prob 36의 Title은 「File Deleted」입니다. 피시방에서 아동 청소년 보호법에 위배되는 파일을 소지한 기록을 발견했다고 합니다. 아마 아동포르노가 담겨있는(담겨있다고 가정한) 동영상 파일일 거라고 추측이 되지만 Title(삭제된 파일)로 미루어 보아 동영상 파일은 이미 삭제가 됐을 확률이 큽니다."일반 삭제를 했을 경우 휴지통에 남아있을 것이고, 영구삭제를 했었어도 복구를 할 수 있는 방법이 있으니 어떻게든 풀리겠지" 정도의, 대충 이런 감을 가지고 문제에 들어가 보았습니다. Prob File 을 눌러 파일을 다운로드 받아보니, 기대했던 이미지 파일과는 달리 "file_deleted.7z"이라는 압축파일이 다운로드 받아집니다. 압축을 해제하고 들어가보면 아래 이미지처럼 흡사 ..

쉬는시간/xcz.kr 2015.11.22