HEADLINE NEWS

Tutorial Local File Disclosure - LFD


Hallo, Apa kabar?

Dari tulisan saya kali ini, saya ingin sharing tentang bagaimana cara exploitasi celah keamanan Local File Disclosure pada suatu website.

Tutorial Local File Disclosure
Tutorial Local File Disclosure


Apa itu Local File Disclosure?

Vulnerability Local File Disclosure (LFD) ini sebenarnya konsepnya hampir mirip dengan LFI/RFI, akan tetapi yang membedakannya disini adalah kalau celah LFD ini file tidak dapat ditampilkan pada browser melainkan file hanya bisa kita download lalu baru kita bisa membaca.

Tapi ya intinya, setiap vulnerability tersebut memiliki perbedaan masing-masing.

Bagaimana bisa, Celah ini terjadi?

Biasanya fungsi yang memiliki resiko vulnerability LFD adalah semua fungsi yang dapat membaca suatu file. Kalau dalam bahasa pemrograman PHP itu sendiri diantaranya adalah seperti fungsi readfile(), File(), Fgets(), dan lain sebagainya.

Bahaya dari adanya LFD?

LFD ini termasuk celah yang memiliki severity high-critical, jadi bahayanya? Attacker dapat melihat source code dari website tersebut, sehingga dapat melihat file atau data sensitif.

Oke sekarang lanjut, time for pratice.

Cara Eksploitasi Local File Disclosure

Target: aHR0cHM6Ly9wYXN0ZWJpbi5jb20vcmF3L3lBMzBWZTJh==

DISCLAIMER: Mohon live target yang saya berikan untuk jadikan bahan belajar bersama jangan sampai dirusak ya boss, kalau ada apa-apa diluar itu semua bukan tanggung jawab saya.

Hal pertama yang saya lakukan adalah mencari endpoint celah tersebut. Setelah mencari dan akhirnya ketemu bug tersebut, kira-kira seperti ini.

URL/download.php?filename=christ-market.pdf

Pikir saya, Apakah web tersebut vuln lfd? Kita coba saja.

Gimana kalau kita sekarang coba untuk menginput file index.php lewat parameter yang tertera di url tersebut apakah file tersebut akan ke download atau tidak, jadi caranya seperti ini.

URL/download.php?filename=index.php

Kemudian jalankan, dan hasil output yang saya dapatkan tersebut seperti pada gambar bawah ini,

Tutorial Local File Disclosure

Why? Dari pesan tersebut menyatakan file tidak ditemukan atau tidak bisa diakses hahahahaha.

Not problem.

Untuk mengatasi masalah tersebut, kita juga bisa mengkombinasikan celah lfd ini dengan directory traversal atau bisa disebut dengan dot dot slash ../. Maksud Directory Traversal ini digunakan untuk melihat isi suatu file pada parent directory dimana kita sekarang atau singkatnya gini buat naik directory ke lebih atas.

Sudah paham?

Sekarang mari kita coba dengan naikan directory tersebut dengan menambahkan dot dot slash ../

URL/download.php?filename=../index.php

Setelah saya jalankan hasilnya sama saja file index.php belum ke download, sekarang coba naikan lagi dari semula ../index.php menjadi naik ke ../../index.php

URL/download.php?filename=../../index.php

Setelah itu jalankan dan boom saya berhasil, file tersebut ke download.

Tutorial Local File Disclosure

Sekarang buka file index.php tersebut menggunakan aplikasi editor, dari isi source code tersebut seperti ini.

Tutorial Local File Disclosure

Nah langkah selanjutnya tinggal mencari directory dimana kira-kira file database tersebut, singkat cerita disini saya berhasil mendownload file config dari website tersebut.

Tutorial Local File Disclosure

Dan disini saya dapat membaca isi file config yang berisi data sensitif seperti username, password dari database website tersebut.

Tutorial Local File Disclosure

Kalau sudah begini ya kita tinggal login pada database website tersebut wkwkwk.

Gimana menurutmu? Mudah kan.
Kalau celah ini sebenarnya gampang kita eksploitasi terlebih jika tidak ada web application firewall yang digunakan pada server tersebut.

Tapi sekarang jarang sekali menemukan bug yang seperti ini, coba deh kamu main ke exploit-db dll barang kali disitu ada.

Patch
Lakukan filter input, sehingga input yang dimasukan hanya dapat mengakses direktori yang telah kita tentukan saja.

Kode patch:
https://pastebin.com/raw/4eTeS20S

Sekian dari saya, semoga artikel pada kali mengenai Local File Disclosure sangat bermanfaat buat kalian semua. Maaf kalau ada penjelasan atau tulisan yang dapat kurang dimengerti.

Terimakasih, Matursuwun. Have Fun!

Previous
« Prev Post
Show comments
Hide comments
1 comment:
Tulis Komentar
  1. Bang gw butuh bantuan anda bisa hubungi email saya fxkingnolep7@gmail.com

    ReplyDelete

Contact Form

Name

Email *

Message *