Codegate 2018 BaskinRobins31 문제입니다. CANARY는 없고 NX만 걸려있는 것을 확인할 수 있습니다. 취약한 함수입니다. s를 0xA0 만큼 선언하고 read로는 0x190만큼 입력을 받습니다. 이 부분에서 buffer over flow 취약점이 발생합니다. 취약점을 바탕으로 64bit ROP해주면 됩니다. 공격 과정1. write함수를 이용하여 write_got를 Leak.2. Leak한 write_got를 system의 offset을 이용해 system의 주소구하기.3. read함수를 이용하여 .bss에 “/bin/sh”저장.4. read함수를 이용하여 write_got를 system의 주소로 got overwrite.5. write함수의 인자로 .bss 주기. 64bit에서..
Codegate 2014 문제인 nuclear입니다. 이 프로그램이 library파일 두개를 쓰고 있어서 좀 헤맸습니다.. 분석을 해보자면 일단 THIS_IS_NOT_KEY_JUST_PASSCODE 라는 파일을 열어서 없다면 프로그램을 종료시키고 있다면 passcode를 읽어오는 것을 확인할 수 있습니다. 물론 이 파일은 로컬에서 실행할 때는 직접 만들어 줘야 합니다. 따라서 passcode를 모른다고 가정하고 진행하겠습니다. 얻어온 passcode로 launch, 핵미사일을 발사할 때 입력과 passcode와 같은지 비교하네요.passcode를 모르니 어디서 Leak을 해서 알아내야 하겠네요. 어떻게 Leak을 할까 고민하던 중에 스택구조를 살펴보았더니 input | v4 | v5 | passcode ..
이번 문제는 codegate 2014 angry_doraemon 화난 도라에몽 문제입니다! 8888번 포트로 접속하면 문제가 나옵니다. 그리고 실행하는데 필요한 파일들을 만들어 주어야합니다. hex-ray 보고 찾아보세요~ 취약한 함수입니다. 보면 read로 buf에 0x6E 만큼 받습니다. 하지만 buf의 크기는 4byte이네요. 여기서 buffer over flow가 가능합니다. read도 recv함수와 같이 입력을 받을 때 따로 nullbyte를 삽입하지 않으므로 변수사이에 nullbyte를 없애 Canary 우회가 가능합니다. Canary는 v8에 있는거 같으니 v8까지 nullbyte를 없애고 입력하면 되겠지요? payload에 10byte만큼 넣었더니 Canary가 출력되지 않아 11byte ..
살펴볼 문제는 Codegate 2017 babypwn 이라는 문제입니다! 보시는 것과 같이 Partial RELRO, Stack Canary, NX 가 걸려있는 것을 확인하실 수 있습니다. Stack Canary 가 걸려있으므로 먼저 Canary를 Leak 한 후에 NX를 우회하기 위한 ROP를 사용해야 한다는 것을 알 수 있습니다. 터미널에서 바이너리를 실행하고 다른 터미널에서 8181 포트로 접속하면 문제가 나옵니다. 취약한 함수를 살펴보면, 1.Echo 를 실행한뒤 메시지를 입력받는다는 출력과 함께vuln2 함수를 호출하고 있습니다. vuln2 함수를 보니 recv 함수를 호출하고 있네요. printf 함수는 null byte로 문자열의 끝을 인식하는데, recv는 문자열에 끝에 추가로 “\00” ..
- Total
- Today
- Yesterday
- 리버싱
- OllyDbg
- Pwnable.kr
- BaskinRobins31
- 파이썬
- babypwn
- bugbear
- orge
- Codegate
- 비교 연산자
- 포너블
- 올리디버거
- Python
- 클래스
- picoctf
- C언어
- succubus
- TAMUCTF
- zombie_assassin
- protostar
- Nightmare
- luckyzzang
- 0ctf
- HarekazeCTF
- ftz
- angry_doraemon
- darkknight
- babyheap
- Golem
- lob
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |