728x90
반응형
728x90
반응형
728x90
반응형


https://atom.io/ 에서 deb버전으로 설치파일을 다운로드 받는다.


다운로드 받은 경로로 이동한 뒤,


sudo apt install gdebi-core


sudo gdebi atom-amd64.deb


개인적으로, 이때까지 설치한 방법들 중에서 이 방법이 가장 빨랐다.

728x90
반응형
728x90
반응형

MISC 50

REVERSING 50

WEB 50

FORENSICS 50 100 150

[2018] 제16회 청소년 정보보호 페스티벌(YISF)_문제풀이보고서_M4ndU.zip
2.07MB

pw:1234

728x90
반응형

'CTF Write Up' 카테고리의 다른 글

NeverLAN CTF 2019 write up  (0) 2019.02.04
2019 NEWSECU CTF Write-Up  (0) 2019.02.04
KYSIS CTF 2018 Write-Up  (0) 2018.08.07
H3X0R 4rd CTF 2018 Write-up  (0) 2018.07.29
KDMHS CTF 2018 Write-up  (0) 2018.06.18
728x90
반응형

KYSIS CTF 2018 Write-Up


M4ndU



작성일 : 2018.08.07 18:07

공개일 : 2018.08.14 17:11

(7일이나 지났는데 올려도 되겠지...)




WEB - read flag




문제 사이트에 들어가면 alert()가 무한루프 돌아서 아무것도 안된다.



그냥 크롬 설정 - 콘텐츠 설정 - 자바스크립트 에서 차단하고 들어간뒤


페이지 소스보기로 플래그를 확인할 수 있다.








REVERSING - Simple Ransomware




파일이 두개 주어진다.

하나는 플래그가 암호화된 파일이고, 다른 하나는 복호화를 해주는 elf파일이다.




아이다 64비트로 열어서 보았다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
signed __int64 __fastcall main(int a1, char **a2, char **a3)
{
  signed __int64 result; // rax@2
  const char *v4; // rdi@3
 
  if ( a1 == 2 )
  {
    v4 = a2[1];
    if ( !strcmp(v4, "start") )
    {
      sub_400C2F();
      s = sub_400BA0();
      v4 = sub_400B54();
      if ( (unsigned int)sub_400B12((const char *)s) )
        sub_400C66(s);
      else
        sub_400C66(s);
    }
    result = 0LL;
  }
  else
  {
    result = 0xFFFFFFFFLL;
  }
  return result;
}
cs


