Konsep LISTEN dalam network service

Layanan jaringan ( network service ) seperti web, database RDBMS, ssh, dan lain sebagainya, menganut mazhab konsep client-server. Client artinya peminta / pengguna layanan, dan server adalah penyedia layanan. Antara client dan server memiliki kesepakatan melalui sebuah jalur virtual yang dinamakan protokol. Protokol tersebut dilambangkan dengan angka port. Angka port yang tersedia adalah 1-65535. Beberapa jalur populer / penting telah diregisterkan memiliki port default seperti :

Web / HTTP port 80
SSH port 22
telnet port 23
FTP port 21
https port 443

dan lain sebagainya.

 
Continue reading “Konsep LISTEN dalam network service”

Meminjam IP Publik Lain Network untuk Web Server Lokal dengan SSH


Masih seputar SSH seperti pada posting sebelumnya diĀ http://bimosaurus.com/2014/06/13/back-connect-dengan-menggunakan-reverse-ssh/

 

backconnect

 
Continue reading “Meminjam IP Publik Lain Network untuk Web Server Lokal dengan SSH”

Tentang NOHUP

Perintah nohup adalah sebuah perintah dalam Linux yang sangat berguna. Banyak para administrator dan operator Linux masa kini tidak faham mengenai nohup. Perintah nohup memiliki fungsi untuk menjalankan perintah linux, yang akan tetap berjalan sekalipun sang user pengeksekusi telah logout. Perintah nohup ini biasanya juga akan digabungkan dengan & yang artinya menjadikan eksekusi itu berjalan dibalik layar dan tidak mengganggu konsole aktif kita.

Misal kita memiliki perintah

Saat proses download tersebut, ketika user logout, maka perintah akan berhenti. Lain halnya dengan

Selain kita tetap mendapatkan command prompt aktif dalam Linux. Selamat mencoba

Tentang Memori dan Swap

Kapan Swap ini digunakan? Swap ini digunakan terutama saat kondisi Out Of Memory. Swap ini juga dapat diatur agresivitasnya. Agresivitas Swap dapat diatur dalam file : /proc/sys/vm/swappiness dengan angka 0 – 100. Angka 0 adalah ketika diperlukan hanya menggunakan Swap ketika RAM habis, dan angka 100 ketika diperlukan Swap yang sangat agresif. Default angka swap ini adalah 60. Untuk melakukan edit file swappiness ini tidak bisa hanya menggunakan Text Editor. Cara yang paling tepat adalah dengan mode superuser penuh (root) dan dilakukan perintah sebagai berikut:

Continue reading “Tentang Memori dan Swap”

[Tips] Menyiasati Load Tinggi Server Akibat Beban Proses Aplikasi Web (server sendiri)

Bagi anda yang berkecimpung dengan blog atau web dengan memanfaatkan CMS di hosting entah Hosting, VPS, Dedicated Server, Colocation Server sampai server Mandiri, tentu akan sering merasakan betapa CMS kita akan sangat berat diload. Sebagai tambahan informasi, bahwa beberapa CMS terutama WordPress dan Joomla memiliki dukungan plugins yang justru ketika kita gunakan plugins tersebut, akan memakan resource server kita sendiri. Akibatnya, load server terutama ketika memasuki halaman administrator, akan sangat berat loadnya. Untuk pengguna layanan hosting, akibat load server tersebut, atau proses hit ke luar server yang terlalu tinggi, bisa berakibat pada pemblokiran aplikasi kita sendiri. Pernah mengalami? Terutama biasanya terjadi pada CMS-CMS yang menggunakan plugins–plugins untuk SEO (Search Engine Optimizer) aktif. Aktif dalam hal agresif melakukan hit ke luar server kita sendiri.
Continue reading “[Tips] Menyiasati Load Tinggi Server Akibat Beban Proses Aplikasi Web (server sendiri)”

Mengurangi Resiko SQL Injection dengan Script Filter Parameter HTTP

Salah satu bug yang paling ditakuti di dunia pemrograman web adalah : SQL Injection Vulnerability. Dalam dunia hacking sering disebut dengan SQLiv. Bug ini termasuk paling banyak dijumpai publikasinya di situs-situs pempublish bug dan hacking. SQL Injection ini termasuk bug dengan jenis resiko tinggi. Injeksi SQL biasanya dilakukan dengan cara memasukkan perintah atau sintaks tambahan ke dalam FORM yang ada dalam web tersebut, baik FORM di address bar, maupun FORM yang ada pada content.

 

