Tapjacking Bug
Tapjacking Bug
Tapjacking Bug
Abstract
Android is an open source mobile operating system that is developed mainly by Google. It is used on a
significant portion of mobile devices worldwide. In this paper, I will be looking at an attack commonly
known as tapjacking. I will be taking the attack apart and walking through each individual step required
to implement the attack. I will then explore the various payload options available to an attacker. Lastly, I
will touch on the feasibility of the attack as well as mitigation strategies.
3. Tap Accept
II. Exploiting the vulnerability
I. Payload Selection
The first step in developing the exploit will be
to choose a payload. For this walkthrough, I
will be using the application installer payload.
We will need to note down the location and
number of taps a user would make in order
to install an application. In the case of Google
Play, the steps are as follows.
1 We can access the app detail page directly through market:// url. Hence, we do not need to search for the app.
1
• Android Tapjacking Vulnerability •
II. Developing the application The images have to be placed such that no
image overlaps a tappable area of any previous
Once the desired payload and steps has been screen. E.g. The image for the install button
identified, we can move on to developing the has been shifted to the left slightly so it does
application. We would need to create a toast not overlap the "Learn More" link in the per-
activity and have the image overlay the buttons missions page. This minimises the probability
which need to be pressed. Toasts are normally of the exploit failing. Thus the attack in prac-
used to display short text notifications and any tical is limited to 2 to 3 clicks at most due to
taps will be filtered down to the background limited screen real estate. Furthermore, the
layer. Positioning of the toast has to be done attack will also be unlikely to work if the size
by trial and error. We will want to use density of the button is too small as it will be difficult
independent pixels (dp) when specifying the as the victim might not be able to tap the exact
position so that the exploit code will work on spot.
devices with different resolutions but same
aspect ratios.
2
• Android Tapjacking Vulnerability •
The next step would involve setting the The second app will most likely request the
toast to repeat on a loop so that is always dis- following core permissions.
played on the screen and set the background
of the toast to white so as to obscure the target
application.
1. RECEIVE_BOOT_COMPLETED - Allows
the attacker to start a service in the back-
ground whenever the phone is restarted.
Thus the user does not even need to run
the application.
3
• Android Tapjacking Vulnerability •
4
• Android Tapjacking Vulnerability •
5
• Android Tapjacking Vulnerability •
References
[1] CommonsWare, LLC.
The CommonsBlog - Tapjacking, Defunct?
http://commonsware.com/blog/2012/03/03/tapjacking-defunct.html
Retrieved 22 April 2015.
[3] developer.android.com
Intent | Android Developers
http://developer.android.com/reference/android/content/Intent.html
Retrieved 22 April 2015.