분류 전체보기
-
Syscall 가젯이 없을 때공부정리 2019. 3. 6. 04:06
Pwnable문제를 풀다보면 syscall로 익스를 해야될 때가 있다. 딱 언제라고 예를 들기는 어렵지만, 여러가지 제한들이 걸려있는 상황이 그렇다.RTL이 불가능할 때? 이 때 제일 많이 사용했던 것 같다. 하지만, Syscall_gadget마저 제한을 둔 문제들이 종종 있다.이 때, Libc에 있는 syscall가젯의 하위 1Byte를 GOT_Overwrite해서 syscall을 사용할 수 있다.[ find "\x0f\x05"(syscall) ]x64의 시스템콜 opcode인 "\x0f\x05"를 검색해보면 Libc에 위치한 syscall가젯들이 대략 573개 정도 나온다.여기서 내가 syscall가젯으로 Overwrite할 함수에 위치한 syscall을 찾아야 한다. [ read_syscall ]빨..
-
Return-to-Csu 기법 정리공부정리 2019. 3. 5. 23:47
포너블 문제를 풀 때, 64Bit 바이너리가 까다로운 이유가 바로 'Gadget' 때문이다. 64Bit의 Calling Convention은 Fastcall로 호출된 함수에 인자를 레지스터로 전달한다.이 때문에 Exploit을 구성할 때도 [POP RDI]와 같은 가젯이 반드시 필요하다. 이러한 특이점 때문에 문제에서 가장 흔하게 볼 수있는게 '가젯 제한'이다.이 상황에서 EDI,RSI,RDX 를 구성할 수 있는 방법이 있는데, 바로 Return_to_csu기법이다.[ Return to csu란? ]ELF바이너리를 IDA와 같은 디버깅도구로 열어보면, __libc_csu_init( )를 볼 수 있다.이 함수가 하는일은 바이너리의 _start( )를 호출하는 함수인 gmon_start( )를 호출하는 역할..
-
Meepwn 2018 White snow, Black shadow WriteupSystem/CTF 2019. 3. 2. 22:06
2018년 7월 Meepwn CTF에서 Forensic으로 출제된 문제다. [ 문제 ]파일이 하나 주어지고, 압축을 풀면 아래와 같은 이미지 파일을 볼 수 있다. [ evidence.jpg ]오.. 명탐정 코난 뭔가 대게 이런 이미지 파일 문제들은 매직넘버로 장난친 경우가 많다. [ binwalk ]binwalk로 확인해보면, 그림파일 안에 JPEG말고 ZIP도 존재하는 것을 확인할 수 있다. 그림 파일의 확장자는 .JPG로 Header는 'FF D8 FF E0' Footer는 'FF D9'로 구성되어 있다. 그림파일의 데이터는 Footer(FF D9)까지만 유효하기 때문에, 그 뒤는 어떤 데이터가 있더라도그림파일에는 영향이 없다. 따라서, HxD같은 바이너리편집기로 Footer시그니처를 찾아보면뒷 쪽에..
-
[ Rookiss ] Simple LoginSystem/Pwnable.kr 2019. 1. 17. 15:17
[ Binary info ]32Bit 바이너리이며, 보호기법은 Canary와 NX Bit가 적용되어 있다. 특이점으로는 Statically link방식을 사용하기 때문에 RTL과 같이 공유 라이브러리를 이용하는 공격 기법은 사용이 불가능하다.따라서, 바이너리안에 존재하는 함수들을 Chaining하는 식으로 페이로드를 구성해야 한다. [ Binary Execute ]바이너리를 실행하면 입력값을 받는데 길이값을 크게 주면 'Wrong Length'라는 경고 메시지를 출력한다.특정 길이값을 주면 입력값에 대한 hash값을 출력하는데, 이때 Segmentation Fault가 발생한다.이 부분을 포인트로 잡고 IDA 디버깅을 해보도록 하자[ Debugging#1 ]main( )를 먼저 보면 실행 때 봤던 "Au..
-
TUCTF2018 lisa WriteupSystem/CTF 2019. 1. 14. 02:37
[ Binary Info ]32Bit 바이너리이며, shared object으로 PIE가 적용되어 있다.PIE와 NX를 제외한 제약사항이 없기 때문에개인적으로 PIE를 처음 접한다면 입문용 문제로 괜찮다고 생각한다. ( 로컬서버에서는 같은 디렉터리에 password와 flag파일을 만들어줘야 합니다. ) 문제의 난이도는 PIE를 제대로 이해한 사람에게는 쉬웠을 것이고나처럼 PIE가 익숙치 않은 사람에게는 어렵게 느껴졌을 것이다.따라서, 무작정 풀다가 어려움을 느끼고 라이트업을 보러오신 분들은 [PIE 보호기법 정리] 를 먼저 보시고다시 한번 풀어보는 것을 추천드리고 싶다! [ Binary 실행 ]바이너리를 실행하면 주소 하나를 릭해준다.그리고 두 번의 입력을 받고 프로그램이 종료된다.대충 이렇게 흐름을 ..
-
메모리 보호기법 - PIE공부정리 2019. 1. 12. 22:43
TU-CTF2018에서 출제된 lisa 라는 문제를 풀면서 PIE에 대해서 공부하게 되었다. 바이너리에 PIE가 걸려있으면 주소값들이 해괴망측하게 변하는 걸 볼 수 있는데이 모습을 처음 보고 '아. 빡세다.' 라는 생각이 들어서 그런지 PIE라는 존재에 겁을 먹고 있었다.근데 막상 공부해보니까 'ASLR과 크게 다르지 않다'라는게 나의 결론이다.[ PIE란? ]Position Independent Executable의 약자로 바이너리 주소가 상대적인 주소로 랜덤하게 매핑시키는 기법이다.ASLR과 비슷하게 생각하되, 차이점은 PIE는 Code(Text)영역을 포함한 모든 영역(Data,Stack,Heap,Libc)을 랜덤하게 매핑시킨다는 것이다. [ Sample.c 소스코드 ]위 샘플코드로 확인해보도록 하..
-
Flash Memory Dump 환경설정#1IoT/기술정리 2018. 10. 14. 04:19
임베디드 장비에서 펌웨어를 추출하는 방법은 대표적으로 3가지가 있다.1. UART2. JTAG3. Flash Memory현재 분석중인 IP Camera에는 디버깅포트(UART,JTAG)는 없고, Flash Memory가 존재한다. 만약 Flash Memory와 연결이 된다면, 펌웨어 추출 / 수정 / 삭제가 가능하다.따라서, 펌웨어 무결성 검사때문에 펌웨어패치를 못한다면 Flash Memory를 통해서 Direct-patch가 가능하다. 말은 간단하지만, 실제로 환경설정만 몇시간의 삽질이 필요하고환경설정이 다 됐다 하더라도, 바로 Flash Memory에 연결되는 이상적인 결과가 나오는 건 아니였다. Flash Memory Dump 과정을 #1/#2로 나눠서 기록할 예정이며본문(#1)에서는 준비물에 대해..
-
Baidu 회원가입 하기ETC 2018. 10. 12. 23:22
구글에서 못 찾는 자료를 바이두에서 찾는 경우가 종종 있다.바이두 자료실 파일을 다운받기 위해서는 로그인을 해야하는데, 회원가입 절차가 복잡해서 따로 정리해본다. #외국인 전용 회원가입https://passport.baidu.com/v2/?reg&u=http%3A%2F%2Fpan.baidu.com%C2%AEType=1&tpl=netdisk&overseas=1 바이두 공식 홈페이지에 있는 회원가입 링크는 내국인 전용이다.따라서, 위 링크에서 회원가입을 진행해야 한다. [ Baidu Register ]회원가입을 하기 위해서는 핸드폰 인증이 필요한데, 핸드폰 번호는 TextNow를 이용해서 인증받을 수 있다. #TextNowhttps://www.textnow.com/ [ TextNow Register ]SIG..