Ini Cara Saya Menemukan Information Disclosure di keuportal.akakom.ac.id

- 2 comments

hallo sobat, assalammualaikum, selamat malam menjelang pagi, bagaimana kabar kalian? selamat mengunjungi dan membaca di blog yang hampir mati ini, hehehe.
kali ini saya mau update sesuatu nih, mengenai penemuan bug saya di akakom, yup, di kampus saya sendiri. mau tahu apa yang kutemukan dan bagaimana caraku menemukan?  yuk simak tulisanku.
sama seperti mahasiswa pada umumnya, saya mempunyai tanggungan bayaran tiap awal semesternya, yaitu spp variabel, spp variabel itu bayaran ke kampus, karena telah mengambil beberapa mata kuliah. tak ingin telat membayar karena takut kena denda, saya selalu cek tagihan di keuportal.akakom.ac.id, setelah iseng-iseng lihat-lihat webnya, lah kok nemu bug information disclosure, wkwkwkw, jujur sih, ini temuan bug information disclosure saya pertama, dan rasanya wtf, "ini kah cinta" wkwkwk.
information disclosure adalah sebuah bug dimana seseorang yang tidak mempunyai wewenang atau akses, dapat melihat informasi yang seharusnya hanya orang yang memiliki akses tertentu yang dapat melihatnya.


pada segitiga CIA, data disclosure masuk pada confidentiality, dan pada OWASP top 10, masuk pada A3:2017-Sensitive Data Exposure.
sekarang masuk ke "bagaimana cara saya menemukannya".

pertama saya login seperti biasa, ya sama seperti mahasiswa lainnya.

nah, kemudian buka rekab bayaran sebelum-sebelumnya disini.
wah ada parameter nih, pikiran kotor saya langsung bergeliat, wkwkw, iseng-iseng coba lah sql injection, gk bisa, trus coba ganti nimnya jadi nim temen, siapa tahu bisa berubah jadi rekab bayaran temen, eh, gak bisa juga wkwkwk.

nah, entah kesambet apa, saya coba hapus beberapa kata di url nya, jadi kek gini, keuportal.akakom.ac.id/keuportal/index.php?r=sppVarRinci
ini beneran saya jujur, gk ngerti kalo kek gini bisa buat nampilin beberapa informasi, saya sih sempet belajar yii di kelas (kekna keuportal pake yii), ya tapi gitu lah, seringnya tidur dikelas, wkwkwk, jadi gk paham betul. ya tapi, alhamdulilah lah, akhirnya bisa nemu bug information disclosure juga, wkwkwk.


disini saya bisa membaca beberapa biaya spp variabel mahasiswa lain, dengan lengkap, wkwkwk.


beberapa hari, setelah saya menemukan bug itu, saya langsung melaporkannya ke pihak akakom melalui info@akakom.ac.id, dengan mengirimkan video POC, dan dibalas besoknya, pada siang hari.


kenapa butuh beberapa hari untuk saya laporkan? karena saya sibuk.
kenapa saya melaporkan? karena saya tidak mau ada orang lain yg mengekspos data saya dikampus, karena waktu-waktu anak kampus ungu lagi panas-panasnya sama akakom, sampe deface web akakom, eh upload file maksudnya, wkwkwk.
dan mungkin ada yang tanya, "apakah mendapatkan bounty?" jawabanya adalah . . . . . .
wkwkwk, saya sih berharap, spp saya digratiskan semester ini, karena temuan saya itu, tapi ya gitu lah, email saya aja gk dibales lagi, padahal webnya udah fix, hahahaha.


ya, gk pa-pa lah, kalo kata orang, ilmu itu lebih berharga dari uang, jadi saya anggap ini sebagai pengalaman buat kedepan.

sekian tulisan saya kali ini guys, terimakasih telah membaca, kalo ada salah tulis, ya maafkan lah, wkwkwk.
walaikumsalam. :D
[Continue reading...]

SQL injection insert into query

- 0 comments

