Public paste
CSRF
By: DrWh4x | Date: Jan 7 2008 12:02 | Format: None | Expires: never | Size: 3.88 KB | Hits: 1342

  1. <b><i><color='#fc0'>Introductie:</color></i></b>
  2.  
  3. <b><i><u><color='#fc0'>Niet op devarea zelf proberen!</color></</u></i>b>
  4.  
  5. CSRF is een techniek die eigenlijk wordt uitgevoerd door de gebruiker zelf dan door de aanvaller. Wat eigenlijk als je het bekijkt pretty weird is. Eigenlijk heeft de user dit dus ook niet door wat veel schade kan opleveren bij de user en de aanvaller access kan geven tot delen van een website waar hij eigenlijk geen toegang tot mag hebben.
  6.  
  7. De techniek CSRF is min of meer "ontdekt" rond 2001, en is een van de grootste risico's in de hedendaagse security. En wordt tevens ook zwaar onderschat.
  8.  
  9. Een simpel voorbeeld is:
  10.  
  11. Jij leidt een admin naar een page en daar zit een verborgen iframe in, en laten we stellen dat jij permissions kan updaten van users in het adminpanel. Jij schrijft dus bijvoorbeeld zo'n scriptje:
  12.  
  13. <html>
  14. <iframe name="l33twh4x" frameborder="0" height="0" width="0"></iframe>
  15. <form method="post" action="http://site.com/path/index.php" name="wh4x" target="l33twh4x">
  16. <input type="hidden" name="regusername" value="[User_Name]">
  17. <select name="reglevel"><option type="hidden" value="1"></option></select>
  18. <input type="hidden" value="Add User">
  19. <input type="hidden" name="action" value="adduser">
  20. <input type="hidden" name="mod" value="editusers">
  21. </form><script>document.wh4x.submit()</script>
  22. </html>
  23.  
  24. En jij zet er een grappige foto op en de admin denkt dat hij in de maling is genomen maar tegelijkertijd heb jij toegang tot zijn systeem en kan je doen en laten wat jezelf wil.
  25.  
  26. Zo hebben we enkele grote website's kunnen hacken met een grote hoeveelheid aan users (400 k +)
  27. Daarom noem ik het nog steeds een zwaar onderschatte aanvalsmethode.
  28.  
  29. <b><i><color='#fc0'>Geavanceerdere technieken</color></i></b>
  30.  
  31. Het volgende voorbeeld is gebaseerd dat je kennis hebt van het HTML protocol. Image tags in HTML, kunnen gebruikt worden om te redirecten om zo de aanval zogenaamd te "spoofen"
  32.  
  33.  
  34. <code lang='alle'>img src="http://evilsite.nl/csrf_naar_de_site"
  35. //redirect van het script naar de target.</code>
  36.  
  37.  
  38. Wanneer dit mogelijk is, kan het zeer ernstige gevolgen hebben. Je kan dit ook in een email verstoppen omzo polls/forum te manipuleren enzo verkeerde uitslagen te geven of om te spammen. Of bijvoorbeeld biedingen op bepaalde producten op een ecommerse site te laten stijgen. Het is eigenlijk ook een stealth techniek de eigenaar van de site kan het bijna niet door hebben.
  39.  
  40. <b><i><color='#fc0'>Defense?</color></i></b>
  41.  
  42. Als je voor een snelle en tevens goede manier wil om deze aanvalsmethode buiten te sluiten van jouw site, adviseer ik je om een zogenaamde secret token te maken. Want het enige minpunt van csrf dat het altijd dezelfde url moet zijn om de applicatie te kunnen aanvallen. De secret token zal dus steeds een unieke url maken, dat kan er ongeveer zo uitzien:
  43.  
  44. <code>secret_token=kdfdf8sdfdfs7fsd7sdf9sdf (bijv een md5 die steeds custom generate of een base64 encryptsie)
  45. In de URL:http://site.com/blaat.php?id=11&secret_token=kdfdf8sdfdfs7fsd7sdf9sdf</code>
  46.  
  47. De token wordt ook server sided opgeslagen, dus als dezelfde user is ingelogd blijft het hetzelfde, maar als er iemand anders met een ander ip erbij komt, dan zal de token zich opnieuw genereren en dus de huidige sessie afsluiten. Maar de diehards kunnen dit wel bypassen. (likeme xD)
  48.  
  49. Ook kun je de sessie's beter korter maken dan heel lang. (20 a 25 minuten) ook dit helpt mee met de beveliging. (iedere sessie andere token.) Sessie's opslaan in je /tmp/ map is ook niet al te veilig. Want dit valt ook uit te lezen als je geen safe-mode aan hebt staan. (Met safemode aan heb je openbase_dir restrictie.)
  50.  
  51. <b><i><u><color='#fc0'>Laaste woorden:</color></u></i></b>
  52.  
  53. Houd alsjeblijft dit in de gaten, deze aanvalstechniek is gewoon te zwaar onderschat en kan zware gevolgen hebben. Daarom schrijf ik ook dit artikel eerst omdat dit zeer belangerijk is. Mocht je vragen hebben feel free to pm me.