일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BOJ Python
- C언어
- 백준
- 웹페이지 만들기
- The Loard of BOF
- siss
- 풀이
- Python
- hackerrank
- CSS
- BOJ
- HTML
- lob
- PHP 웹페이지 만들기
- Sookmyung Information Security Study
- 머신러닝
- Javascript
- 드림핵
- 숙명여자대학교 정보보안 동아리
- 자료구조 복습
- 생활코딩
- WarGame
- c
- hackctf
- 기계학습
- XSS Game
- SWEA
- c++
- 파이썬
- 숙명여자대학교 정보보안동아리
- Today
- Total
목록BOF (3)
혜랑's STORY
문제를 풀기 위해 xshell로 로그인 해 주었다. ID : orge / PW : timewalker 가장 먼저 존재하는 파일들을 알아보기 위해 ls -l 명령어를 실행하였다. troll.c 파일의 내용을 확인해 보았다. Lv.7에서는 argc가 2 이상이 되어도 괜찮았지만, 이번 문제에서는 argc가 꼭 2개이어야 한다. 즉, argv[1]의 RET이 agrv[2]를 가리키도록 하는 방법을 사용하지 못한다는 것이다. 환경변수도 초기화하고.. 스택 공간도 초기화하고.. 이제 쉘코드가 들어갈 수 있는 공간은 초기화하지 않는 argv[0]만 남게 되었다. 파일명을 변경하는 방법을 찾아보았다. 파일명 변경 : rename 변경전파일명 변경후파일면 대상파일 다음과 같이 코드를 구성해보았다. 이때 주의해야 할 점..
문제를 풀기 위해 xshell로 로그인 해 주었다. ID : orc / PW : cantata 역시 가장 먼저 존재하는 파일들을 알아보기 위해 ls -l 명령어를 실행하였다. wolfman.c 파일의 내용을 확인해 보자. Lv.4에서 등장한 egghunter에 buffer hunter가 추가된 것을 볼 수 있다. 여기서 buffer hunter는 코드상 버퍼를 초기화해준다. 따라서 버퍼 너머의 주소에 Lv.4의 풀이와 마찬가지로 쉘 코드를 넣고 주소를 연결시켜주면 될 것 같다. gdb로 살펴본 스택 상황은 아래와 같다고 생각해 볼 수 있다. buffer SFP RET(return) 40 4 4 따라서 RET의 마지막 주소값엔 "\xbf"가 있으면 된다. 버퍼의 시작 주소를 알아내기 위해 strcpy 함수..
문제를 풀기 위해 xshell에 로그인 해 주었다. ID : cobolt / PW : hacking exposed 가장 먼저 존재하는 파일을 알아보기 위해 ls -l 명령어를 실행하였다. goblin.c 파일의 내용을 확인해 보자. Lv.2와 같이 버퍼에 16 바이트를 할당하고 있어 쉘코드를 담기엔 충분하지 않다. 앞선 문제와 다른 점은 strcpy가 아닌 gets 함수를 사용한다는 점이다. 그러나 gets 함수 또한 문자열의 길이를 검사하지 않는 취약점이 존재한다. 앞에서 실행인자에 쉘코드를 전달하는 방법을 사용했기 때문에 이번엔 환경변수를 선언하여 문제를 해결하려 한다. 환경변수를 선언하는 방법은 다음과 같다. export SHELLCODE=`python -c 'print "\x90"*100 + "\..