일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JUCE
- c++ heap
- 공룡책
- Nebula
- OS
- tour of go
- 리듬게임
- Docker
- 연결리스트
- 코딩
- 알고리즘
- 백준
- gui
- 프로그래밍
- BOJ
- JUCE 튜토리얼
- LOB
- 자료구조
- JUCE라이브러리
- 운영체제
- go
- C++ gui
- C++ library
- C++
- C++ gui 라이브러리
- JUCE library
- vim-go
- go channel
- a tour of go
- C언어
- Today
- Total
목록CafeM0ca (265)
CafeM0ca
입장 ID: cobolt입장 password: hacking exposed 소스코드를 확인하자. goblin은 cobolt와 다른 점은 gets함수로 입력을 받고 있다.그리고 gets함수에서 오버플로우가 발생한다. 접근 방식은 이전 문제와 같이 환경변수를 사용하겠다. 환경변수에 쉘코드를 올려주고 환경변수 주소를 구하는 소스코드를 작성후 컴파일한 뒤 실행시킨다. 환경변수 주소: 0xbffffb59 스택상태는 아래와 같다.buffer 16 | SFP 4 | RET 4 페이로드는 아래의 구조로 입력한다."A"*20 | &(환경변수) 입력이 함수로 인자전달이 아닌 표준입력이므로 cat을 사용하여 전달하겠다.-cat은 표준입력으로 문자열을 받아서 그대로 출력해준다.->리다이렉션(python -c 'print "A..
입장 ID: gremlin입장 password: hello bof world 이번 몬스터는 cobolt다.코드를 확인하자. gremlin과 같은 코드이지만 버퍼가 256바이트에서 16바이트로 줄었다. 이번에는 환경변수를 통하여 공격을 시도하겠다.export Shell=`python -c 'print "\x90"*300 + "\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"'` 환경변수에 위의 쉘코드를 올리자! 스택 구조buffer 16 | SFP 4 | RET 4 | 모카는 아래와 같이 페이로드를 작성할 것이다.buffer A*20 | &(환경변수) 이제 환경변수 주소를 구..
ID:gatepassword:gate 첫 발걸음을 때보자! 처음 파일을 ls명령으로 확인해보니 gremlin과 gremlin.c가 있었다.소스코드를 확인해보니 argv로 인자를 전달받고 buffer가 256바이트이며 strcpy로 argv[1]을 버퍼에 복사한다. 원본파일(gremlin)은 gdb로 디버깅이 안되니 복사본(gremlia)를 만들었다. 이름은 어떻게되든 상관없으나 글자 수는 맞춰주자!여기서! strcpy부분에 만약 argv[1]이 buffer보다 큰 메모리를 가지고 있다면 buffer는 argv[1]의 메모리가 초과하여 오버플로우가 발생한다. 이제 gdb로 디버깅하여 스택을 살펴보자! 그리고 리턴주소를 찾아 아래의 쉘코드를 삽입하면 우리는 쉘을 획득할 수 있다.\x31\xc0\x50\x68..
LOB풀이를 하기전에 당부의 말이 있다. 1.모든 풀이는 기본지식이 있다고 가정하에 풀이한다.2.공격 기법에 관한 설명은 최소한으로 한다. '이러한 흐름이다' 정도로만 설명한다.3.모카는 전문가가 아니다. 공부 목적을 위한 개인 일기라고 봐도 무방하다. 참고만 하자!4.모카도 모르는게 많다! 틀린게 있다면 지적댓글 환영한다!5.궁금한점을 댓글로 남기면 아는 선에서는 답글을 남긴다.6.LOB 셋팅은 구글링하면 자세히 나온다. 꼭 확인하자. LOB를 처음 접하시는 분들은 풀이를 보는 것에 대한 죄책감을 갖지 말았으면 좋겠다.아무것도 모르는데 풀 수 있는 사람은 없고 기본을 쌓기위한 첫걸음이 LOB이기 때문이다. (모카도 모르면 풀이보고 에디슨 전구가 머리위에 떠다닐 때가 있다.)다만, 아무런 생각도 안하고 ..
첫 포스팅은 즐겁기 마련이다. 아닐수도 있고.사실 블로그 포스팅이 귀찮긴 하지만(네읍읍에서 글쓰다가 다 날려버린 기억 이후로 쓰기 싫었다.) 나와 같이 정보를 원하는 사람을 위해 꾸밈없이 포스팅 할 것을 약속한다. 백준에 보면 11718번 그대로 출력하기와 자매품인 11719번은 입출력에 관한 문제이다. 11718번사실 모카는(필자 대신 앞으로 쓸 대체어) 어떻게 하면 이 문제를 접근할지 들여다 봤다. 입력은 있으나 언제 끝나는지 모른다. 지문을 잘 읽어보면 핵심은 입력은 최대 100줄이라 되어있고 영어 대소문자, 공백, 숫자로만 이루어져 있다. 빈 줄은x 처음 접근은 C로 접근하려했으나 언제 입력이 끝나는지 불분명하기에 Python으로 바로 열차를 갈아탔다. 아래 소스코드는 python3로 작성했다. ..