Blog

Home  /  blog  /  Menangkal Serangan Directory Traversal di PHP

Menangkal Serangan Directory Traversal di PHP

Directory Traversal atau biasa disebut Path Traversal merupakan jenis serangan HTTP exploit yang memungkinkan attacker (penyerang) dapat mengakses direktori dan dapat mengeksekusi perintah diluar dari direktori root web server.

Ketika web kita terdapat vulner (kelemahan) terhadap Directory Traversal, maka attacker dapat mengakses file-file pada sistem dengan mudah, bahkan attacker dapat pula menyisipkan perintah-perintah berbahaya untuk mengambil alih server kita.

Salah satu contoh dari serangan ini misalnya kita ingin menampilkan buku dalam format pdf dengan url sebagai berikut:

http://192.168.2.201/perpustakaan/read/?book=owasp.html&view=Read

Pada dasarnya parameter diatas digunakan untuk memanggil file pada web server. Akan tetapi dengan parameter tersebut attacker dapat menyisipkan script untuk mengakses file lain, misalnya:

http://192.168.2.201/perpustakaan/read/?book=..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc%2fpasswd&view=Read

Dengan parameter diatas, attacker mencoba untuk mengakses file /etc/passwd untuk melihat user pada sistem linux.

Tentunya hal ini berbahaya, sehingga kita perlu melakukan antisipasi agar serangan tersebut tidak terjadi. Salah satu teknik antisipasinya yaitu dengan melakukan perubahan pada script di PHP. Disitu kita tambahkan filter yang tidak memperbolehkan user untuk mengakses direktori lain dengan perintah back (../).

Misalnya script utk menampilkan buku diatas:

$book = $_GET['book'];
if  (strpos($book, '../') == $book)
{
echo "ERROR: Sory ya bro!";
}
else
{
include ($book);
}

Semoga bermanfaat..:-)

Leave a Reply

Your email address will not be published.