Wargame

    [N0Named Forensic] [B] 유출된 자료 거래 사건 1

    [N0Named Forensic] [B] 유출된 자료 거래 사건 1

    FTK로 열어 SOFTWARE를 내보내고 REGA로 열 생각이다. USB 연결 흔적이 저장되어 있는 레지스트리 경로 HKLM\SOFTWARE\Microsoft\Windows Portable Devices\Devices 를 들어가보면, 2개의 키가 존재한다. 플래그 형식에도 2개의 USB가 쓰인 것 같으니 맞는 것 같다. 키 경로 이름 자체에 모든 정보가 포함되어 있다. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\Devices\WPDBUSENUMROOT#UMB#2&37C186B&0&STORAGE#VOLUME#_??_USBSTOR#DISK&VEN_SANDISK&PROD_ULTRA&REV_1.00#4C531001431019122384&0# ..

    [N0Named Forensic] [C] Left Side B

    [N0Named Forensic] [C] Left Side B

    문제 속에 답이 있다고 한다.. 누가봐도 LSB 문제 파일 task.bmp 를 열어보면 fake flag가 보인다. LSB 스테가노그래피 디코딩을 하기 위해 HxD로 열어보자. 0x7C가 실제 데이터의 시작을 뜻하는 부분이고, 그 곳에는 0xFEFFFEFEFFFF .. 의 데이터가 담겨있다. 이 문제는 LSB 스테가노그래피를 통해 푸는 문제로 생각되므로, 0xFE와 0xFF를 2진수로 바꿔보자. 0xFE = 1111 1110 (2) 0xFF = 1111 1111 (2) Least Significant Bit, 즉 최하위 비트를 살펴보았을 때 0xFE -> 0 0xFF -> 1 로 대체해도 무방하다. 아래처럼 데이터를 0, 1로 바꾸고 8 bit binary를 ascii로 변환하는 코드를 짜면 플래그가 나온다

    [N0Named Forensic] [A] 123321123200

    [N0Named Forensic] [A] 123321123200

    fore5.png 파일을 보면, 아래와 같은 구조를 가진다.. PNG / GNP / GNP / ... / GNP / GNP / PNG 여기서 말하는 PNG는 일반적인 파일의 구조이고, GNP는 일반적인 PNG 파일의 헥스값이 byte 단위로 리버스된 구조이다. 여기서 'GNP' 구조가 굉장히 많기 때문에 손카빙을 불가능하고 코드를 짜야한다. 결국 아래 순서대로 이 문제를 풀었다! 앞 뒤의 순행 PNG 떼기 가운데의 리버스 PNG(GNP ~)를 순행으로 하기 위해 [::-1] 시그니처 단위로 PNG 파일을 자르고 저장 저장된 여러 개의 PNG 중 플래그 찾기 몇 개더라.. 77갠가 있고 그 중 47번짼가? 에 있다ㅎㅋ

    [N0Named Forensic] [A] 수상한 메일

    [N0Named Forensic] [A] 수상한 메일

    이런 파일이 주어진다. '첨부파일' 폴더에는 '제출용.hwp' 파일이 담겨있고, '메일내용.txt'은 아래와 같다. 별 내용은 없어보인다. 한글 파일을 실행하면 스크립트 코드가 포함되어 있다고 하는데 여기서 '실행'을 누르면 보안 경고가 '매우 높음'이어서 실행이 불가능하다고 한다. 그래서 수준을 '보통'으로 낮춰보았다. 그리고 재실행해보면 또 보안 경고가 뜨는데, 오브젝트가 등록되어 있지 않아서 그렇다. 여기서 바로 '실행'을 누르면 오브젝트에 대한 상세한 정보를 보기 어려울 것 같아서 '등록 후 실행'을 눌러 먼저 오브젝트 등록을 해보자. 이제 보안 설정 창의 등록된 오브젝트 탭에서 'Script.Shell' 오브젝트가 보인다. 그런데 스크립트 코드는 오브젝트 등록과는 상관없어 보인다... 보기 > ..

    [N0Named Forensic] [A] 입사 테스트[2]

    [N0Named Forensic] [A] 입사 테스트[2]

    task.jpg 파일이 주어지지만 이는 시그니처와 확장자를 교묘하게 변경한 png 파일이다. 1. 헤더 변경: 0x89504E47030A1A0A (변경 전) (변경 후) 2. 푸터 삭제 (변경 전) (변경 후) 3. 확장자 변경: jpg -> png 그러면 이렇게 까만 사진이 보인다. png에서 이쯤해서 안되면 다 청크 문제일거다ㅜ 4. tweakPNG 또는 010editor 등 청크 뷰어로 파일을 열고 청크 수정하기 tweakPNG에서 열어봤더니 IHDR(헤더), IDAT(데이터), IEND 청크를 제외한 fcTL, acTL, fdAT, tRNS 등의 청크가 보인다. fcTL, acTL, fDAT, tRNS를 구글링해보니, 일반적인 PNG 파일이 아니라 여러 PNG를 이어 움짤 형태로 보여지는 APNG..

    [dreamhack web] pathtraversal

    [dreamhack web] pathtraversal

    pathtraversal 사용자의 정보를 조회하는 API 서버입니다. Path Traversal 취약점을 이용해 /api/flag에 있는 플래그를 획득하세요! Reference Server-side Basic dreamhack.io Get User Info 화면에서 userid 값을 입력할 수 있다. 기본값인 guest를 넣으면 아래와 같이 userid, level, password가 json 형태로 표시된다. admin을 넣으면 아래와 같이 출력된다. 두 경우 모두 userid 값이 기본값인 'guest'로 바뀌기 전, guest와 admin이 각각 0, 1로 설정되는 것을 볼 수 있다. 그렇다면 guest, admin 대신 다른 값을 넣으면? 위처럼 'undefined'가 잠시 뜨고 다시 기본값으로 ..

    [dreamhack web] file-download-1

    [dreamhack web] file-download-1

    Upload My Memo 메뉴에서 Filename과 Content를 채워 넣으면 메인 화면 리스트에 추가되고 아래처럼 내용을 볼 수 있다. 바로 위 화면을 분석해보자면 {filename 값 + Memo}가 리스트에서 선택한 파일의 제목이 되고 Content 안에는 입력한 content 값이 그대로 들어가는 것을 알 수 있다. 문제 지문에서 'flag.py'를 다운로드 받으라고 했으니 flag.py 파일을 만들면 될 듯하다. 리스트에서 선택하면 보여지는 화면이 다운로드라고 생각하면 될 것 같다. 추가로 이 문제는 파일 다운로드 취약점을 이용하는 것이니 filename=flag.py가 아니라, 디렉터리 이동이 필수적일 것이다. 디렉터리가 어떻게 구성되어 있는지는 모르지만 일단 바로 윗 디렉터리로 가보자. ..

    [dreamhack web] cookie, simple_sqli

    [dreamhack web] cookie, simple_sqli

    cookie 먼저 코드를 보면, default account 정보가 나와있다. Login 폼으로 이동해 로그인해보자. 그러면 guest로 로그인된다. 이 때 쿠키를 보면 username 쿠키값으로 guest가 들어가있다. guest로 로그인했을 때 'username=guest'였으므로 admin으로 로그인했을 땐 'username=admin'일 것이다. 따라서 value를 admin으로 수정한 뒤 저장, 새로고침해본다. 플래그 등장 simple_sqli 먼저 로그인 폼으로 이동하자. 아래처럼 guest/guest로 로그인을 시도해보았다. 그럼 이렇게 얼럿이 뜬다. 얼럿에 뜨는 문자열을 'hello admin'으로 뜨게 하면 될 것 같다. 다음은 admin/admin으로 로그인 시도한 것이다. 즉 비밀번호..

    [ctf-d Network] DefCoN#21 #4

    [ctf-d Network] DefCoN#21 #4

    문제 파일을 NetworkMiner에 넣으면 2개의 Message가 카빙된다. 메시지 데이터가 마크업 언어로 되어 있고 'KML' 문자열을 검색하니 '키홀 마크업 언어'라고 한다. 그래서 kml 마크업 시작부터 쭉 긁어와 s3cr3t.kml 파일을 메모장에 작성했다. kml 문법을 모두 아는 건 아니지만 대충은 이해가 가능했다. KML이 쓰이는 대표적인 곳이 구글 어스라고 하니 파일 뒷부분의 숫자는 좌표를 의미할 것이다. 하지만 파일의 끝이 쉼표로 되어 있어 데이터가 중간에 잘린 듯하여 손카빙이 필요했다. 먼저 와샥에서 해당 메시지가 들어간 패킷을 찾고 requests 필드값을 모두 복사했다. 그 후 URL Decoder에 넣어보니 네트워크 마이너에서 카빙된 숫자 뒤에 더 많은 숫자들이 있었다. 그 후 ..

    [N0Named Misc] 일세계_이세계_삼세계

    [N0Named Misc] 일세계_이세계_삼세계

    zip 압축을 풀면 아래처럼 무섭게 생긴 애들이 있다. 누가 봐도 game save 파일이어서 뭔가 거대한 걸 설치해야 한다는 생각에 화가 났다. 어서 trial을 다운받자.. ㅎ,, 일단 나는 문제 파일이 어디에 쓰이는지 모르기 때문에 게임을 한 번 실행시켜보고 그 설정 파일이 어디에 남는지 알아야 했다. 실행 후 저장하고 나오니 .minecraft\saves\\ 밑에 문제 파일과 똑같은 파일들이 생긴 것을 발견했다. 이 문제를 빨리 풀고 싶기 때문에 후딱 문제 파일로 덮어씌우고 다시 들어가보자! 경치는 좋지만 아무 것도 찾을 수 없었다.. 결국 gg 치고 껐다. 다시 파일로 돌아가서.. 설정 파일에는 .mca 파일이 많았다. 구글링 해보니 아래와 같은 사이트가 있었다. mca 파일을 드래그 앤 드랍하..

    [N0Named Misc] CalCulateit

    [N0Named Misc] CalCulateit

    20개의 산수를 풀어야 한다. 타임아웃 안에 푸는 것은 불가능하므로 알아서 받아오고 값 넘겨주는 코드가 필요하다. 문제에 맞춰 수정해야 해서 코드를 재활용할 수가 없다. 굳이 설명하자면 아래와 같다. 마지막에 p.interactive를 못해서 좀 헤맸다.. 플래그가 우치다...헤헷..흐뭇^_^

    [N0Named Misc] 아무 의미 없는 것들도...

    [N0Named Misc] 아무 의미 없는 것들도...

    이건 저번에 풀어봤던거였다. 아래 링크 들어가서 decode 하면 된다 spammimic - decoded www.spammimic.com