Mengenal Cookies PHP

Cookies dapat dimanfaatkan dalam aktivitas hack sebuah web. Namun, bagi yang masih belum kenal dengan cookies ini, mari kita gali apa itu cookies?

Cookies digunakan untuk menyimpan informasi yang dibutuhkan sebuah website dan ditaruh pada komputer client. Singkatnya Cookies ini hampir sama dengan Session namun tidak disimpan pada server melainkan pada komputer client.

Advertisements

Filter Display Image Dengan File .htaccess

Ketika membuat sebuah web, biasanya terdapat sebuah folder atau direktori yang dibuat khusus untuk menampung file-file yang diupload seperti gambar atau dokumen. Namun, kadang kita ingin membatasi hanya file-file dengan ekstension tertentu yang bisa dipanggil atau di tampilkan di browser, misal hanya gambar yang berformat png saja yang bisa di panggil, sedangkan dengan format seperti jpg, jpeg dll, tidak bisa.

endang-web-htaccess

Untuk melakukan filter tersebut, kita bisa menggunakan file .htaccess.

.
.
.
.

.htaccess, merupakan sebuah file text sederhana(dalam format ascii). Pada umumnya kita bisa menggunakan file .htaccess untuk merubah beberapa konfigurasi untuk mengarahkan pada web server apache.

.
.
.
.

berikut contoh kode file .htaccess, yang dimana file tersebut disimpan dalam folder yang terdapat file-file yang akan kita filter.

order allow,deny
<Files ~ “\.(PNG|png)$”>
allow from all
</Files>

kode diatas berfungsi agar file dengan ekstension png saja yang bisa di panggil atau ditampilkan di browser, ekstension selain dari itu tidak akan tampil. Wassalam.

 

 

 

PHP Security : Shell Injection

Selain sql injection, salah satu jenis serangan lainnya yang perlu di ketahui dan diantisipasi bagi web developer adalah berupa web shell injection. Nah, apa itu Web shell injection ?

Web shell ini merupakan kumpulan script  yang dapat mengeksekusi perintah shell. Setiap web shell bentuknya berbeda-beda tergantung dari web server itu sendiri. Misal, jika web servernya apache maka web shell nya berbentuk script PHP dan bentuk script shell nya dikenal dengan PHP shell injection.

PHP shell injection adalah sebuah tindakan untuk melakukan eksploitasi terhadap celah keamanan sebuah website dengan cara menginjeksi Shell hasil pengkodean bahasa PHP terhadap file yang terdapat pada website tersebut yang memiliki kelemahan ataupun kesalahan pemrograman/pengkodean.

.
.
.
.

web-shell-php-injection

Contoh shell yang sudah jadi dan beredar di dunia maya, diantaranya yaitu :

b374k (indonesia)
dQ99-shell
c99 (rusia)
r57
phpShell
itsecteam-shell
Bypass
safeOver
phpShell
itsecteam-shell
Tyrag-Bypass
c100
ASPx
CMD-aspshell
CWShell-Dumper
CGI-Shell

Cara menjalankan web shell, file tersebut harus di sisipkan terlebih dahulu di web server  dalam direktori target. Salah satu, metode upload file adalah Remote File Inclusion atau dikenal dengan disingkat RFI.

.
.
.
.

Cerita singkat Remote File Inclusion. RFI merupakan metode untuk mengeksploitasi web dengan memanfaatkan file yang sudah ada pada file tersebut untuk mengeksekusi file yang diluar web.

Gambaran contoh sederhananya adalah sebagai berikut. Ada sebuah web yang proses eksekusinya menggunakan satu file yang memanggil file yang lain untuk melengkapinya melalui alamat web, seperti berikut :

http://www.target-web.com/?page=artikel.php

pada alamat diatas, tulisan artikel.php, adalah file php yang akan di masukan kedalam script php untuk di proses. kodenya bisa seperti ini.

<?php
$page=$_GET[“page”];
if($page==””){
include “home.php”;
}
include $page.”.php”;
?>

