보안/Wargame 19

[System Hacking] Tcache Poisoning

보호기법 확인PIE 없음NX 적용됨 -> 셸코드를 실행하기 어려움FULL RELRO 적용됨 -> GOT 오버라이트 공격 수행하기 어려움 => hook overwrite 고려.소스코드 분석// Name: tcache_poison.c// Compile: gcc -o tcache_poison tcache_poison.c -no-pie -Wl,-z,relro,-z,now#include #include #include int main() { void *chunk = NULL; unsigned int size; int idx; setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); while (1) { printf("1. Allocate\n"); printf..

보안/Wargame 2025.02.13

[System Hacking] out_of_bound

>> 소스코드 >> 메모리 구조 higher.. --stack-- Return addressold EBP [ebp]push ecx [ebp - 4]? [ebp - 8]? [ebp - 12]idx값 [ebp - 16] -- stack-- namecommand lower.. Q. idx의 주소는 어떻게 알았는가?A.소스 코드를 보면 idx는 scanf()의 두번째 argument로 입력되므로,어셈블리에서 scanf()가 호출되기 전 부분을 보고, 그 순간에 stack에 push되는 걸 보자.   0x08048723 :    lea    eax, [ebp-0x10]    0x08048726 :    push   eax    0x08048727 :    push   0x8048832    0x0804872c :..

보안/Wargame 2024.07.10

[Web Hacking] file-download-1

>> 소스 코드 upload 과정에서는 filename에 ".."가 들어가는지 점검한다. 그러나 download 과정에서는 filename에 ".."가 들어가는지 확인하지 않는다.  >> exploit 소스코드를 보면,업로드되어있는 파일을 읽기 위해서는/read에 "name" parameter를 전달해야 한다. 실제로 업로드&read 테스트를 해봐도,http://host3.dreamhack.games:21074/read?name=mytitle로 접속하게 됨을 확인할 수 있다. 즉, http://host3.dreamhack.games:21074/read?name=☆로 접속함으로써, ☆ 파일을 읽는 것이다. 그러므로, 만약 공격자가 상위 디렉토리의 flag.py를 읽고 싶다면,☆ 자리에 ../flag.py를..

보안/Wargame 2024.07.09

[Web Hacking] image-storage

>> 소스코드 분석  # list.phpline 26~32의 php에 의해,현재 위치 아래의 uploads 폴더 내 파일들(중 .., ., index.html는 제외)의 list가 출력된다. # upload.php※ move_uploaded_file(A, B): 파일 A가 php의 HTTP POST 방식으로 업로드 되었는지 확인한 뒤 B로 옮김 이용자는 http://host1.dreamhack.games:[PORT]/uploads/[FILENAME] URL을 통해 파일에 접근 가능   >> exploit # 공격자는 뭘 할수 있는가? 어떤 파일이든 서버에 올릴 수 있다. # 그 파일로 뭘 수행해야 하는가? 이 파일이 실행됨으로써,서버가 "cat /flag.txt" 명령어를 실행하고 그 결과를 브라우저에 ..

보안/Wargame 2024.07.08