mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 12:43:23 +00:00
31 lines
4 KiB
Markdown
31 lines
4 KiB
Markdown
# Array Indeksering
|
|
|
|
{% hint style="success" %}
|
|
Leer & oefen AWS-hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Leer & oefen GCP-hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Ondersteun HackTricks</summary>
|
|
|
|
* Controleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
|
|
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Deel hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
## Basiese Inligting
|
|
|
|
Hierdie kategorie sluit alle kwesbaarhede in wat voorkom omdat dit moontlik is om sekere data te oorskryf deur foute in die hantering van indekse in reekse. Dit is 'n baie wyd kategorie sonder 'n spesifieke metodologie aangesien die uitbuitingsmeganisme heeltemal afhang van die toestande van die kwesbaarheid.
|
|
|
|
Hier kan jy egter 'n paar mooi **voorbeelde** vind:
|
|
|
|
* [https://guyinatuxedo.github.io/11-index/swampctf19\_dreamheaps/index.html](https://guyinatuxedo.github.io/11-index/swampctf19\_dreamheaps/index.html)
|
|
* Daar is **2 botsende reekse**, een vir **adresse** waar data gestoor word en een met die **groottes** van daardie data. Dit is moontlik om een van die ander te oorskryf, wat dit moontlik maak om 'n arbitêre adres te skryf wat dit as 'n grootte aandui. Dit maak dit moontlik om die adres van die `free`-funksie in die GOT-tabel te skryf en dit dan met die adres na `system` te oorskryf, en roep vry vanaf 'n geheue met `/bin/sh`.
|
|
* [https://guyinatuxedo.github.io/11-index/csaw18\_doubletrouble/index.html](https://guyinatuxedo.github.io/11-index/csaw18\_doubletrouble/index.html)
|
|
* 64-bits, geen nx. Oorskryf 'n grootte om 'n soort buffer-oorvloei te kry waar alles as 'n dubbele getal gebruik gaan word en van kleinste tot grootste gesorteer gaan word, sodat dit nodig is om 'n shell-kode te skep wat aan daardie vereiste voldoen, met inagneming dat die kanarie nie van sy posisie af beweeg moet word nie en uiteindelik die RIP met 'n adres na ret oorskryf, wat aan die vorige vereistes voldoen en die grootste adres 'n nuwe adres wat na die begin van die stap wys (uitgelek deur die program) plaas sodat dit moontlik is om die ret te gebruik om daarheen te spring.
|
|
* [https://faraz.faith/2019-10-20-secconctf-2019-sum/](https://faraz.faith/2019-10-20-secconctf-2019-sum/)
|
|
* 64-bits, geen relro, kanarie, nx, geen pie. Daar is 'n off-by-one in 'n reeks in die stapel wat toelaat om 'n aanwyser te beheer wat WWW toeken (dit skryf die som van al die getalle van die reeks in die oorgeskryfde adres deur die off-by-one in die reeks). Die stapel word beheer sodat die GOT `exit`-adres met `pop rdi; ret` oorgeskryf word, en in die stapel word die adres na `main` bygevoeg (terugkeer na `main`). 'n ROP-ketting om die adres van put in die GOT uit te lek deur puts te gebruik word gebruik (`exit` sal geroep word sodat dit `pop rdi; ret` sal roep en dus hierdie ketting in die stapel uitvoer). Uiteindelik word 'n nuwe ROP-ketting wat ret2lib uitvoer, gebruik.
|
|
* [https://guyinatuxedo.github.io/14-ret\_2\_system/tu\_guestbook/index.html](https://guyinatuxedo.github.io/14-ret\_2\_system/tu\_guestbook/index.html)
|
|
* 32-bits, geen relro, geen kanarie, nx, pie. Misbruik 'n slegte indeksering om adresse van libc en heap van die stapel uit te lek. Misbruik die buffer-oorvloei om 'n ret2lib te doen wat `system('/bin/sh')` roep (die heap-adres is nodig om 'n kontrole te omseil).
|