2 minutes
Verifikasi yang jelek
Kemaren2 gw nemu sebuah PHP library. Untuk lebih memahami maksud dan cara kerjanya, gw baca tuh codenya. Di dalamnya terdapat beberapa baris code untuk memverifikasi kepemilikan codenya (ini bukan free library, kita harus beli baru dapat file-filenya.
Di bagian inialisasi, si class ini melakukan request ke server pembuat code disertai data email dan transaksi id pembelian sebagai acuan. Jadi gak mungkin kita isi dengan sembarang data.
Format URL yang diminta seperti ini:
http://server/verify?mail=email@domain.tld&trid=ID-TRANSAKSI
Sampai sini sih gak terlalu menarik. Di baris selanjutnya, hasil dari request tersebut diproses.
try {
$result = validate($url);
$data = json_decode($result, TRUE);
if ($data['status'] == 'valid') {
// ...
}
} catch (Exception $exp) {
// ...
}
Masih normal sih, sampai gw nyoba ngirim dengan email yang ngasal dan transaksi id yg asal pula, hasilnya tetep aja valid.
Hasil dari request tersebut kira-kira seperti ini:
{"status":"valid", ... }
Ini baru menarik, karena input seperti apapun hasilnya tetep hasilnya valid, library seperti ini dengan mudah dibikin NULLED, kita bisa bypass code diatas, ganti aja jadi seperti ini:
try {
// $result = validate($url);
// $data = json_decode($result, TRUE);
$data = array(
'status' => 'valid',
// ...
);
if ($data['status'] == 'valid') {
// ...
}
} catch (Exception $exp) {
// ...
}
Jadi gak perlu melakukan verifikasi online, langsung aja bypass, script kita langsung verified deh.