Beberapa hari ini gw banyak ngeliat web app bijakmemilih.id berkeliaran di timeline sosmed. Dan kebetulan lagi gabut & coba discover web app itu. So far web app nya sangat menarik, dan interaktif.
- Recon
Ada beberapa fitur yang menarik & menggunakan 3rd party. bijakmemilih.id memilih menggunakan formaloo buat melakukan survey ke user, dan yang paling menarik adalah mereka memakai formaloo tersebut untuk pendaftaran volunteer.
https://www.bijakmemilih.id/about/join-team#form
Dan beberapa link form formaloo lainnya, yang digunakan untuk survey ke user.
- Quick Security Research Formaloo
Sekarang kita bahas untuk function dasar pada Formaloo yang ada pada bijakmemilih.id
1. Slug
Example : https://bijak-memilih.formaloo.me/tmzjq
Setelah submit form itu, kita bakal dapet request & response seperti ini :
Maka dapat di ambil kesimpulan penggunaan slug adalah seperti ini :
POST /v3.0/form-display/slug/$SLUG/submit
2. Subdomain
Example : https://bijak-memilih.formaloo.me/tmzjq
Dari request & response yang sama, ada “subdomain” dengan value “bijak-memilih”.
Maka penggunaannya akan menjadi seperti ini :
https://$subdomain.formaloo.me/$address
3. Address
Example : https://bijak-memilih.formaloo.me/tmzjq
Dari request & response yang sama, ada “address” dengan value “tmzjq”.
Maka penggunaannya akan menjadi seperti ini :
https://$subdomain.formaloo.me/$address
4. live_dashboard_address
Example : https://bijak-memilih.formaloo.me/tmzjq
Dari request & response yang sama, ada “live_dashboard_address” dengan value “900E3VhgGG15T5S”.
Untung function ini sedikit berbeda dengan function yang lain, karena dia harus melakukan GET request ke api lain.
Penggunaannya akan menjadi seperti ini :
GET /v3.0/live-dashboards/$live_dashboard_address/ HTTP/2
Host: api.formaloo.net
Example :
GET /v3.0/live-dashboards/900E3VhgGG15T5S/ HTTP/2
Host: api.formaloo.net
Response 404, menunjukkan bahwa live address tersebut tidak bisa diakses public / memang tidak ada. Untuk detailnya akan dijelaskan di point 5 (live_dashboard_config).
5. live_dashboard_config
Example 1 : https://bijak-memilih.formaloo.me/tmzjq
Dari request & response yang sama, ada “live_dashboard_config” dengan value yang kosong. Ini menandakan tidak ada nya config yang di setting pada live dashboard.
Example 2 : https://bijak-memilih.formaloo.me/yayf9
Ini merupakan example yang menarik, karena tidak berbentuk form seperti yang lain. Namun dia berbentuk widget yang berisi form untuk survey feedback user.
Yang menjadi pembeda disini adalah live_dashboard_config di example ke-2 ini sudah di set menjadi seperti berikut :
“live_dashboard_config”:{“public_embed_form”:false,”public_field_stats”:true,”public_submit_count”:true,”public_over_time_stats”:false}
Dilihat dari config tersebut, bahwa user public hanya bisa melihat count & statnya, tanpa bisa mengakses formnya.
Bagaimana cara akses dashboardnya ?
Check live_dashboard_address seperti point no 4.
Setelah dapat “live_dashboard_address”, GET request seperti berikut
GET /v3.0/live-dashboards/$live_dashboard_address/ HTTP/2
Host: api.formaloo.net
Maka akan mendapatkan stat berformat json
Masih ada cara lain buat view statnya, jika memang males baca json nya.
Kita bisa liat statnya dengan cara seperti ini :
GET /$live_dashboard_address HTTP/2
Host: live.formaloo.net
Pada contoh kali ini kita menggunakan live_dashboard_address dengan value “L9kQ72rRIWN14SW”
GET /L9kQ72rRIWN14SW HTTP/2
Host: live.formaloo.net
Maka akan tampil stat seperti berikut :
6. spreadsheet_id & spreadsheet_url
Example 1 : https://bijak-memilih.formaloo.me/tmzjq
Dari request & response yang sama, ada “spreadsheet_id” & “spreadsheet_url” dengan value “null”.
Ini menandakan bahwa form tersebut tidak di integrasikan dengan spreadsheet.
Example 2 : https://bijak-memilih.formaloo.me/jljq2
Example kali ini menarik, karena spreadsheet_id & spreadsheet_url mengandung value url & id spreadsheet yang digunakan.
- How I discover PII Leakage on bijakmemilih.id ?
Setelah melihat beberapa penggunaan formaloo di bijakmemilih.id, saya sangat tertarik dengan form Bijak Memilih Volunteer (https://bijak-memilih.formaloo.me/jljq2). Ada beberapa kolom yang berisikan sensitive information, seperti E-mail & CV.
Seperti yang saya notice di point 6, form Bijak Memilih Volunteer terintegrasi dengan spreadsheet.
Dan setelah saya discover, spreadsheet tersebut dapat diakses & di edit oleh public. Maka semua data pendaftar volunteer tersebut tersimpan di spreadsheet, ini menyebabkan PII Leakage.
- Cheatsheet Security Check on Formaloo
Check beberapa function yang sensitive seperti berikut :
- live_dashboard_address
- owner_custom_domain
- forward_submit_emails_to
- spreadsheet_id & spreadsheet_url
- Timeline Report
Reported Bug — Jan 24, 2024, 4:52 AM (GMT +4)
Acknowledged & Fix Bug — Jan 26, 2024, 4:28 PM (GMT +4)
- Credit :