반응형

해킹대회 617

[Root Me] ELF x86 - Stack buffer overflow basic 1 - 포너블 / 버퍼오버플로우

Root Me 에서 처음 풀어보는 포너블 문제 가장 기본적인 스택 버퍼오버플로우 문제이다. 문제 환경을 살펴보면 아무런 보호기법도 적용되지 않은것이 보인다. 그냥 편하게 풀 수 있는 수준이다. #include #include #include #include int main() { int var; int check = 0x04030201; char buf[40]; fgets(buf,45,stdin); printf("\n[buf]: %s\n", buf); printf("[check] %p\n", check); if ((check != 0x04030201) && (check != 0xdeadbeef)) printf ("\nYou are on the right way!\n"); if (check == 0xdea..

워게임/Root Me 2022.09.03

[CTFlearn] 07601 - 포렌식 / HxD / binwalk

CTFlearn의 열여덟번째 문제 문제 제목이 07601 인데 이게 대체 뭘까 싶어서 검색해봤더니 미국 뉴저지의 우편번호라는 검색결과가 가장 많이 나온다. 우편번호가 영어로 zip code 인데 아마 zip 때문에 제목을 그렇게 붙였나보다. 문제에서 주어진 주소로 접속해보면 AGT.png 파일을 다운로드 받을 수 있다. 아메리카 갓 텔런트 캡쳐한 화면인데 HxD 프로그램을 이용애 AGT.png 파일을 열어보면 맨앞이 FF D8 FF E0 로 시작하는걸 볼 수 있다. 이렇게 파일 맨 앞에 써있는걸 파일 시그니처 라고 하는데 FF D8 FF E0 로 시작하는것은 JPG 파일의 특징이다. 주어진 파일은 PNG 파일인척 하는 JPG 파일이었던 것이다. JPG 파일의 또다른 특징은 끝날때 무조건 FF D9 로 끝..

워게임/CTFlearn 2022.09.02

[IJCTF] Input Checker - 포너블 / 버퍼오버플로우 / IDA / Peda / Pwntool

조금 헷갈렸던 포너블 문제 포너블은 항상 어려운것 같다. 문제설명에서 best input 을 찾으라고 한다. 문제파일로 input 이라는 이름의 바이너리 파일이 하나 주어진다. file 명령어로 확인해보면 ELF 64-bit 파일인것을 확인할 수 있다. ELF 은 리눅스에서 실행가능한 파일이다. 파일을 실행시켜보면 Input : 이라는 문구가 출력되면서 사용자 입력을 기다린다. hello 라고 입력해봤는데, 프로그램이 종료되거나 하지 않고 계속 대기중이었다. IDA 라는 디스어셈블러를 이용해 input 파일을 열어보았다. main 함수를 먼저 살펴봤는데 Input : 이라는 출력이 나온 뒤에 getchar() 함수를 이용해 사용자의 입력을 받고 있다. 반복문이 0에서 1089 까지 돌아가면서 사용자의 입..

CTF/포너블 2022.09.01

[De1CTF] Chowder - 포렌식 / ADS / John the Ripper

중국에서 진행한 CTF 대회의 문제 대회에서 가장 쉬운 문제들 중 하나였는데 생각보다 애를 많이 먹었다. MISC로 분류되어있었는데 포렌식쪽으로 봐도 상관없을듯 하다. 문제 설명에 보면 힌트가 적혀있는데 주어진 pcap 파일을 이용해서 문제를 풀 수 있고, 어떤 파일의 비밀번호는 6자리이며 첫번째 두 자리는 DE 라고 친절히 알려주고 있다. 문제에서 주어지는 파일은 Misc_Chowder.pcap 파일이다. pcap 파일은 Wireshark 프로그램을 이용해서 열어볼 수 있다. 패킷은 3000개 정도 있는데 이정도면 별로 많은편은 아니다. 천천히 내려보다보면 중간부터 HTTP 프로토콜을 이용해 /test/upload_file.php 경로에 jpg 파일을 업로드 하는것이 보인다. 와이어샤크에서 File -..

CTF/포렌식 2022.08.30

[Root Me] Local File Inclusion - Double encoding - 웹해킹 / LFI / PHP wrapper