Dasar Teknis

1. Serangan GET Methode

Dalam membuat web, biasanya kita akan gunakan pemanggilan ID atau kode unik untuk mengundang suatu konten. Misal:

Kira-kira, proses SQL yang dibentuk adalah :

Apa yang terjadi apabila seseorang menambahkan perintah di belakangnya?

dan selanjutnya? Jika penambahan 1=1 dan 1=0 menghasilkan efek yang berbeda, dengan

1=1 posting/berita tetap muncul (tidak error)

1=0 berita tidak muncul (error)

Error message memang bisa saja ditutup dengan mengganti value PHP.INI dengan display_errors=’false’. Namun proses error tetap saja terjadi. Maka sebenarnya sintaks perintah di belakang parameter ID itu diproses oleh script. Berbahaya? Ya, sangat berbahaya. Biasanya penyusup akan menggunakan methoda UNION untuk melakukan serangan selanjutnya. Anggap dalam tabel berita bagian yang diambil adalah terdapat 4 kolom/field

 

Proses UNION adalah proses dua SELECT yang harus memiliki jumlah field terpanggil yang sama. Jika sampai proses UNION tidak sama jumlah fieldnya, maka akan terjadi error. Error adalah informasi berharga untuk seorang intruder. Misal si intruder mencoba melakukan pemanggilan sebagai berikut :

 

maka halaman tersebut tidak akan muncul content. Maka dia bisa melanjutkan

hingga

 

Pada saat itu, halaman selain menunjukkan posting content tersebut, juga akan menampilkan tulisan 1,2,3,4 sesuai dengan fieldnya. Saat itulah si intruder memanfaatkan seperti berikut:

Pencarian versi MySQL

 

Pencarian nama database yang aktif

 

Pencarian nama user database aktif

 

Pencarian nama database lain

 

Pencarian nama tabel untuk database ‘web’ misal

Pencarian nama kolom / field untuk tabel ‘user’ dalam database ‘web’ misal

 

Pencarian data dalam kolom user atau password

 

Setelah mendapatkan user dan password dari tabel user, maka dapat dieksekusi Login ke dalam form. Proses lain dapat juga dengan mencoba membaca file dalam sistem atau menulis file dalam sistem

 

atau bahkan

 

Cerita mengenai hacking dengan sql injection akan dibahas dalam posting lain.

 

2. Serangan POST Method

Serangan ini biasanya dilakukan pada FORM login.

Serangan ini biasanya memanfaatkan logika pemrograman sebagai berikut :

 

Logika ini benar, memanfaatkan operator logika AND. Sehingga session baru terbuka jika PASANGAN username dan password itu terdapat dalam tabel user.

Apa yang terjadi apabila kita memasukkan pada kolom login tersebut adalah : admin’ OR”=’ ? Maka proses query yang terjadi menjadi seperti ini

SELECT * FROM user WHERE username=’admin’ OR ”=’‘ AND password=”;

Bagian tercetak kuning merupakan masukan yang berasal dari form. Sedangkan proses logika AND menjadi tercemar oleh OR, sehingga password salahpun akan dianggap benar. Padahal jika logika tersebut benar, sessi akan terbuka untuk si penyusup, tanpa perlu tahu passwordnya.

 

3. Blind SQL Injection

Blind SQL Injection adalah SQL Injection tanpa petunjuk error atau penampilan yang jelas. Tetap Blind SQLiv ini BERBAHAYA.

 

Gejala-gejala

Melihat gejala sebuah situs mengidap penyakit ini adalah dengan beberapa cara:

  1. Menambahkan tanda petik. Jika pada halaman muncul error maka ada kemungkinan potensi bahaya itu ada.
  2. Menambahkan logika 1=1 dan 1=0. Jika dengan 1=1 berita masih muncul tapi 1=0 tidak muncul maka potensi itu ada
  3. Mencoba form login dengan memasukkan admin’ or ”=’pada kolom user dan password. Apakah anda dapat masuk ke halaman admin
  4. Memanfaatkan pentester software, seperti SQLMap, Hexjector ataupun Havij dan lain sebagainya.

 

Penanggulangan

