[TenesysCTF 2019] – Web Category 1-5

Web CTF dapat di akses melalui http://52.175.30.175

Challenge pertama berjudul Injeksi untuk 40 point

Resource dapat di akses di link http://hendrokomputer.rf.gd/admin_login.php

 

Menurut hint yang diberikan oleh title yaitu “injeksi” dan terdapat sebuah form untuk memasukkan username dan password serta karena CTF ini ditujukan untuk beginner, maka penulis secara langsung berpikiran untuk mencoba payload SQLi yang paling mudah yaitu ‘OR 1=1– –

Berhasil

Flag : GEMATEK19{SQL_Injection_h1y4}

Challenge kedua berjudul Access Denied untuk 45 point

Resource dapat di akses di link http://hendrokomputer.rf.gd/useragent.php

Hint yang paling jelas di challenge ini adalah link yang disediakan yaitu pada “useragent.php” ini mengimplikasikan bahwa challenge ini dapat diselesaikan dengan mengubah useragent. Baris pertama pada halaman web ini hanya menuliskan kembali user agent yang kita gunakan saat itu. Untuk menyelesaikan challenge ini kita perlu merujuk kepada kalimat “Anda bukan admin 🙁 ” yang berarti kita harus mengganti user agent kita menjadi “admin” dan melihat responsenya.

Mari kita cek responsenya dan

Berhasil

Flag : GEMATEK19{y0u_are_tru3_4gent}

Challenge ketiga berjudul Bau Bawang untuk 55 point

Resource dapat di akses di link http://hendrokomputer.rf.gd/union.php

Diberikan info bahwa flag merupakan nama database, maka dapat diketahui bahwa challenge ini berbasis database dan kemungkinan besar akan menggunakan teknik SQLi.

Terdapat 3 artikel yang dapat di klik yang akan me-redirect kita masing masing ke :

  1. http://hendrokomputer.rf.gd/post.php?id=1
  2. http://hendrokomputer.rf.gd/post.php?id=2
  3. http://hendrokomputer.rf.gd/post.php?id=3

Namun saat penulis memasukan http://hendrokomputer.rf.gd/post.php?id=4 , muncul sebuah page kosong

Kita dapat melakukan SQL injection melalui data yang di passing secara GET di URL, kita akan meletakkan payload disamping id=(payload)

Mari kita mencoba beberapa hal, yang pertama adalah

  1. http://hendrokomputer.rf.gd/post.php?id=’OR 1=1– – (mengeluarkan statement error syntax)
  2. http://hendrokomputer.rf.gd/post.php?id=1 OR 1=1– – (tidak mengeluarkan statement error syntax)
  3. http://hendrokomputer.rf.gd/post.php?id=4 OR 1=0– – (memunculkan page kosong seperti diatas tadi)
  4. http://hendrokomputer.rf.gd/post.php?id=4 OR 1=1– – (memunculkan page 1)
  5. Maka penulis akan mencoba melakukan union based SQLi
  6. Step 1 adalah menentukan jumlah kolom yang ditampilkan
  7. http://hendrokomputer.rf.gd/post.php?id=1 UNION SELECT 1– – (The used SELECT statements have a different number of columns)
  8. http://hendrokomputer.rf.gd/post.php?id=1 UNION SELECT 1,2– – (The used SELECT statements have a different number of columns)
  9. http://hendrokomputer.rf.gd/post.php?id=1 UNION SELECT 1,2,3– – (The used SELECT statements have a different number of columns)
  10. http://hendrokomputer.rf.gd/post.php?id=1 UNION SELECT 1,2,3,4– – (Tidak mengeluarkan statement error)

Sehingga disimpulkan kolom berjumlah 4, namun penulis tidak melihat tempat keluarnya data angka angka yang di select diatas. Sehingga penulis mencoba untuk kembali ke artikel kosong atau artikel dengan id=4 dan mencoba kembali payloadnya.

  • http://hendrokomputer.rf.gd/post.php?id=4 UNION SELECT 1,2,3,4– –

 

Dari angka yang ditampilkan diatas, kita dapat mengambil kesimpulan bahwa angka 1 tidak ditampilkan di webpage namun angka 2,3,4 akan ditampilkan. Mari kita gunakan payload yang sama untuk mengambil nama database dengan cara:

  • http://hendrokomputer.rf.gd/post.php?id=4 UNION SELECT 1,database(),3,4– –

Berhasil

Flag : GEMATEK19{epiz_23869613_sql}

Challenge keempat berjudul Magic Blank untuk 65 point

Resource dapat di akses di link http://hendrokomputer.rf.gd/magic.php

Diberikan hint : PHP filter base64

Masuk ke “FLAG” maka URL akan berubah menjadi 

http://hendrokomputer.rf.gd/magic.php?page=flag.php

Penulis melakukan pencarian terhadap hint yang diberikan yaitu php filter base64 dan menemukan cara untuk melakukan LFI atau Local File Inclusion yang memanfaatkan php filter untuk memuntahkan source code dari flag.php dengan pertama di encode dengan base64 terlebih dahulu.

Untuk melakukannya dapat dilakukan :

  • http://hendrokomputer.rf.gd/magic.php?page=php://filter/convert.base64-encode/resource=flag.php

Didapatkan sebuah base64

Mari kita decode menjadi :

Berhasil

Flag : GEMATEK19{PHP_f1lter_n0t_s3cur3!}

Challenge kelima berjudul Bau Bawang 2 untuk 75 point

Resource dapat di akses di link http://hendrokomputer.rf.gd/union.php

Menampilkan tampilan yang sama dengan challenge Bau Bawang yang pertama

Berarti kita akan menggunakan teknik yang sama di challenge pertama, bedanya kita akan mencari email dan password yang diinginkan untuk membentuk flag.

Step pertama mencari jumlah kolom

Jumlah kolom yang digunakan di challenge ini masih sama dengan challenge yang pertama yaitu berjumlah 4 dan input pertama tidak akan ditampilkan. Jadi tidak perlu melakukan percobaan jumlah kolom lg.

Step kedua yaitu mencari nama tabel yang ada di database

 

Tabel yang ditemukan adalah gematek19,post,user_admin

Perhatian penulis tertuju kepada tabel yang bernama user_admin

Mari kita selidiki lebih lanjut dengan step ketiga, yaitu mencari nama kolom yang terdapat dalam tabel user_admin

 

Kita telah menemukan kolom yang kita inginkan yaitu email dan password untuk membuat flag

Mari kita menuju ke step terakhir yaitu mengeluarkan isi dari kolom email dan password di tabel user_admin

 

Berhasil

Flag  : GEMATEK19{admin@gematek19.com_ORYsINalAtiC}

 

Leave a Reply

Your email address will not be published. Required fields are marked *