두번째 Local File Inclusion 문제 (첫번째 : https://hackingstudypad.tistory.com/243) 조금 더 발전된 LFI 형태이다. 문제페이지에 접속하면 이런 화면이 뜬다. 웹페이지 기능을 알아보기 위해 메뉴들을 눌러봤는데 CV 메뉴를 들어가면 URL이 ?page=cv 로 바뀌고, Contact 메뉴를 들어가면 URL이 ?page=contact 로 바뀌는 것을 볼 수 있다. 이런식으로 웹 페이지를 구현할 경우, PHP 환경에서 include() 함수를 사용하는데, 적절한 필터링이 없다면 LFI(Local File Inclusion) 취약점이 발생하게 된다. LFI는 말 그대로 서버 내에 있는 파일을 불러와 읽을 수 있는 취약점이다. 단순히 웹 페이지의 소스코드 뿐만 ..

워게임/Root Me 2022.08.29

[CTFlearn] QR Code - MISC / Base64 / ROT13

CTFlearn 의 열일곱번째 문제 분류가 Miscellaneous로 되어있는데 이건 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 근데 사실 이번 문제는 암호학 분야로 분류해도 될것같은 문제이다. 문제제목처럼 QR 코드로 시작하는 문제이다. 문제에서 주어진 주소로 접근하면 이렇게 QR 코드 하나를 받을 수 있다. 이번 문제는 난이도가 어렵지 않아서 그냥 이 QR 코드를 그대로 사용하면 된다. 최근에 이 문제 말고 굉장히 어려운 QR 코드 문제를 푼 적 있는데 조만간 그 문제 Write up을 포스팅 하면서 QR 코드에 대해 자세히 다뤄보겠다. QR 코드는 휴대폰으로 스캔해도 되지만 그럼 데이터를 다시 PC로 옮기기 귀찮기 때문에 온라인 스캐너를 사용하면 편하다(https..

워게임/CTFlearn 2022.08.28

[SharkyCTF] SIMPLE - 리버싱 / 어셈블리어 / IDA

문제 제목처럼 간단한 어셈블리 리버싱 문제 문제의 목표는 프로그램이 1 을 리턴하도록 하는 적절한 입력값을 찾는 것이다. BITS 64 SECTION .rodata some_array db 10,2,30,15,3,7,4,2,1,24,5,11,24,4,14,13,5,6,19,20,23,9,10,2,30,15,3,7,4,2,1,24 the_second_array db 0x57,0x40,0xa3,0x78,0x7d,0x67,0x55,0x40,0x1e,0xae,0x5b,0x11,0x5d,0x40,0xaa,0x17,0x58,0x4f,0x7e,0x4d,0x4e,0x42,0x5d,0x51,0x57,0x5f,0x5f,0x12,0x1d,0x5a,0x4f,0xbf len_second_array equ $ - the_seco..

CTF/리버싱 2022.08.27

[CTFlearn] BruXOR - 암호학 / XOR

CTFlearn의 열여섯번째 문제 다시 난이도가 easy 로 돌아왔다. 사실 이 문제는 풀이수가 무색할만큼 아주 쉽게 풀 수 있다. 이번 문제는 암호학 문제이다. 제목을 보면 BruXOR 이라고 되어있는데 바로 떠오르는게 XOR 키값을 Burte Force(무차별 대입) 하는 것이다. q{vpln'bH_varHuebcrqxetrHOXEj 문제에서 주어지는 암호문은 위와 같다. 적절한 XOR 키를 찾아 연산해주면 된다. XOR은 두 명제 가운데 한 개만 참일 경우를 판단하는 논리 연산이다. 0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0 이렇게 둘다 0이거나 1일 경우 0이되고, 두 값이 1과 0으로 서로 다를경우 1이 되는 논리연산이다. 하지만 이렇게 일일이 계산안해..

워게임/CTFlearn 2022.08.26

[Root Me] Local File Inclusion - 웹해킹 / LFI

30점짜리 웹해킹 문제 문제 제목에서 알 수 있는것처럼 LFI (Local File Inclusion) 과 관련된 문제이다. 문제의 목표는 admin section 에 접속하는 것이다. 문제 페이지에 접속했을 때 화면이다 File viewer 라는 제목의 웹페이지로 이름 그대로 서버 내에 있는 파일을 보여주는 기능이 있다. 각각의 메뉴를 눌러보면 중요한 특징이 하나 보이는데 sysadm 메뉴를 클릭할 경우 URL 이 ?files=sysadm 으로 바뀌고, reseau 메뉴를 클릭할 경우 URL 이 ?files=reseau 로 바뀐다는 것이다. 나머지 메뉴들도 모두 똑같이 동작한다. 여기서 파일 이름은 index.html 를 클릭하면 index.html 의 내용을 볼 수 있다. 웹페이지의 오른쪽 끝에 보면..

워게임/Root Me 2022.08.25

[SharkyCTF] Give Away 1 - 포너블 / RTL / IDA / Peda / Pwntool

이전에 포스팅 했던 GIVE AWAY 0 보다 한단계 어려워진 문제이다. (https://hackingstudypad.tistory.com/237) 이전 문제와 차이점은 주어지는 파일을 보면 직관적으로 알 수 있는데 지난번에는 0_give_away 라는 바이너르 파일 하나만 제공되었으나 이번에는 give_away_1 바이너리 파일과, libc-2.27.so 파일이 같이 제공되는것을 볼 수 있다. 여기서 사용되는 기법은 RTL (Return To Libc) 라는 기법으로 ret 부분에 적힌 주소를 libc 영역으로 바꿔 libc 에 들어있는 함수를 불러와 실행하는 것이다. 이전 문제는 win_func 라는 shell을 실행시킬 수 있는 함수가 프로그램 내에 내장되어 있었다면, 이번 문제는 그런 함수가 없이..

CTF/포너블 2022.08.24
반응형