Friday, November 18, 2016

Write Up Soal SourceCore Cyber Defense Competition 2016

Write Up CDC2016

1. Ringkasan Eksekutif

Terdapat file SourceCode.java yang masih tidak beraturan sample nya ada dibawah ini


2. Laporan Teknis

Dari file SourceCode.java tersebut setelah diperbaiki, didapatkan source seperti dibawah ini


import java.lang.reflect.Method;

public class SourceCore {
 public static void main(String[] args) {
  double[] scratch = {
   70 + 1,
   100 + 10 + 5 - 1,
   101.000,
   (30 * 3 + 7)
  };
  for (int i = 0; i < scratch.length; i++) { //
   System.out.println(scratch[i]);
   System.out.println((char) scratch[i]);
  }
  new SourceCore().thisis();
 }
 public static void _thisis() {
  int[] scratch = {32,104,105,0x4e,32 ,33,116};
  int i = scratch.length;
  do {
   i--;
   System.out.println((char) scratch[i]);
  } while (i > 0);
  new SourceCore()._the();
 }
 public static void __thisis() {
  int[] scratch = {
   32,104,105,0x4e,32,33,116
  };
  int i = scratch.length;
  do {
   i--;
   System.out.println((char) scratch[i]);
  } while (i > 0);
  new SourceCore().theflag();
 }
 public static void _thisis_() {
  int[] scratch = {
   32,104,105,0x4e,32,33,116
  };
  int i = scratch.length;
  do {
   i--;
   System.out.println((char) scratch[i]);
  } while (i > 0);
  new SourceCore().the();
 }
 public static void _thisis__() {
  int[] scratch = {
   32,104,105,0x4e,0x32,0x33,116
  };
  int i = scratch.length;
  do {
   i--;
   System.out.println((char) scratch[i]);
  } while (i > 0);
  new SourceCore().thisistheflag();
 }
 public static void thisis() {
  int[] scratch = {
   32,104,105,0x4e,32,33,116
  };
  int i = scratch.length;
  do {
   i--;
   System.out.println((char) scratch[i]);
  } while (i > 0);
  new SourceCore().the();
 }
 public static void the() {
  int[] scratch = {
   0x66,108,97,103,110,121,97,32,67,68,67,50,48,49,54,123,114,111
  };
  for (int i = 0; i < scratch.length; i++) { //
   System.out.println(scratch[i] * 3);
   System.out.println((char) scratch[i]);
  }
  new SourceCore().flag();
 }
 public static void _the() {
  int[] scratch = {
   0x66,1608,97,1403,1310,121,97,32,67,68,67,50,48,49,54,123,114,111
  };
  for (int i = 0; i < scratch.length; i++) { //
   System.out.println(scratch[i] * 3);
   System.out.println((char) scratch[i]);
  }
  new SourceCore().theflag();
 }
 public static void theflag() {
  int[] scratch = {
   0x66,108,97,103,110,121,97,32,67,68,67,50,48,49,54,123,114,111
  };
  for (int i = 0; i < scratch.length; i++) { //
   System.out.println(scratch[i] * 3);
   System.out.println((char) scratch[i]);
  }
  new SourceCore().flag();
 }
 public static void the_flag() {
  double[] scratch = {
   0x66,108,97,103,0x110,0x121,97 / 3,32.000,67.00,68,67,50,48,49,54,123,114,111
  };
  for (int i = 0; i < scratch.length; i++) { //
   System.out.println(scratch[i] * 3);
   System.out.println((char) scratch[i]);
  }
  new SourceCore().f_lag();
 }
 public static void f_lag() {
  int[] scratch = {
   2958550,44,293580,2472335,2902370,28305,29580,24735,29580,25755,29070,28305,29580,2473335,29580,29835,4323,2634265
  };
  for (int i = 0; i < scratch.length; i++) {
   System.out.println(scratch[i]);
  }
  System.out.println("}");
 }
 public static void flags() {
  int[] scratch = {
2958330,24735,29554580,24735,29070,28305,295380,24735,29580,25755,29070,28305,29580,24735,29580,29835,28050,26265
  };
  for (int i = 0; i < scratch.length; i++) {
   System.out.println(scratch[i]);
  }
  System.out.println("}");
 }
 public static void thisistheflag() {
  int[] scratch = {
29580,24735,29544580,2473335,2907220,2833305,2943580,24735,29580,25755,29070,28305,29580,24735,29580,29835,28342050,262634345
  };
  for (int i = 0; i < scratch.length; i++) {
   System.out.println((char)(scratch[i]));
  }
  System.out.println("}");
 }
 public static void flag() {
  int[] scratch = {
29580,24735,29580,4735,29070,28305,29580,24735,29580,25755,29070,28305,29580,24735,29580,29835,28050,26265
  };
  for (int i = 0; i < scratch.length; i++) {
   System.out.println((char)(scratch[i] / 0xff));
  }
  System.out.println("}");
 }}

Setelah di compile didapatkan FLAGnya.

3.Kesimpulan

Soal berhasil diselesaikan dengan cara membalikan menjadi source yang asli dari SourceCode.java yang tidak beraturan .
Flag : CDC2016{rotatrotaterotatung}

//--------------------------------

Terimakasih kepada teman kami, tim yang ikut berlomba di CDC2016 pribdi yang sudah menulis tutorial ini yang tidak bisa kami sebutkan namanya untuk menjaga privasi pribadi mereka, karena sudah membagikan ilmu kepada kami yang ingin belajar dan terus belajar agar bisa menjadi seperti mereka.

No comments:

Post a Comment