본문 바로가기

Conference

IMS-hard - RC3 CTF 2016 400pt 다 똑같은데 보호기법이 추가됐다.까나리랑 NX, Full RELRO 가 들어갔고 ASLR 은 없음.메모리 릭으로 까나리값 읽어서 공격시에 복원해 주고, libc 주소 얻어서 system("/bin/sh") 로 공격.libcdb.com 으로 다 해결하려고 했어서 나중엔 GOT 테이블까지 다 계산해서 릭했는데libcdb 에서 맞는 so 를 못 찾아줌..; 시간 겁나게 쓰고는 Not found 가 뜰때의 빡;침이란.. libc database 로 그냥 libc_start_main 주소 얻어서 바로 공격했더니 로컬에서는 성공.근데 이상하게 실서버에서 플래그가 안 떨어져서.. 페이로드 마지막 부분을 이래저래 수정해서 해결. from pwn import * IP = 'localhost'PORT = 40645IP =.. 더보기
IMS-easy - RC3 CTF 2016 150pt 실행하면 대충 이렇다 [2016-11-06 04:26:37] [root@ubuntu_x64] ~/wargame/rc3$ ./IMS-easy================================================|RC3 Inventory Management System (public alpha)|================================================1. Add record2. Delete record3. View record4. QuitChoose: View record 를 선택하면 기록한 레코드들이 나오는데,이 레코드를 보여줄 때 리스트나 배열의 인덱스로 보여주는 것이 아니라write(stdout, Variable+n, 8) 과 같이 단순 메모리 주소계산에 .. 더보기
defcon24 - feedme from pwn import *import os.pathfrom struct import *p = ''p += pack(' 더보기
2014 DEFCON - sftp STOR OLD 으로 신규파일 생성, 사이즈를 주지 않는다. 그리고 RETR 명령어를 사용하면 stat 함수로 사이즈를 리턴해 주는데 앞서 만든 파일 사이즈가 0이기 때문에 0을 돌려줌. 그리고 여기서 SEND 명령어를 입력하면 파일을 열어서 파일의 끝에 도달할 때까지 파일을 죄다 읽어서 보여줌. 실제 데이터가 존재하는 파일의 경우 stat 의 결과로 얻은 사이즈를 토대로 변동 스택(?)을 생성하여 ESP 를 충분히 넉넉한 크기로 당겨준다. 그래서 오버플로우가 생길 수 없는 환경이 만들어진다. 데이터가 있되 사이즈가 0인 파일을 찾으면 bof가 나겠구나 했다. 스택쿠키도 있었기 때문에 일단 릭 포인트를 찾아야 하는데 write 가 있으니 적당히 하면 되지 않을까. 당시 삽질이란 삽질은 참 많이했는데 일단.. 더보기
PCTF 2K13 ropasaurusrex ROP 하나씩. 오버플로우는 140 바이트 넣으면 뜨는건 일단 쉽게 보인다. to do listwrite 를 이용해서 메모리 릭으로 GOT 얻는 것.read 를 이용해서 계산된 system 함수의 주소를 얻는 것.system 함수로 커맨드라인 컨트롤write() 함수로 커맨드라인 전송 풀이 1. http://codezen.fr/2013/04/22/plaidctf-2013-pwnable-200-ropasaurusrex-write-up/ pop4ret 를 이용해서 ROP 스택 사이의 스택들을 채울 것이다. 일단 쓰이고 있는 메인 함수들이 네 개 밖에 없다 Relocation section '.rel.plt' at offset 0x29c contains 4 entries: Offset Info Type Sym.. 더보기