본문 바로가기

Security

(23)
[WebHacking] webhacking.kr 6번 문제 풀이 6번 처음 6번문제를 들어가고 난후 웹사이트에 아무런 힌트가 없는거 같아 view.source를 눌렀다. 그 후 아래와 같은 코드가 나왔다. 들어가자마자 코드를 확인하는데 처음 푸는 웹해킹 문제라 그런지 아는 함수나 문구등이 별로 없었다. 그래서 살펴보다가 마지막에 if($decode_id=="admin" && $decode_pw=="nimda"){ solve(6); 디코딩한 id가 admin이고 디코딩한 pw가 nimda이면 6번 문제가 풀린다는 의미 같다고 생각을 했다. 그 후 위에서부터 차례대로 모르는 함수들을 찾아보기 시작했다. if($_GET['view_source']) view_source(); if(!$_COOKIE['user']){ $val_id="guest"; $val_pw="123qwe..
[Reversing] 간단한 문제 풀이 2 처음 문자열 순으로 정리를 하고 Congratulations가 있는 부분으로 점프해 살펴보니 401135부분으로 가면 Inconnect가 되 답을 풀지 못한다. 그래서 401135로 가는 4가지 부분을 종단점으로 설정하고 Ctrl + F9를 눌러 아무 문자나 입력하고 실행을 했다. 그러니 이부분에서 걸렸다. 코드를 자세히 살펴보니까 esp +5인 부분이 61의 아스키코드 값인 a이면 push2부분으로 무사히 넘어가는 코드였다. 그래서 esp+5의 자리인 2번째 자리에 a를 입력한다. 이 부분에서 아스키코드 값인 5y의 password 위치를 찾기 위해 AaAAAAAAAAA를 입력해 보았는데 3번째 자리인 A부터 순서대로 ecx에 기록되는 것을 알았다. 그래서 5y는 3,4번쨰 자리에 입력한다 그 후 R3..
[Reversing] 간단한 문제 풀이 1번 : push ebp //프롤로그 mov ebp,esp //프롤로그 sub esp,0x32 //esp를 -32한 곳의 영역으로 옮긴다. mov DWORD PTR [ebp-0x4],0x1 // ebp-4에 1을 넣는다. mov DWORD PTR [ebp-0x8],0x2 // ebp-8에 2을 넣는다. mov DWORD PTR [ebp-0x12],0x3 // ebp-12에 3을 넣는다. mov edx,DWORD PTR [ebp-0x4] // ebp-4에 있는 1을 edx에 넣는다. mov eax,DWORD PTR [ebp-0x8] // ebp-8에 있는 2을 eax에 넣는다. add eax,edx // eax와 edx를 더해서 eax에 넣는다. -> eax = 3 mov DWORD PTR [ebp-0x1..
[Pwnable] dreamhack Basic_BOF #2 문제 풀이 IDA 를 이용해 열면 위와 같은 그림이 나오고 이를 F5 키를 사용해 코드 형태로 바꿔주면 다음과 같은 main 부분이 나온다. S 라는 문자형 데이터가 존재하고 v5 라는 포인터와 fgets 를 이용해 133byte 까지 받도록 하는 것이 가장 눈에 띈다. 그리고 이 코드 내에 존재하는 함수들을 다 살펴 보았는데 Shell 함수가 눈에 띄었다 이 함수를 이용해 권한을 획득하면 되겠다고 감을 잡았고 shell 함수를 어셈블리어로 보았을 때 시작 주소가 804849B 라는 것을 확인 할 수 있었다 그 후 스택 구조를 살펴 보았는데 위와 같이 s 와 var_c(v5)의 거리 차가 128byte 라는 것을 이용해 128byte 만큼 아무 문자를 집어 넣고 shell 함수를 실행하면 되겠다는 생각을 가졌다. ..
[Pwnable] dreamhack basic_exploitation_000 문제 풀이 먼저 문제를 살펴보면 아무런 보호기법이 없다는 것을 확인 할 수 있고 canary와 같은 까다로운 보호기법을 생각하지 않아도 된다는 정보를 얻고 시작한다. 소스코드를 살펴보면 다음과 같은데 일단 main 안쪽부터 살펴보면 buf가 0x80이란 크기로 할당 되어 있고 initialize 함수 실행 후 printf를 이용해 현재 buf의 주소값을 프린트한 후 scanf를 이용해 buf에 최대 141바이트까지 입력 받는다는 것을 알 수 있다. 여기서 주목 해야 할 점은 buf 의 크기가 0x80, 즉 128 바이트이지만 scanf 로 받는 최대 바이트의 크기는 141 바이트라는 점이다. 이점을 이용해 bof 를 발생 시킬 수 있다는 점이 이 문제의 핵심 포인트이다. 추가로 다른 initialize 와 alar..
[Forensic] N0named wargame [B] 유출된 자료 거래 사건[3] 문제 풀이 이번에 풀어볼 문제는 N0named wargame 문제 중 하나인 infect문제를 풀어볼 것이다. 아래 링크를 클릭하면 N0named사이트에 연결됩니다. ctf.no-named.kr:1234/ 일단 문제를 풀기 전에 FTK Imager - AccessData (포렌식 작업에서 발생될 수 있는 사고를 방지하기 위해 미디어 이미지를 복제하는데 사용됨.) 위 프로그램이 필요합니다. 주어진 파일을 FTK로 보면 nonamed라는 사람을 제외하고 cocktail이라는 사람이 한 명 더 보인다. 이제 동거자의 이름을 알았으니 계정이 삭제된 시각을 알아내야 하는데 이번 주차에 배운 윈도우 이벤트(windows eventlog)를 활용하면 되겠다. 이벤트 로그에 관한 내용은 kali-km.tistory.com/ent..
[Forensic] N0named wargame [B] 유출된 자료 거래 사건[2] 문제 풀이 이번에 풀어볼 문제는 N0named wargame 문제 중 하나인 [C]우리의 추억들문제를 풀어볼 것이다. 아래 링크를 클릭하면 N0named사이트에 연결됩니다. ctf.no-named.kr:1234/ FTK Imager - AccessData (포렌식 작업에서 발생될 수 있는 사고를 방지하기 위해 미디어 이미지를 복제하는데 사용됨.) DBbrowser for SQLite (DB파일 읽는 프로그램) NTFS Log Tracker - blueangel(NTFS의 $LogFile, $UsnJrnl, $MFT 파일을 파싱하여 CSV파일포맷으로 결과를 출력하는 기능을 제공한다.) 문제 풀기에 앞서 위 3가지 프로그램이 필요하다. 힌트인 (파일을 입수한 경로를 찾아보면 찾기 편할 수도?)를 바탕으로 대부분의 파일..
[Forensic] N0named wargame [C]우리의 추억들 문제 풀이 이번에 풀어볼 문제는 N0named wargame 문제 중 하나인 [C]우리의 추억들문제를 풀어볼 것이다. 아래 링크를 클릭하면 N0named사이트에 연결됩니다. ctf.no-named.kr:1234/ FTK Imager - AccessData (포렌식 작업에서 발생될 수 있는 사고를 방지하기 위해 미디어 이미지를 복제하는데 사용됨.) Thumbnail Database Viewer(DB에 존재하는 썸네일을 읽을때 사용) 위 2 가지 프로그램이 필요합니다. 위의 파일을 다운로드 받고 압축을 풀면 아래와 같은 파일들이 보입니다. 먼저 AD1파일이 보이므로 FTK Imager을 사용해 일단 열어본다. 문제에서 실수로 중요한 사진들을 지웠다고 했으니까 휴지통에 파일이 들어가 있을 확률이 있어 root/Recyc..