CTF 32

One_gadget Constraints (원가젯 제약조건) 해석하기

one_gadget 툴을 사용하다보면 출력되는 제약조건이 어떤 뜻인지 헷갈릴때가 있다. 아래와 같은 경우 libc-2.31.so 에 존재하는 constraints를 출력시켜보았는데, jun@ubuntu:~/jun/CTF_CONFIG/libc-database$ one_gadget /lib/x86_64-linux-gnu/libc-2.31.so 0xe6c7e execve("/bin/sh", r15, r12) constraints: [r15] == NULL || r15 == NULL [r12] == NULL || r12 == NULL 0xe6c81 execve("/bin/sh", r15, rdx) constraints: [r15] == NULL || r15 == NULL [rdx] == NULL || rdx =..

FSB(Format String Bug) %n %hn %hhn 으로 숫자 입력시 메모리 상태

FSB 문제를 풀때에 한번에 4바이트를 %n을 통해 입력하게되면 너무 많은 값들을 출력하며 TIMEOUT이 발생할 수 있다. 그래서 %hn을 이용해 2바이트씩 나누어서 전송하게 되는데, 이때 기억해두면 좋을 사항들이 있다. %hn을 입력할때. 해당 위치를 기준으로 큰 주소 값으로 입력된다. (ex. $exit_got+0에 입력시 $exit_got+0, $exit_got+1에 입력됨) 리틀엔디안으로의 숫자 입력이니 숫자의 낮은 자릿수 부분이 낮은 주소에 입력된다.

CTF 2022.02.09

[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..

[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..

[Dreamhack.io 단계별로 도전하기] welcome Pwnable CTF / wargame 푸는 순서/방법 (MIC.)

https://dreamhack.io/wargame/challenges/27/ 드림핵 wargame 단계별로 풀어보기 welcome 문제이다. 문제 페이지를 보면 접속 정보와 문제 파일을 확인할 수 있다. 어떻게 접속해서 어떤 문제를 풀라는 것일까?? Pwnable CTF / wargame 풀이는 다음과 같은 순서로 이루어진다. 0. 제공된 문제 파일 다운로드 (공격해야하는 프로그램) 1. 제공 받은 프로그램/소스코드 분석 (문제 파일) 2. 원격으로 공격할 서버에 접속 (접속 정보) 3. 서버에 접속하는 순간 주어준 프로그램이 자동으로 실행된다. 4. 이제 그 프로그램을 잘 주물러서 서버의 쉘을 획득하면 됨! 5. 이후 쉘에서 악의적인 동작(flag 파일 읽기)를 수행 이때 서버에 접속하는 방법은 여러..

CTF/dreamhack.io 2021.08.02
728x90