Microsoft kena deface lagi!! Lagi-lagi SQL Injection

Situs-situs besar, seperti Microsoft, memang selalu menjadi target show off para defacer. Belum lama Microsoft IEAK kena deface, microsoft.co.uk kena aksi defacement dari defacer asal Saudi Arabia juga, ‘rEmOtEr‘. Pada kasus IEAK, situs yang mempromosikan IE Administration Kit, sang defacerCyber-Terrorist aka cyb3rt‘ membaca struktur database melalui SQL Injection kemudian melakukan injeksi tag HTML pada tag select / option (drop down box) di table yang berhubungan dengan country region atau 1stCountry, CMIIW. Sepertinya data country region ini diretrieve dari database yang mana bisa di injeksi oleh Cyb3rt. Ini bisa dianalisa dari source code cache halaman terdeface yang dimirror oleh zone-h. Jadi halaman terdeface yang menampilkan image Bill Gates setelah dilempar kue, CMIIW, ini merupakan hasil sisipan tag HTML dari atribut onload pada tag body. Imagenya sendiri masih ada disini. Lalu pada kasus Microsoft.co.uk, hal yang serupa juga terjadi kembali. Kali ini, remoter mengabadikan proses defacementnya dalam video. Karena sudah ada videonya dan juga ulasan pada beberapa situs mengenai Microsoft.co.uk yang kena deface (saya list di bawah), saya tidak akan membahasnya lebih jauh.

Lalu kenapa sering kali terjadi kasus defacement berawal dari SQL Injection? Warning & error pada kesalahan query merupakan hal yang berbahaya untuk ditampilkan pada situs produksi, lain halnya jika masih tahap development. Ibarat pemilik yang memberi petunjuk lokasi dan isi brankas. Sebenarnya, IMHO, hal ini tidak mengindikasikan bahwa produk-produk (asp|mssql maybe?) dari korban yang bersangkutan itu gampang dieksploitasi atau penuh vulner, justru yang tidak open source ini malah susah untuk bug hunting. Hanya saja, mungkin, terlalu banyak yang ‘empet’ dengan si korban. SQL Injection dapat saja terjadi pada DBMS lainnya seperti MySQL, Postgres atau Oracle. Yang jadi masalah adalah developer / programmer web tersebut, khususnya bagaimana doi menangani query SQL antara, misal web scripting (Perl, PHP atau ASP) dengan database. Ada beberapa tips (kalau ente percaya ane bs kafir) untuk meminimalisasi terjadinya SQL Injection :

  1. Warning atau Error pada query tidak perlu ditampilkan. Lebih baik dibuat script yang akan langsung memfeedback log error/warning ke developer/adminnya jika terjadi kesalahan query, sementara di end-user bisa ditampilkan, misal error 404 :D .Kalau Anda pernah / sering hosting di beberapa web hosting, pastinya ada beberapa web hosting yang memberikan penamaan yang sama untuk direktori usernya (shared hosting), misal /sompret/x2324/nama-domain (dimana sompret selalu sama untuk setiap user dalam satu mesin, x2324 adalah username, dan nama-domain adalah nama domain yang digunakan si x2324. Pesan warning dan error query yang terjadi akibat script akan menampilkan path letak file tersebut. Akan lebih parah lagi jika user memberi permission 777 ke dir / file.
  2. Developer hendaknya melakukan validasi terhadap URL dan memfilter bentuk request yang menjurus terhadap tindakan injeksi.
  3. Jangan pernah dumping database ke direktori yang tidak restrict permissionnya / publik. Dan lagi penamaan terhadap file hasil dumping database diusahakan tidak umum seperti pemberian tanggal-bulan-tahun (misal : 13071984.sql). Beberapa third party atau extension / module suatu CMS yang menggunakan konfigurasi default bisa ditebak direktori dan nama filenya.
  4. Lakukaan audit sendiri dengan berbagai macam tools yang ada.
  5. Baca artikel & tutorial, atau tonton video, untuk SQL Injectionnya, dengan ini yang bertahan bisa tahu jenis-jenis serangan yang mungkin dilakukan penyerang.
  6. Jika fulus ente cukup tidak salahnya konsultasi dengan pihak yang lebih prof untuk masalah security.

Nah, kita tunggu selanjutnya vulner defacement apalagi yang akan terjadi pada Microsoft :D .

Sumber terkait :

Microsoft.com Defaced

Microsoft defaced, again!

Microsoft.co.uk succumbs to SQL injection attack

Microsoft Got Hacked!!!

rEmOtEr’s page at lenzr.com (nih orang makannya table ama query kayaknya :p)

PS : Ada situs berita lokal yang telah lebih dulu membahasnya. Tapi sangat disayangkan terlalu pelit untuk menaruh informasi eksternal (links). Padahal sumber informasi sesungguhnya berasal dari link-link di atas.

Upgrading WordPress and old bug issue

After a long time using 2.0.5, finally, i decided to upgrade to 2.2 (latest stable released on May 15, 2007). Nothing changes if you look from the cover (themes), but as an admin or registered user you’ll see a new stylish login box at wp-login and some changed options in administration page. Actually, holly things are changed inside (scripts). It was easy to upgrade to 2.2, just follow instructions available on wp documentation’s page, section Upgrading WordPress. I felt glad that all plugins i’ve used before still work in 2.2. There are some reasons why i do upgrading to 2.2, but mostly comes from bug issue. Whilst googling to search vulners in old wp, i found some interesting sites which share exploit to compromise with wp (For your convenience please see wp trac). Here they are :

  • WordPress 2.2 (xmlrpc.php) Remote SQL Injection Exploit by Alexander Concha. Actually I’ve not tested this exploit yet. OK here what is as explained from by alex (translated from spanish) :
    The error comes from wp_suggestCategories() function in xmlrpc.php file. As it is possible to be observed in that function, a conversion to whole number doesn’t become the value of $max_results, reason why user_login is possible to send values of the type 0 UNION ALL SELECT, user_pass FROM wp_users. Alex gives the exploit which gives back the list of users with his respective passwords in MD5, in addition it also includes the cookies of authentication for each user. In order to correct this problem is to change line $max_results = $args [] of the function wp_suggestCategories() by $max_results = (int) $args [4]. See Changeset 5570. This exploit just viable for blog with user registration enabled
    CMIIW
  • WordPress Template.PHP HTML Injection Vulnerability by David Kierznowski
    A kind of CSRF vulnerability. See Changeset 4665
  • WordPress Persistent XSS by David Kierznowski which affects the latest version v2.0.5. See Changeset 4665
  • WordPress 2.1.3 admin-ajax.php SQL Injection Blind Fishing Exploit by Janek Vind a.k.a waraxe. This is a critical security for 2.1.3

And much more for old version. See also :