메인함수다.


  if ( a1 == 2 )

  {

    v4 = a2[1];

    if ( !strcmp(v4, "start") )


인자값으로 start를 주어야 한다.


 sub_400C2F();


1
2
3
4
5
6
7
8
9
int sub_400C2F()
{
  char *v0; // rax@1
 
  v0 = sub_400BFA();
  printf("welcome %s\n", v0);
  puts("I want to Decrypt File!!!!");
  return puts("Maybe you find simple key.. file will be decrypt..");
}
cs


key를 찾으라고 한다.



s = sub_400BA0();


1
2
3
4
5
6
7
8
void *sub_400BA0()
{
  s = malloc(0xAuLL);
  memset(s, 0, 0xAuLL);
  printf("what is key ? ", 0LL);
  gets(s);
  return s;
}
cs


key값을 입력받아서 s에 저장한다.



v4 = sub_400B54();

이 코드는 왜 있는지 잘 모르겠다.



      if ( (unsigned int)sub_400B12((const char *)s) )

        sub_400C66(s);

      else

        sub_400C66(s);


if가 True이든 False이든 같은 작업을 하는데, sub_400C66()함수는 암호화된 파일을 복호화 하는 함수이고

sub_400B12()함수에서 입력했던 key값을 비교한다.


1
2
3
4
5
6
7
__int64 __fastcall sub_400B12(const char *a1)
{
  const char *v1; // rax@1
 
  LODWORD(v1) = sub_400AA5();
  return strcmp(v1, a1) == 0;
}
cs


gdb로 열어서 strcmp에 breakpoint 걸고 v1의 값을 확인해보면 key값을 얻을 수 있다.



해당 부분은 0x400B3D이고 인자의 주소가 각각 rsi, rdi에 저장되어 있다.


mandu@mandu-VirtualBox:~/바탕화면$ gdb -q Let_Decrypt

Reading symbols from Let_Decrypt...(no debugging symbols found)...done.

(gdb) b * 0x400B3D

Breakpoint 1 at 0x400b3d

(gdb) r start

Starting program: /home/mandu/바탕화면/Let_Decrypt start

welcome mandu

I want to Decrypt File!!!!

Maybe you find simple key.. file will be decrypt..

what is key ? b


Breakpoint 1, 0x0000000000400b3d in ?? ()

(gdb) info reg rsi

rsi            0x604620 6309408

(gdb) info reg rdi

rdi            0x604640 6309440

(gdb) x/s 0x604640

0x604640: "OPENTHEDOOR"

(gdb) x/s 0x604620

0x604620: "b"


키를 구했다.


mandu@mandu-VirtualBox:~/바탕화면$ ./Let_Decrypt start
welcome mandu
I want to Decrypt File!!!!
Maybe you find simple key.. file will be decrypt..
what is key ? OPENTHEDOOR
INPUT : decrypt file name : flag.KYSIS

INPUT new file : flag 


Success Decrypt Good Luck!
mandu@mandu-VirtualBox:~/바탕화면$ cat flag
Hello flag is KYSIS{1T's_S1mpl3_R4nsomw4re}




NETWORK - Net -- Work


pcap파일이 주어지는데 여기서 추출가능한 파일은 1개의 jpg파일과 7개의 cab파일이 있다.


처음에 cab파일들을 분석하는 삽질을 하다가 많은 분들이 푸신걸 보고 이 루트가 아니구나 판단. (애초에 60점짜리..)


jpg파일에서 KYSIS를 검색하니 플래그가 있었다..







FORENSIC - Oriental medicine




.001파일이 주어진다.


.001파일은 AccessData FTK Imager로 열 수 있다.



힌트를 보면 찾아야할 파일은 jpeg파일이다.


jpeg파일 시그니처는 이렇다.



FF D8 FF E0로는 나오지 않아서 4A 46 49 46으로 검색했다.




jpeg파일의 footer 시그니처는 FF D9이므로 FF D9를 찾아서 HxD로 복사했다.


그렇지만 시그니처를 제대로 보면 FF FF FF E0로 되어있다. 두번째 FF 를 D8로 바꾸면 파일이 제대로 열린다.




맥 짚는중...ㅋㅋ


근데 플래그 인증이 안된다...


왜 그런가 보니


위에 내용이 더 있었다........

이 값들을 추가해주고 md5 돌려서 플래그 인증했다.






대회 종료후 풀이보고 다시 푼 문제들의 풀이들:

728x90
반응형

'CTF Write Up' 카테고리의 다른 글

2019 NEWSECU CTF Write-Up  (0) 2019.02.04
YISF 2018 예선 write-up  (0) 2018.08.15
H3X0R 4rd CTF 2018 Write-up  (0) 2018.07.29
KDMHS CTF 2018 Write-up  (0) 2018.06.18
H3X0R 4rd CTF 2018 [easy_png] Write-up  (0) 2018.06.14
728x90
반응형

H3X0R CTF에서 못 풀어보았던 문제들을 다시 풀고 그 풀이를 적어보았습니다.



3D



윈도우의 3D paint === 그림판 3D의 프로젝트 파일들이다.





그림판 3D를 실행시킨다.




다른이름으로 저장에서 그림판 3D 프로젝트로 저장을 클릭한다.




아무이름으로 저장한다.

그리고 그림판 3D를 종료한다.




그림판 3D의 프로젝트 파일이 위치한 경로로 이동한다.

%localappdata%\Packages\Microsoft.MSPaint_8wekyb3d8bbwe\LocalState\Projects



Checkpoint 라는 폴더가 생성되어 있다.




해당 폴더의 파일들을 모두 문제 파일들로 덮어쓴다.




다시 그림판 3D를 실행하고 아까 저장해두었던 프로젝트를 연다.




상단에 3D보기를 활성화하고 글자와 상자를 옆으로 치운다. 

그리고 플래그를 뒤집는다. 하단의 회전도구를 이용해 180도 돌려주었다.




3D보기를 비활성화 한다. 그러면 플래그가 보인다.


FLAG : H3X0R{So_Useful_Paint_3D}

'}'가 없지만.. 채워준다.





Git Advance1




git reflog를 본다. 

d819cad 가 FLAG_COMMIT 이다.




git checkout d819cad를 하고 git log를 보면




flag를 찾을 수 있다.


FLAG : h3x0r{g1t_g1t_dhtrlt_lets_g1t}


728x90
반응형

'CTF Write Up' 카테고리의 다른 글

YISF 2018 예선 write-up  (0) 2018.08.15
KYSIS CTF 2018 Write-Up  (0) 2018.08.07
KDMHS CTF 2018 Write-up  (0) 2018.06.18
H3X0R 4rd CTF 2018 [easy_png] Write-up  (0) 2018.06.14
CODEGATE 2018 OPEN CTF Write-up  (0) 2018.04.06
728x90
반응형

Reversing


EZPZ



EZPZ.exe 파일이 하나 주어진다.


해당 파일을 Exeinfo PE로 까보면 C#으로 작성된 파일임을 알 수 있다.








따라서 해당 파일을 .NET Reflector로 열었다.



EZPZ.exe > EZPZ > EZ > button1_Click(Object, EventArgs) : Void 에서 플래그를 확인할 수 있다.


FLAG : dimi{Welcome_reversing}




이 이후로 봉사를 가야되서 한문제 밖에 못풀어봤다 ㅠㅠ


728x90
반응형

'CTF Write Up' 카테고리의 다른 글

KYSIS CTF 2018 Write-Up  (0) 2018.08.07
H3X0R 4rd CTF 2018 Write-up  (0) 2018.07.29
H3X0R 4rd CTF 2018 [easy_png] Write-up  (0) 2018.06.14
CODEGATE 2018 OPEN CTF Write-up  (0) 2018.04.06
제 1회 TEAMH4C CTF Write Up  (0) 2017.10.29
728x90
반응형

H3X0R 4rd CTF 2018 [easy_png] Write-up




아무런 이미지도 표시되지 않는 png파일이 주어진다.


이 파일을 HxD로 열어보았다.






마지막 부분을 보면, 49 45 4E 44 AE 42 60 82 IEND®B`‚ 으로 끝나야할 파일이 그 뒤에 데이터가 더 있음을 알 수 있다.

그 데이터를 보면 sRGB 로 시작하는데, 파일 헤더를 살펴보면 sRGB부분이 빠져있다.

그렇다면 이 마지막에 있는 sRGB부분이 헤더에서 빠진 sRGB부분일 것이다.






빠진 부분을 채워주었다.






그러고 나니 FLAG가 나왔다.

728x90
반응형

'CTF Write Up' 카테고리의 다른 글

H3X0R 4rd CTF 2018 Write-up  (0) 2018.07.29
KDMHS CTF 2018 Write-up  (0) 2018.06.18
CODEGATE 2018 OPEN CTF Write-up  (0) 2018.04.06
제 1회 TEAMH4C CTF Write Up  (0) 2017.10.29
[EKOPARTY CTF 2017] Malbolge  (1) 2017.09.17

+ Recent posts