일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 고민정
- 홍혜걸
- 은혜의 강 교회
- 최강욱
- 리리남매
- 김영권
- 임영규
- 이상형 만들기
- 스페인 코로나
- 금리인하
- 성남 코로나 확진자
- 성남은혜의강교회
- 양적완화
- 불가피
- 이지혜
- 김영권 아내
- 해킹
- 학교 개학 연기 4월
- 이태원 클라쓰 15회 예고
- 뭉쳐야 찬다
- 제넥신
- 김재석
- 유튜버 김재석
- 픽크루
- 폰폰테스트
- libtins
- 스콜피온킹
- 조희연
- 미국 금리인하
- 킹덤 고근희
- Today
- Total
목록전체 글 (256)
Dork's port
안녕하세요. 벌써 15번이네요! 끝이보입니다!!!!! 시작해보죠!! check의 주소에 있는 값과 0xdeadbeef를 비교하여 같다면 자동으로 레벨 16의 쉘을 주는 간단한 문제입니다!메모리 구조를 봐야하기 때문에 gdb로 해당 프로그램을 실행시켜 줍니다! 이전의 프로그램들은 gdb의 권한을 막아둔 것 같던데 이번 문제부터는 아마 gdb가 가능하도록 해놓은 것 같네요! 이것때문에 삽질을 ㅠㅠ 이전 문제에서 그래 왔듯 함수의 인자값을 넘겨주는 것으로 변수의 주소를 추측해 보도록 하겠습니다. fgets의 인자로 주는 저 주소는 buf라고 예측할 수 있습니다. 그리고 0xdeadbeef와 비교하는 저 주소의 값은 check라고 예측할 수 있겠군요! 그리고 deadbeef라는 값을 메모리 어딘가에 넣어야하는데..
안녕하세요!!!! 벌써 14번이네요 ㅎㅎㅎ 시작하죠! 이번에는 check의 값을 0xdeadbeef로 초기화하는 문제이네요! 저번 문제를 자의로 푸셨으면 쉬울 것이라 생각합니다.우선 스택의 분석을 위해서 tmp폴더에 복사한 후 gdb로 열어서 보게 되면 deadbeef와 비교하는 저부분이 check의 주소라는 것을 추론할 수 있습니다. 그리고 fets을 부르기 전 인자로 전달하는 저 주소는 buf라는 것을 짐작할 수 있죠! 그래서 주소의 차이를 계산해 보면 f0 - c8 = 0x28이라는 것을 알 수 있습니다. 즉, 버퍼에 0x28(40)만큼 채운 후 그 뒤 값을 deadbeef로 채우면 될 것 같군요.그래서 아래와 같이 코드를 작성 할 수 있습니다. 마찬가지로 프로그램 실행 후 버퍼의 값을 입력 받으므..
문제 13번 입니다! 힌트를 보니 특이한 코드가 보이는군요! i가 16진수 값 1234567로 초기화가 되어있고 문자를 입력 받은 후 i를 체크하여 값이 변했다면 프로그램을 종료시키는군요! 문제를 미뤄보아 buf의 스택 밑에 i가 위치하고 i의 값을 0x1234567로 변하지 않게 또는, 0x1234567로 초기화를 시켜주어야 겠군요! 오버플로우 위해서 값 입력은 필수적이니 변하지 않게 할 수는 없을 것 같습니다. 따라서 i의 주소에는 다시 0x1234567로 초기화를 시켜주도록 하죠! 저기 있는 if문을 우회하기 위해서요!먼저 스택을 보기위해 gdb를 사용합니다. gdb를 사용하기 위해 위 코드를 아래 명령어로 복사하여 디버깅 옵션을 주어 컴파일 해보죠! $ cp hint tmp/attackme.c$ ..
안녕하세요! 문제 12번입니다! 꼬고싱! 힌트를 보니 11번 문제와 별반 다를것이 없어보이는군요! 차이점이 있다면 이제 인자를 argv 즉, 프로그램 실행 시 받는 것이 아닌 프로그램 실행 후 받는 구조로 변경되었군요! 그러면 이전에 했던 exploit 방법과는 조금 다른 방법을 쓰되 원리는 같다는 것을 알 수 있습니다.아래의 명령어로 프로그램 실행 후 인자를 전달할 수 있습니다. $ (python -c 'import sys ; sys.stdout.write("A"*268)' ;cat) | ./attackme 프로그램 실행 시 엔터를 눌러주면 그대로 인자로 전달되게 되는데 마찬가지로 RET를 찾기 위해 값을 대입한 결과 268번째에서 세그멘테이션 오류를 뜨는 것을 보니 해당 위치에 RET가 있겠군요! 해..