Beberapa cara pengurang resiko bug ini adalah:

  1. Melakukan filtering parameter yang perlu dimasukkan sebagai proses SQL
  2. Melakukan penutupan error dan pembatasan jumlah karakter parameter/post
  3. Menggunakan user database dan password yang bukan root, dan beda aplikasi web seharusnya berbeda pula user dan grant nya
  4. Menata permission struktur direktori secara benar sehingga web tetap bisa melakukan penulisan, juga mysql tidak dapat menulis ke dalam file.
  5. Penggunaaan mod_rewrite apache untuk me-rewrite URL sehingga selain SEO Friendly juga aman.
  6. Melakukan sanitasi file upload dengan benar. Jika hanya dibutuhkan file gambar, maka hanya bertipe gambar saja yang boleh masuk.
  7. Penggunaan program semacam antivirus seperti clamav dan lain sebagainya.
  8. Penutupan database information_schema.
  9. Untuk penggunaan CMS, rajin update juga menjadi faktor penting. Namun kadang pluggins merupakan faktor yang sering membawa bug.
  10. Memanfaatkan log error dan access secara benar. Pengecekan apakah terjadi injection dapat dimulai dari sini.

dan lain sebagainya.

 

Contoh Script Filter Parameter sederhana:

$id = filter_param($_GET['id']);
$username = filter_param($_POST['username']);
$password = filter_param($_POST['password']);
 

SQL Injection dapat terjadi pada semua jenis database. Oracle, SQLServer, Access dan lain-lain. Pada windows, SQL Server juga memiliki fungsi executable yang cukup berbahaya.

Tulisan ini sekedar sharing, tidak bermaksud menggurui, mengingat juga bahwa masih banyak bug yang terdapat pada produk yang dibuat oleh penulis. Semoga bermanfaat

Clear Memory Linux Tanpa Restart

Jika di sistem operasi Windows kita mengenal Task Manager untuk mengetahui seberapa dan apa saja load yang digunakan oleh Windows dalam processing data, maka di Linux dalam versi text kita akan mengenal perintah top. Perintah ini hanya dipanggil dengan melakukan pengetikan top. Untuk keluar tinggal mengetikkan tombol “q”. Sepintas isinya adalah sebagai berikut:

 

Baris pertama akan berisi informasi : waktu sekarang, durasi waktu hidup komputer, jumlah user yang berproses, termasuk mysql , nobody dan apache, dan rata-rata beban.

Baris kedua akan berisi task yang aktif, kemudian task yang saat itu sedang berjalan, task yang sedang idle, task berhenti dan task yang zombie alias task yang sebenarnya sudah mati namun masih dideteksi sebagai task aktif karena berbagai hal

Baris ketiga adalah notasi load CPU

Baris ke empat adalah Memory yang diload. Perhatikan pada kolom pertama, yaitu besarnya RAM kita yang tidak termasuk dishared dengan VGA, kolom ke dua adalah memori tergunakan yang akan selalu bertambah besar, kolom ketiga adalah memory sisa/kosong yang akan makin kecil, dan terakhir adalah buffer memory.

Memory kosong, ketika makin kecil, maka proses komputer akan semakin lambat. Kecenderungan proses, semakin lama komputer menyala, maka proses akan makin lambat karena memory terguna akan banyak digunakan oleh buffer. Jika di Windows, kita bisa klik kanan dan refresh untuk melakukan minor refresh, maka Linux dapat dilakukan dengan memberikan perintah :

Minor refresh hanya akan memberikan efek sesaat komputer menjadi sedikit enteng dengan kerja beratnya. Jika di Windows, ketika komputer telah “mabuk” maka usaha lain adalah merestart, maka di Linux dapat dilakukan dengan cara lain selain merestart. Yaitu dengan melakukan clear memory. Hal ini tidak perlu merusak software dan tidak perlu restart. Caranya adalah dengan mengganti value pada :

menjadi 3.

Anda dapat melakukan checking lebih dulu dengan

Biasanya akan berisi nilai 1.

Gambar 1. Menengok isi file drop_caches

 

Selanjutnya lakukan sync lebih dulu, kemudian ubahlah file tersebut dengan cara

Gambar 2. Mengubah drop_caches

Lihatlah perubahanya pada top. Biasanya buffer dan memori terpakai akan menjadi lebih kecil.

 

Gambar 3. Sebelum di clear

 

Gambar 4. Setelah diclear.

 

File /proc/sys/vm/drop_caches ini tidak dapat ditulis dengan editor text lainnya. Hanya dapat dilakukan oleh root dengan mode echo dan diarahkan ke file tersebut.

Untuk notasi angka untuk diisikan ke drop_cache dapat dilihat di sini :

angka 1 untuk membebaskan pagecache

angka 2 untuk membebaskan dentries dan inodes

angka 3 untuk membebaskan semuanya