전체 글 182

[DiceCTF] interview-opportunity

DiceCTF 2022 (dicega.ng) DiceCTF 2022 Win $5,000 in prizes from 🎲 DiceCTF 2022, a cybersecurity competition by DiceGang beginning on Feb 4! Solve cryptography, binary exploitation, reversing, and web challenges. ctf.dicega.ng DiceCTF의 pwnable interview-opportunity 문제를 풀어보았다. 문제파일 분석 문제 바이너리와 libc.so.6 파일을 제공해준다. 나름 친절하다. ida를 이용해 열어보니, 다음과 같이 buf에서 오버플로우가 발생하고 puts로 버퍼의 내용을 출력해준다. 버퍼의 크기를 넘게 입력할..

CTF 2022.02.07

one_gadget 설치 및 사용법

one_gaget은 실행하면 쉘이 획득되는 코드뭉치이다. 아래도구는 libc에서 쉽게 one_gadget 위치를 찾을 수 있는 도구이며 HITCON, 217 CTF팀 david942j가 만들었다. https://github.com/david942j/one_gadget GitHub - david942j/one_gadget: The best tool for finding one gadget RCE in libc.so.6 The best tool for finding one gadget RCE in libc.so.6 - GitHub - david942j/one_gadget: The best tool for finding one gadget RCE in libc.so.6 github.com 설치 sudo apt..

libc 버전 찾기/버전 별로 다운로드하기 (libc_database 사용법, libc.blukat.me 사용법)

서론 CTF 문제를 풀다보면 리눅스의 공유 라이브러리 libc.xx.so 파일들이 필요할때가 있다. (PLT/GOT를 배우고, NX bit를 배워 스택영역에서 코드를 실행할 수 없을때) (이를 위해 라이브러리 파일을 이용해야할때 - hook overwrite.. Gadget이용.. etc) CTF 문제를 풀며 서버에 올라가있는 바이너리에 링크되는 libc.so 파일을 주는 경우는 감지덕지이지만, 주지 않더라도 이를 극복할 수 있어야한다. 오늘은 그러한 libc.so를 주지 않는 문제들을 위해 서버의 libc 버전을 알아내고 / libc 파일을 다운로드 하는 방법을 알아보고자 한다. libc 버전 찾기 libc_database libc_database는 리눅스에 다운로드 받아서 사용하는 프로그램으로 git..

확장자가 FILE인 파일

이게 뭔가 싶었다. 확장자가 FILE인 파일? 장난치는건가? 싶었지만 윈도우 입장에선 충분히 그럴 수 있지다. 리눅스 실행파일 ELF 파일이다. 윈도우 입장에서는 충분히 이게 뭔가 싶을 만도.. 윈도우에서 확장자가 “파일”인 파일을 보면 아 다른 운영체제에서 사용하는 파일이겠거니 파일 중에서도 시스템 해킹이니까 뭔가 프로그램(실행파일)이 겠거니 운영체제 중에서도 윈도우 아니면 뭐 리눅스겠거니 하는 안목정도

[Pwnable] basic_bof_1 Write-up

확장자가 FILE인 파일 윈도우에서 파일형식 : 파일인 파일이 있다. 이거는 리눅스 실행파일인 ELF일 확률이 높으니, 리눅스에서 열어보자. 역시나마 32비트 ELF 파일이었다. FILE에 대해서 조금 더 자세하게 알아 보고 싶으면 요 글을 참고해보자 https://juntheworld.tistory.com/75 확장자가 FILE인 파일 이게 뭔가 싶었다. 확장자가 FILE인 파일? 장난치는건가? 싶었지만 윈도우 입장에선 충분히 그럴 수 있지다. 리눅스 실행파일 ELF 파일이다. 윈도우 입장에서는 충분히 이게 뭔가 싶을 만도.. 윈도 juntheworld.tistory.com 아무튼 ELF파일이 뭔지 알았고, 소스파일은 제공되지 않으니 IDA를 이용해서 열어보았다. 15라인에 system함수가 있고 12..

내가 보려고 만든 IDA PRO 단축키 정리

r : 숫자 문자 변환 h : 숫자 DEX(10진수) HEX(16진수) 변환 g: 함수/주소 이동. 입력한 함수, 주소로 이동 x : 상호참조. 함수, 변수를 사용하는 곳을 찾을 수 있음 n : 변수/함수 이름 재설정 ; : 주석달기 F5 : 헥스레이 전환 (pseudo code 어셈블리코드) space bar : 어셈블리코드 그래픽모드 전환 Shift + f12 : String 검색창을 열기 https://1nzag.tistory.com/3

탐색을 위한 해시 (해시가 값 검색을 위해 사용되는 원리)

탐색을 위한 해시 해시 목적 : 탐색을 엄청나게 빨리 하기 위함 ⇒ 해시 값을 키로 이용하면 배열로 원하는 데이터에바로 접근할 수 있음 탐색 할때는 해시 함수 결과를 해시 주소(인덱스)로 해석 키 : 값의 개념으로 direct 접근 근데 충돌 무조건 발생함 -> 잘 관리하자 충돌관리 슬롯 여러개 관리 : 슬롯 만들어서 같은 해시주소에 여러개 저장가능하게! 선형 조사법 : 슬롯 오버플로나면 다른 해시 주소(바로 다음)에 저장 ⇒ 선형조사법 근데 이러면 군집화 현상 발생. 군집화 : 특정 지역에 키 값이 몰리는 현상(앞 찼네? 바로 뒤로.. 찼네?? 바로 뒤로..) 이차 조사법 : 키가 몰리는거 방지하기위해 다른 위치(4칸 뒤, 8칸 뒤..)로 점프해서 저장토록하면??? ⇒ 이차조사법 근데 이거 규칙 일정하..

공부/JUN STUDY 2021.11.11

memory management

memory management basic 프로그램은 반드시 메모리로 가져와야한다 메인메모리, 레지스터는 CPU가 directly access할 수 있는 저장소 한 clock당 micro instruction 발생 (Register access, write Register...) 메모리는 여러 cycle이 걸린다 cache ~ ran&cpu사이의 완충제 protection of memory Register access는 cpu clock에 일어난다 ~ cpu에 버금가는 access 속도를 갖는다 clock pulse가 1일때 연산시작 0→1가는 순간 Register access, 마이크로 인스트럭션, 메모리 access 여러개의 clock필요함 ⇒ 긴 시간이 필요하다 메모리 엑세스가 많아지면 시간이 많이..

728x90