assamualaikum,
sql injection, bug tua yang selalu digemari oleh anak-anak muda, dari kalimat tersebut kita bisa tahu sql injection adalah bug yang "never end", selalu saja ditemukan bug ini dibeberapa sistem, baik itu sistem kecil maupun besar.
sql injection mempunya banyak sekali cara, yang paling terkenal yang sering kita dengar pasti select query, itu loh yang biasanya order by. pada query select pun mempunyai banyak sub bug lagi, karena tidak semua kelemahan pada sql injection itu sama, contohnya ada union based, yang sering diketahui orang, kemudian ada error based, ada boolean based, dan ada time based.
tapi pernah gk sih, kalian berfikir bahwa menginjeksi query itu tidak hanya pada query select? tentu sebagian orang tidak berfikir sejauh itu, karena dianggap mustahil dan lain sebagainya, tapi menginjekan query selain pada select, dapat benar-benar terjadi.
contohnya seperti yang akan saya tulis ini, yaitu sql injection dengan insert into query, tentu bug ini sangat-sangat langka, karena sebagian input data sudah dipasangi dengan fungsi escape string, itu loh fungsi yang dapat mengabaikan quote, sehingga karakter quote akan tercetak seperti sedianya, atau tidak dapat digunakan untuk menginjeksi. ya, memang itu kenyataannya, tapi apa salahnya kita mencoba belajar, toh itu akan meningkatkan peluang kita dapat melakukan sql injection.
oke, mungkin intronya cukup sekian aja, sekarang saatnya saya sedikit menjelaskan, hehehe.

bermodal ilmu cupu yang saya punya, saya mencoba melakukan sql injection pada sebuah sistem yang dijual pada codecanyon, dan gocha, saya dapat melakukannya, ini submit saya ke exploit-db tentang bug tersebut.

https://www.exploit-db.com/exploits/44868/



disitu sudah saya jelaskan, sedikit, dengan bahasa inggris saya yang super busuk hahah, LOL

oke sekarang saya jelaskan secara teknis saja, tidak perlu dari awal.
disini ada sebuah form, dan tentu saja form input bukan search, karena digunakan untuk menambah data.


sekarang kita coba masukan data dengan akhiran quote seperti ini.



dan kemudian coba kita masukan data tersebut dengan menekan "new type" button.


eng ing eng, ternyata error gan, oke dengan error seperti ini, kita sudah tahu bahwa form tersebut vuln dan dapat diinjeksi. oke kemudian kita coba membuat payload untuk melakukan eksploitasi pada database tersebut, kita coba yang paling sederhana contohnya menampilkan database.
kita coba query pada mysql dilaptop sendiri, contohnya seperti ini.


oke, sekarang kita tahu bahwa dengan (select database()) kita dapat menampilkan & menambahkan data dengan nama database tersebut ke data, sebetulnya dengan hanya database() kita dapat melakukan hal yang sama, tapi disini saya mencoba memberi tahu, bahwa sebenarnya query select dapat diaplikasikan atau diterapkan pada query insert into.
sekarang kita coba pada form tadi, saya mencoba menebak berapa kolom pada tabel yang akan diinputkan.



coba lihat gambar diatas, dan lihat garis kuning yang saya buat, disana apabila saya memasukan data a pada form, maka hanya keluar a, hemm, dari sini saya mulai menyimpulkan bahwa mungkin ini tabel cuma 2 kolom, ya paling id saya kolom yang di inputkan tadi.
saya mulai berfikir lagi, apabila kolom tersebut cuma 2, maka tidak mungkin saya menampilkan data yang saya inginkan pada kolom tersebut, karena faktanya id sudah pasti integer, dan data yang saja input harus masuk kemudian baru saya injeksi dengan karakter quote, ini sedikit sulit dilejaskan. hehehe.
seperti perkataan saya diawal tadi, bahwa saya akan membuat sebuah payload, disini saya terapkan, apa saja fakta-fakta yang sudah saya temukan.
saya buat payload sederhana seperti berikut : tesaja'), (1000, (select database()))-- -

tesaja'), adalah data normal yang diinputkan bisa dibilang data dengan id yang sudah disiapkan.

(1000, (select database())) adalah data selanjutnya akan kita paksa inputkan, 1000 adalah id, dengan ansumsi saya bahwa id dengan 1000 belum ada, dan untuk data selanjutnya saya mencoba menampilan database dari sistem.

-- - digunakan untuk mengakhiri query, semua query setelah tanda tersebut tidak akan dibaca sebagai query

dan hasilnya seperti berikut.


oke dari penjelasan diatas kita dapat tahu, cara kerja singkat sql injection pada insert into query.
[Continue reading...]
 
Copyright © . free everyday - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger