# Ret2ret & Reo2pop {{#include ../../../banners/hacktricks-training.md}} ## Ret2ret Die hoof **doel** van hierdie tegniek is om te probeer om **ASLR te omseil deur 'n bestaande pointer in die stapel te misbruik**. Basies, stapel oorgeloop is gewoonlik veroorsaak deur stringe, en **stringe eindig met 'n null byte aan die einde** in geheue. Dit maak dit moontlik om te probeer om die plek wat deur 'n bestaande pointer in die stapel aangedui word, te verminder. So as die stapel `0xbfffffdd` bevat, kan hierdie oorgeloop dit in `0xbfffff00` verander (let op die laaste nul byte). As daardie adres na ons shellcode in die stapel wys, is dit moontlik om die vloei na daardie adres te laat bereik deur **adresse by die `ret` instruksie te voeg** totdat hierdie een bereik word. Daarom sal die aanval soos volg wees: - NOP sled - Shellcode - Oorskry die stapel vanaf die EIP met **adresse na `ret`** (RET sled) - 0x00 bygevoeg deur die string wat 'n adres van die stapel verander om na die NOP sled te wys Volg [**hierdie skakel**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2ret.c) om 'n voorbeeld van 'n kwesbare binêre te sien en [**in hierdie een**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2retexploit.c) die eksploit. ## Ret2pop In die geval dat jy 'n **perfekte pointer in die stapel kan vind wat jy nie wil verander nie** (in `ret2ret` verander ons die finale laagste byte na `0x00`), kan jy dieselfde `ret2ret` aanval uitvoer, maar die **lengte van die RET sled moet met 1 verkort word** (sodat die finale `0x00` die data net voor die perfekte pointer oorskry), en die **laaste** adres van die RET sled moet na **`pop ; ret`** wys.\ Op hierdie manier sal die **data voor die perfekte pointer verwyder word** van die stapel (dit is die data wat deur die `0x00` geraak word) en die **finale `ret` sal na die perfekte adres** in die stapel wys sonder enige verandering. Volg [**hierdie skakel**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2pop.c) om 'n voorbeeld van 'n kwesbare binêre te sien en [**in hierdie een**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2popexploit.c) die eksploit. ## References - [https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md) {{#include ../../../banners/hacktricks-training.md}}