WAR GAME/HackCTF 43

[HackCTF : Pwnable] wishlist 풀이 (64bit, uaf, stack pivoting)

문제 풀이 환경 : ubuntu 18.04 16.04 사용 툴 : IDA 7.5 pro (로되리안) 리모트 셸을 못따서 주변사람들한테 물어보려고 노션으로 내가 분석한 것, 익스코드 왜 이렇게 작성했는지.. 등 적다가 다 적고 마지막에 혹시몰라서 우분투 버전 바꾸니 바로 셸 따인 문제 ㅠㅁㅠ www.notion.so/jir4vvit/HackCTF-wishlist-3e59ae8ac0ce4a5cb8a333d78703be5f [HackCTF] wishlist 워게임 사이트 : HackCTF (https://ctf.j0n9hyun.xyz/) www.notion.so

WAR GAME/HackCTF 2021.04.30

[HackCTF : Pwnable] pzshell 풀이 (64bit, shellcode, shellcraft, orw, getdents)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro shellcode랑 친하지 않은 나2... 주어진 파일은 바이너리 파일과 c코드 Analysis mitigation 미티게이션...?은 아니지만 미티게이션 느낌이 나는 seccomp도 걸려있다 ㅠ_ㅠ execution 뭐 제대로 입력도 안했는데 세폴뜬다. 코드를 확인해보자. code 세콤이 걸려있다. 저 함수들은 쓰면 안된다. 바로 직전 문제 ezshell에서 사용했던 execve 함수는 사용하지 못한다... 그래서 open read write를 하기로 했다. 필터는 syscall만 걸려있는데, result 첫부분을 보면 syscall이 있다. 이 전의 ezshell문제처럼 syscall을 사용할 때 저기로 jmp를 해줘야 겠다..

WAR GAME/HackCTF 2021.04.30

[HackCTF : Pwnable] ezshell 풀이 (64bit, shellcode)

일문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro shellcode랑 친하지 않은 나... 주어진 파일은 바이너리 파일과 c코드 Analysis mitigation 풀렐로... execution null이요..? code 쉘코드를 제작해야하는 문제.. 저기 필터링이 보이는데 syscall을 의미하는 0f 05가 필터링 되어있다 ㅠ 3b는... 59번 execve 실행을 방지하는 걸로 보인다. b0은 분석할때는 몰랐고 문제 풀때 알게 되었는데 이걸 뜻한다. 저 구문을 왜 사용했냐면 필터링된 3b를 우회하기 위해 al에 3a를 옮겨놓고 inc하려고 했다 ㅎㅎ; 아무튼.. 내가 shellcode를 작성하면 result에 내가 작성한 shellcode를 옮겨 붙이고 result+2부..

WAR GAME/HackCTF 2021.04.30

[HackCTF : Pwnable] World Best Encryption Tool 풀이 (64bit, leak)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro 하 못 풀 뻔 . . . 주어진 파일은 바이너리 파일 뿐 Analysis 일단 실행 나의 인풋을 암호화해준다. 그리고 Yes나 No를 입력해서 계속 이어가거나 종료할 수 있다. IDA 저기서 bof가 터진다. 그리고 바로 아래 for문에서 암호화를 시킨다. strncpy 함수는 0x39 복붙한다. 위에서도 언급했지만, Yes나 No를 입력해서 계속 이어가거나 종료할 수 있다... How to exploit 보호 기법 카나리가 존재한다... bof를 일으켜서 RET를 건드리려면 카나리 릭이 필수적이다. Summary canary 릭 libc 주소 릭 system('/bin/sh') 실행 카나리 릭 할 때는 카나리가 '\x00'으로..

WAR GAME/HackCTF 2021.04.28

[HackCTF : Pwnable] adultfsb 풀이 (64bit, FSB)

문제 풀이 환경 : ubuntu 16.04 사용 툴 : IDA 7.5 pro 풀렐로일땐 rtld! 카나리도 없고 풀렐로이다. (got overwriting을 못한다.) fsb는 터지지만 bof는 터지지 않는다. 하지만 fsb로 모든게 해결이 가능하다. 두 번 터져서 넘 좋다. Summary libc leak rtld를 one_gadget으로 overwriting from pwn import * #p = process('./adult_fsb') p = remote('ctf.j0n9hyun.xyz', 3040) e = ELF('./adult_fsb') libc = ELF('./libc.so.6') rtld_offset = 0x5f0f48 one_gadget_offset = 0xf1147 # offset 8 ..

WAR GAME/HackCTF 2021.04.26

[HackCTF : Pwnable] childfsb 풀이 (64bit, FSB)

문제 풀이 환경 : ubuntu 16.04 사용 툴 : IDA 7.5 pro fsb, bof 둘 다 터짐 하지만 bof로 RET를 건들 수는 없고, canary를 건드려 __stack_chk_fail 함수만 호출가능할 정도... +로 직전에 풀었던 babyfsb 문제와 달라진 점이있는데, read함수로 적을 수 있는 size가 0x19로 매우 짧아졌단 것. 그래서 두바이트씩 찔끔찔끔 덮어야 한다. Summary __stack_chk_fail 함수를 main 함수로 overwriting libc 주소 leak main의 ret를 one_gadget으로 overwriting 처음에 __stack_chk_fail 함수를 main 함수로 overwriting할 때, 하위 2바이트만 덮어도 된다. main의 re..

WAR GAME/HackCTF 2021.04.26

[HackCTF : Pwnable] babyfsb 풀이 (64bit, FSB)

문제 풀이 환경 : ubuntu 16.04 사용 툴 : IDA 7.5 pro partial relro인데 마땅히 덮을 got가 없다면? __stack_chk_fail 함수를 덮어라! (canary가 존재할 시) 사실 bof가 터지는게 먼저입니다 fsb, bof 둘 다 터짐 하지만 bof로 RET를 건들 수는 없고, canary를 건드려 __stack_chk_fail 함수만 호출가능할 정도... 마땅히 덮을 만한 함수가 없으니 이것을 원가젯으로 덮기로 함 Summary __stack_chk_fail 함수를 main 함수로 overwriting libc 주소 leak __stack_chk_fail 함수를 one_gadget으로 overwriting from pwn import * p = process('./..

WAR GAME/HackCTF 2021.04.26

[HackCTF : Pwnable] You are silver 풀이 (64bit, FSB) (수정)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro 64bit FSB 잘 몰라서 진짜 대충대충 인터넷에 떠도는 fsb 자료들 보고 야매로 풀었다... ㅎ 주어진 파일은 문제파일 바이너리 Analysis 일단 실행 이름을 입력하니까 입력했던게 출력이 되고, 나보고 silver라고 한다. 그리고 세폴이 뜨며 중지된다. 왜그런거지..?! IDA main을 살펴보자. 저기 대놓고 fsb가 터진다. bof도 터지는데, 쪼잔하게 터져서 RET를 건들수 없다. 문제풀 때 대충 그린건데.... 이해는 갈거라 생각한다. get_tier함수를 살펴보자. 요악하자면 인자가 a1인데, 인자로 들어온게 'K' 즉, 75보다 크면 4를 반환한다. (내가 왜 여기만 보여주는지는 밑에가서 알 수 있을 것) ..

WAR GAME/HackCTF 2021.04.20

[HackCTF : Pwnable] Unexploitable #3 풀이 (64bit, RTC, fwrite)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro RTC 기법으로는 인자를 3개까지 제어할 수 있다. 그런데 fwrite는 인자가 4개이다. 마지막 인자는 어떻게 제어해야 할까...? 가 이 문제의 핵심이다. 주어진 파일은 문제파일 바이너리 Analysis 일단 실행 이전 unex~1,2랑 흐름이 똑같다. IDA main에서 bof가 일어난다. gift 함수가 있는데.... 가젯 안준단다. 너무하다.... How to exploit fwrite로 leak해서 ROP를 진행해야겠다. 그런데 ROPgadget으로 잘 살펴보면 가젯이 부족하다... 이럴때 요긴하게 쓸 수 있는 방법이 아래의 RTC 기법이다. jiravvit.tistory.com/entry/RTC-Return-to-C..

WAR GAME/HackCTF 2021.04.20

[HackCTF : Pwnable] RTC 풀이 (64bit, RTC)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro 인텐 풀이. 주어진 파일은 문제파일 바이너리 and libc Analysis jiravvit.tistory.com/entry/HackCTF-Pwnable-RTC-%ED%92%80%EC%9D%B4-64bit-ROP [HackCTF : Pwnable] RTC 풀이 (64bit, ROP) 문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro RTC 기법 공부해보려고 이 문제 풀었는데 호옥시나..?! 하는 마음에 풀어봤더니 성공했다. 주어진 파일은 문제파일 바이너리 and libc Analsysis 일단 실 jiravvit.tistory.com How to exploit RTC 기법 사용 jiravvit.tist..

WAR GAME/HackCTF 2021.04.20