일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- a tour of go
- C++ library
- C++ gui
- JUCE라이브러리
- C++
- Docker
- 운영체제
- C언어
- JUCE library
- go
- 프로그래밍
- 리듬게임
- LOB
- JUCE
- C++ gui 라이브러리
- BOJ
- 공룡책
- Nebula
- 연결리스트
- gui
- go channel
- 자료구조
- 코딩
- tour of go
- JUCE 튜토리얼
- c++ heap
- vim-go
- OS
- 알고리즘
- Today
- Total
목록Hacking (43)
CafeM0ca
입장 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이기 때문이다. (모카도 모르면 풀이보고 에디슨 전구가 머리위에 떠다닐 때가 있다.)다만, 아무런 생각도 안하고 ..