Artikel ini saya hibahkan khusus buat techno-os. Mengenai artikel ini belum pernah dibuat sama sekali di internet (insya Allah). Artikel ini juga merupakan 99% dari ide penulis. oke langsung saja.
wxbxnablxd.dot.com
Apa itu ??
yuk mari baca:
wxbxnablxd.dot.com removes the need for you to setup your development environment. This saves you time and allows you to begin development immediately. No need to worry about PHP, MySQL, Apache config and setting up version control. On top of this we have a library of applications that can be installed on-demand including Drupal, WordPress, Joomla, and more. It’s as simple as logging in to your dashboard at your wxbxnablxd.dot.com address (i.e. http://acme.wxbxnablxd.com). By filling out a simple form you can start a new application within a minute. Applications are conveniently organized into projects that are accessible and managed from your dashboard.
Nah, jika teman2 ada yang sudah mengetahui tentang wxbxnablxd ini pasti sudah tidak asing lagi. Beberapa bulan yang lalu wxbxnablxd masih bisa mencoba dengan project trial sampai 3 buah dan tanpa renew setiap bulannya. Tapi berhubung semakin banyak yang memakai fasilitas tersebut, kini wxbxnablxd membatasi hanya sampai project trial 2 buah dan dengan renew setiap bulannya.
Terpikir karena adanya sistem yang membuat untuk merenew setiap bulannya, bagaimna jika kita balas dengan system juga untuk auto renew nya ??
okeh…
Pada dasarnya prinsipnya hanya sederhana:
1. Mengakses https://username.wxbxnablxd.dot.com/we_application/renew/14381
2. Kirim notifikasi sms via twitter.
dimana username adalah username kita dan 14381 adalah kode project nya.
Namun, untuk merenew dengan mengakses https://username.wxbxnablxd.dot.com/we_application/renew/14381 harus login terlebih dahulu. Ok, kita lihat dulu source loginnya ( https://username.wxbxnablxd.dot.com/user/login )
<form action="/user/login" accept-charset="UTF-8" method="post" id="user-login"> <div><div class="form-item" id="edit-name-wrapper"> <label for="edit-name">Username: <span class="form-required" title="This field is required.">*</span></label> <input type="text" maxlength="60" name="name" id="edit-name" size="50" value="" class="form-text required" /> </div> <div class="form-item" id="edit-pass-wrapper"> <label for="edit-pass">Password: <span class="form-required" title="This field is required.">*</span></label> <input type="password" name="pass" id="edit-pass" maxlength="128" size="50" class="form-text required" /> </div> <input type="hidden" name="form_build_id" id="form-0519d220e38dcf4ee7b5f448247ce1e0" value="form-0519d220e38dcf4ee7b5f448247ce1e0" /> <input type="hidden" name="form_id" id="edit-user-login" value="user_login" /> <input type="submit" name="op" id="edit-submit" value="Log in" class="form-submit" /> <div id="forgot-password"><b>Help:</b> <a href="/user/password">I can't sign in or I forgot my username/password</a></div> </div></form>
hmm… gimna atuh ? pusing ? sama… wkwkwk..
ok, cool down..
kita lihat parameter2 dari id yang penting saja.
1. name <– username
2. pass <– password
3. form_build_id <– type input data yang hidden dengan value dinamik ( form-0519d220e38dcf4ee7b5f448247ce1e0 )
4. form_id <– type input data yang hidden dengan value static ( user_login )
5. op <– tombol submit dengan value Log%20in atau “Log in” (tanpa dua kutip)
ok, karena data yang disubmit oleh form adalah dengan method post, maka kita pake dengan opsi -d dari perintah curl. Dengan opsi -d dari perintah curl akan mengirim input data dengan plain text atau tidak terenkripsi. *hati2*
jadi kita coba:
curl -d "name=username&pass=password&form_build_id=form-0519d220e38dcf4ee7b5f448247ce1e0&form_id=user_login&op=Log%20in" https://username.wxbxnablxd.dot.com/user/login
jika username dan password anda sudah benar maka tidak akan keluar pesan apa pun, namun jika username atau password anda salah maka akan keluar plain text htmlnya. dari sini kita bisa login dengan command curl.
Ingat !!.. tujuan pertama kita adalah mengakses url: https://username.wxbxnablxd.dot.com/we_application/renew/14381 dengan syarat harus login. Nah, bagaimana kita bisa melakukan itu ?
1. apa dengan perintah pipe ( | ) ?
2. atau dengan perintah bersambung && *atau apa ini namanya* ??
tidak.. tidak.. *saya tdk tahu ;p*
kita harus membuat tiket masuk yang sudah diidentifikasi bahwa kita sudah login. ini lho,, tadi saya tadi sudah masuk kamar mandi.. *eh.
sudah login maksudnya. terusss????
Yaa.. dengan membuat cookiest…
Dengan membuat cookiest, kita bisa masuk kapan saja tanpa harus memasukkan usename dan password lagi. Istilahnya kalo di pertunjukkan layar tancep itu seperti cap cap itu lho.. mas, saya mau keluar ke kamar mandi, cap-in dulu donk mas biar nanti saya gak bayar lagi masuknya. kurang lebih seperti itu kegunaan cookiest. Cookiest juga ada tenggang waktunya seperti sudah luntur cap nya.
di cURL , cara membuat cookiest dan menggunakannya sangat mudah. Hanya dengan opsi perintah -c untuk membuat dan -b untuk memakai.
$ curl -c kue.txt -d "name=username&pass=secret&form_build_id=form-0519d220e38dcf4ee7b5f448247ce1e0&form_id=user_login&op=Log%20in" https://username.wxbxnablxd.dot.com/user/login -v
gunakan opsi verbose -v jika perlu
.
cobalah tengok dulu cookiestnya:
$ cat kue.txtterus saatnya kita gunakan:
$ curl -b kue.txt https://username.wxbxnablxd.dot.com/we_application/renew/14381
jika tanpa ada pesan apa2, berarti renew sudah dilakukan. Untuk melihat hasilnya, kita bisa lihat dengan perintah:
bash-3.1$ curl -b kue.txt https://$username.wxbxnablxd.com/user | grep "set to" | awk 'BEGIN{FS="<li>"; OFS="."}{print $3}' | cut -c1-60 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 13330 0 13330 0 0 4463 0 --:--:-- 0:00:02 --:--:-- 8769 <b>d0nna</b> is set to expire on <b>08-13-2010</b>. <a href= bash-3.1$
gimna dengan notifikasi sms nya ?
tinggal setup saja 2 akun d twitter:
- akun 1, penerima sms
- akun 2 untuk update status
lalu jalankan perintah ini menggunakan akun ke 2
msg=`curl -b kue.txt https://$username.wxbxnablxd.com/user | grep "set to" | awk 'BEGIN{FS="<li>"; OFS="."}{print $3}' | cut -c1-60`; curl --basic --user $username_twitter:$pass_twitter --data status="$msg" http://twitter.com/statuses/update.xml
set crontab script di bawah ini 1bln skali n kelar..
masih kurang rapih greping nya ;p..
#!/bin/bash # hok hok hokya.. # i'm writing this on jobless condition :( username="username_wxbxnablxd.dot.com" password="password_wxbxnablxd.dot.com" host="wxbxnablxd.dot.com" namakue="kuenak.txt" # project pertama = 2 # project kedua = 3 nomorproject="2" username_twitter="username" pass_twitter="password" # id aplikasi id_aplikasi="14381" # ambil form id form_id=`curl https://$username.$host/user/login | grep form_build_id | awk '{print $5}' | cut -d \" -f 2` # ambil koki curl -c $namakue -d "name=$username&pass=$password&form_build_id=$form_id&form_id=user_login&op=Log%20in" https://$username.$host/user/login -v >> log.txt echo "==================" >> log.txt # renew.. curl -b $namakue https://$username.$host/we_application/renew/$id_aplikasi -v >> log.txt # send sms msg=`curl -b $namakue https://$username.$host/user | grep "set to" | awk 'BEGIN{FS="<li>"; OFS="."}{print $"$nomorproject"}' | cut -c1-60` curl --basic --user $username_twitter:$pass_twitter --data status="$msg" http://twitter.com/statuses/update.xml
ref:
- manual cURL
- web[ena]bled[dot]com
thanks to:
Novizul Evendi *maap klo salah ;p
Techno-os maniak
mahadewi-qu di busway td : (

