IT/Wargame 16

[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 :..

IT/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를..

IT/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" 명령어를 실행하고 그 결과를 브라우저에 ..

IT/Wargame 2024.07.08