cerita selanjutnya perintah script php di artikel.php akan di eksekusi di dalam kode tersebut. permasalahan cara diatas adalah memungkinkan orang lain untuk memasukan kode selain artikel.php, isinya bebas.

Teman dari RFI adalah LFI atau Local File Inclusion, yaitu hampir sama dengan RFI, namun bedanya RFI memanfaatkan file diluar web, sedangkan LFI memanfaatkan file yang sudah tersimpan di internal server seperti file sistem  /etc/passwd untuk untuk system operasi linux.

Bagaimana cara untuk melindungi web dari serangan RFI atau LFI ? antisipasi untuk menangkal serang ini diantaranya adalah dengan script yang terupdate, lalu pastikan php.ini register_globals dan allow_url_fopen dinonaktifkan.

.
.
.
.

Setelah berhasil di simpan di direktori server, maka hacker bisa memanggilnya dengan cara mengakses file tersebut melalui browser, contoh pemanggilannya :

http://www.target-web.com/c99.php

http://www.target-web.com/  — alamat domain target

c99.php — file php shell injection

.
.
.
.

terlihat cukup mudah, namun butuh latihan untuk dapat melakukannya.

 

PHP Security : SQL Injection

 

sql-injection

 

SQL Injection, istilah yang sudah tidak asing lagi dikalangan web programmer. Namun tidak ada salahnya di bahas kembali dari nol. Mulai dari Apa itu SQL injection ?

Saya coba cuplik dari web tetangga untuk pengertian ini yang menurut saya mudah dicernanya, isinya kurang lebih berikut.

SQL injection adalah serangan yang memanfaatkan kelalaian dari website yang mengijinkan user untuk menginputkan data tertentu tanpa melakukan filter terhadap malicious character.

Sedangkan yang dimaksud dengan malicious yaitu suatu program yang dapat dieksekusi dan dibuat dengan tujuan untuk merusak sistem komputer, jadi  dapat di katakan kode tersebut bersifat jahat/perusak.

Jadi dengan kata lain, dari definisi diatas sudah dapat dilihat bahwa tujuan seseorang melakukan serangan sql injection ini adalah salah satunya merusak sistem, dan yang menjadi target serangan adalah database sistem.

Cukup berbahaya apabila database tersebut memiliki data-data yang bersifat penting. Hal untuk mengantisipasinya sederhana, mudah saja, lakukan backup database secara rutin, itu !

Motif seseorang melakukan serangan adalah beragam, dari hal yang serius sampai hal yang iseng ada seperti coba-coba atau lagi belajar, bisa jadi ingin kepuasan. wallohualam. Namun, bagi yang coba-coba harus ingat, semua tindakan ada konsekuensinya, catet.

Apa manfaat mempelajari ini? tujuannya belajar sql injection adalah untuk mengetahui dan mengantisipasi serangan dan bukan sebaliknya.

Sampai sini teman-teman mudah-mudahan dapat memahami maksud dari pengertian sql injection ini.

.
.
.
.

Bagaimana cara seseorang melakukannya?
Untuk melakukan sql injection, orang tersebut harus sudah memahami tentang query dan database dan yang berkenaan dengan web (html, php, … dst), kurang lebih seperti itu.

.
.
.
.

Sebagai bentuk contoh sql injection seperti berikut.

Skenarionya adalah untuk menghapus tabel user pada sebuah tabel.

.
.
.
.

Awalnya ada perintah query untuk menampilkan data pada tabel user seperti ini.

select * from user where username = ‘admin’ and password=’admin’;

jika di eksekusi maka akan tampil data dengan username admin.

Namun, apabila kemudian coba di inject sql

‘; drop table user; —

— drop table user untuk menghapus tabel

menjadi seperti dibawah.

select * from user where username = ”; drop table user; — admin’ and password=’admin’;

maka proses yang terjadi adalah tabel user menjadi terhapus, karena ada sisipan sql drop.

… ‘; drop table user; — admin’ …

itu baru sebagian contoh kecil gambaran perintah sql injection.