Bypassing Email Filter which leads to SQL Injection

Dimaz Arno
Aug 25, 2018 · 2 min read

Akhirnya nulis lagi, soalnya temuan ini menurut saya lumayan menarique jadi pengen sharing, maaf yang pakai google translate, artikel ini isinya bahasa Indonesia meskipun judulnya dalam bahasa Inggris :p

Pada saat mengikuti program bug bounty di salah satu perusahaan fintech Indonesia yaitu uangteman, saya menemukan inputan email pada fungsi “lupa password” dan disinilah semua berawal :D

Pertama kali saya eksperimen dengan inputan tanpa spasi :

a@a.com => valid

“a”@.com => valid

Kemudian dengan spasi :

dimaz arno@test.com => tidak valid

“dimaz arno”@test.com => valid

Hal ini sesuai dengan RFC 3696 pada sesi

3. Restrictions on email addresses

https://tools.ietf.org/html/rfc3696

Namun pada kasus kali ini api uangteman melakukan filter spasi alias tidak diperbolehkan menggunakan spasi (bad format).

Tapi… untuk karakter “(“ dan “)” diperbolehkan, dan ini cukup “membantu” untuk membuat karya seni payload blind sql injection.

Daftar eksperimen payload :

Dari enumerasi tersebut akhirnya diperoleh bahwa jumlah karakter databasenya adalah 10.

Kesimpulan :

Jika dihadapi dengan filter email yang membatasi karakter khusus, saya seringkali menemukan dapat dibypass dengan memberikan tanda petik di bagian struktur local part email (sebelum @),

Formatnya seperti ini : “injection_here”@email.com

contoh :

“<script src=//xsshere?”@email.com

“1-’or’1'=’1”@email.com

Silahkan dicoba dan semoga beruntung!

Dimaz Arno

Written by

IT Security Enthusiast, CEO of Ethic Ninja https://ethic.ninja

More From Medium

Also tagged Bug Bounty

Related reads

Related reads

SSRF in the Wild

707

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade