목록분류 전체보기 (285)
tmxklab
이번에 웹 해킹을 공부하기 위해 바로 워게임 사이트에서 문제를 풀면서 공부하는 것이 아니라 전체적인 웹에 대한 이해도를 높이기 위해 직접 웹 개발을 하기로 한다. 직접 웹 개발을 하면서 기본적으로 서버 사이드 언어(php, jsp, ...)의 문법을 익힐 수 있고 추가로 더 필요한 공부(웹 프레임워크, http헤더, ...)를 하면서 이후에 웹 해킹할 때 도움이 될 것이다. 웹 사이트 개발은 Laravel프레임워크를 사용해서 php웹 사이트를 구축하기로 한다. php와 프레임워크를 사용한 이유는 예전에 학교에서 프레임워크를 사용하지 않고(스프링 과목을 듣지 못해서ㅠ) jsp를 사용해서 웹 사이트를 개발했었던 적이 있어 이번 기회에 써보지 않았던 php와 프레임워크를 공부겸? 개발하고자 한다. 01. 프로..
보호되어 있는 글입니다.
1. 문제 확인 이전 홈페이지 로고가 무지개색이 아니었냐고 하면서 어떻게 작동되는지 궁금해한다. 나도 궁금하다. 그리고 홈페이지 링크와 hint가 주어진다. 2. 문제 접근 먼저 힌트를 보면 8비트 단위로 끊어진 바이너리를 확인할 수 있다. 얼마 안되는 거 같아서 아스키코드표를 참고하면서 열심히 옮겨 적었다... 힌트 내용이 바이너리를 고려했냐고 한다. 이제 홈페이지의 로고가 어떻게 되어있는지 보자 마우스를 가져다 대면 색깔이 변경된다. 하다 보니 재밌어서ㅋㅋㅋ 다 바꿨다. 최종적으로 변경된 모습은 그런데 이거를 가지고 무엇을 할까 하다가 html파일을 확인해보니 각 점들의 좌표?는 cx, cy로 색깔은 rgb로 설정된다. 처음에는 바이너리와 관련되어 있는 문제인 것 같아서 rgb(0,82, 72)인 점..
1. 문제 확인 wav파일이 주어지고 해당 wav파일에 무언가 통신을 한다고 되어있었다. 2. 문제 접근 wav파일을 켜서 들어보면 잡음이랑 이상한 소리만 나온다... wav파일로 어떻게 해야될지 몰라서 구글링하던 중에 스펙트럼에 flag값이 써있는 경우가 있다고 하여 음성 편집기? 툴을 다운받아서 파일을 올려봤다. download link : https://www.audacityteam.org/download/ Download Download Audacity Download the free Audacity audio editor for Windows, Mac or Linux from our download partner, FossHub: Download Audacity for Windows, Mac o..
1. 문제 확인 바이너리 파일이 주어지고 이번에는 플래그 파일의 경로를 알려준다. 1) mitigation 2-1) main() → vuln() void __cdecl vuln() { char name[40]; // [rsp+0h] [rbp-30h] puts("Where would you like to return to?"); gets(name); } 이번에도 gets로 받는다. → bof쌉가능 2-2) setup() → sandbox() void __cdecl sandbox() { sock_fprog prog; // [rsp+0h] [rbp-10F0h] sock_filter filter[25]; // [rsp+10h] [rbp-10E0h] bpf_labels lab; // [rsp+E0h] [rbp-1..
1. 문제확인 바이너리 파일이 주어진다. 1) mitigation 확인 2) main() → vuln() __int64 vuln() { char v1; // [rsp+0h] [rbp-30h] puts("Where would you like to return to?"); return gets(&v1); } 카나리도 안걸려있고 gets()로 bof쌉가능 2. 문제 풀이 pop rdi; ret가젯이 없는 줄 알고 rtc로 gets주소 릭하고 하위 1.5바이트로 libc찾아냄 하위 3비트 : 0x0b0 libc 다운받아서 원샷 가젯을 찾음 원샷 가젯 실행하면 된다. 1) 익스코드 from pwn import * #context.log_level = "debug" #p = process("./return-to-w..
checksec스크립트나 peda-gdb, pwndbg를 이용하면 mitigation확인할 수 있음 1. ASLR(Address Space Layout Randomization) 메모리 상의 공격을 어렵게 하기 위해 스택이나 힙, 라이브러리 등의 주소를 랜덤으로 프로세스 주소 공간에 배치함으로써 실행할 때마다 데이터의 주소가 바뀌게 하는 기법 현재 실행되고 있는 프로세스 주소 매핑 확인 cat /proc/self/maps → 주소가 랜덤하게 바뀌는 것 확인 ASLR 활성화 및 비활성화 echo [0, 1, 2] > /proc/sys/kernel/randomize_va_space [0] : ASLR 비활성화 [1] : 랜덤 Stack, Library 활성화 [2] : 랜덤 Stack, Library, He..
1. RTC(Return to csu) ROP를 해야하는데 가젯 제한으로 rdi, rsi, rdx를 구성하기 힘들 때 유용하게 사용할 수 있는 기법으로 __libc_csu_init()을 이용한다. csu & __libc_csu_init() 참고 자료) Linux Binary Execution Flow(main함수 호출 및 종료 과정) main()가 호출되고 종료되는 과정에 대한 지식이 필요하여 이번에 정리하게 되었다. 우리가 흔히 .c파일을 작성하여 컴파일 과정을 마치면 결과물로 linux실행파일인 elf파일이 생성된다. 이제 elf파 rninche01.tistory.com 위 참고 자료를 보면 알 수 있듯이 __libc_csu_init()에서는 __init_array에 설정된 함수 포인터를 읽어서 호출..
FSOP기법을 사용하기 위해서는 file stream을 사용하는 함수가 존재해야하고 file stream을 변조할 수 있으면 가능하다. FSOP를 통해서 할 수 있는 거는 libc주소를 릭하거나 file stream의 vtable주소를 변조하여 원하는 함수로 이동할 수 있다. 이거를 이해하기 위해서 먼저 _IO_FILE struct, _IO_FILE_plus struct를 이해해야 한다. 참고 : stdout flag를 이용한 libc leak stdout flag값을 변경하여 libc주소를 leak하는 방법을 정리하였다 따로 libc주소를 leak할 방법이 없을 때 유용하게 쓰일 것 같당ㅎㅎ 관련 문제 : [HackCTF/Pwnable] ChildHeap stdout을 이용한 libc주소 leak &...
_IO_FILE struct, _flags, _IO_FILE_plus struct, vtable 등에 관한 개념은 다음 링크를 참고하길 바란다. stdout flag를 이용한 libc leak stdout flag값을 변경하여 libc주소를 leak하는 방법을 정리하였다 따로 libc주소를 leak할 방법이 없을 때 유용하게 쓰일 것 같당ㅎㅎ 관련 문제 : [HackCTF/Pwnable] ChildHeap stdout을 이용한 libc주소 leak &.. rninche01.tistory.com 1. fclose() 내부 루틴 fclose에 대한 코드는 glibc/libio/iofclose.c에 있으며 함수 이름은 _IO_new_fclose이다. 1.1 _IO_new_fclose() int _IO_new_..