Bocsi a címért, de ennél frappánsabbat nem tudtam adni. Igaz ez a cikk, nem arról fog szólni, hogy hogyan kuncsorogj egy kocsmába facebook nevekért.
Gondoltam, hogy milyen jó spamelési lehetőség lenne, ha egy fake accountnak lenne monduk 5000-6000 barátja. Persze mi nem spamelünk, de a kíváncsiságom hajtott, hogy hogyan is lehet elérni a kiemelkedően magas barát számot.
Hogyan is találjunk barátokat?
Először is, aki beolvadt már az fb klónok közé azoknak valószínűleg van már profilja is. Ha van profilod akkor minimum egy ismerősöd van is (ha nincs gyorsan szerezz egyet!). Én az "Ismerősök Keresése" alkalmazást(?) szoktam használni, ez itt érhető el. Nos, eme program működése pofon egyszerű, a közös ismerősök alapján kínálja fel nekünk a személyeket (ezért szűkséges legalább 1 ismerős). Úgy érzem ez egy jó kiindulási pont lesz "új barátok gyors szerzésére".
A terv
Szükségem lesz egy olyan "programra", ami fogja és kigyűjti nekem az ismerősök neveit, az azonosítójukat. Ha ezek megvannak, akkor meg bejelölöm őket ismerősnek, de ugye ennek a dolognak a lényege az, hogy automatikus legyen, ne kézzel kelljen pipálgatnom az ismerősöket. Gondoljunk csak bele, hogy alap ismerősömnek (aki lehet akár a nem fake accom), ha van 500 ismerőse akkor azokat nekem mind felajánlja, hogy hátha én is ismerem őket. Ha mind az 500-at bejelölöm, és mivel olyan vonzó/csábító a fake accountom, ezért 100 an vissza is jelölnek, akiknek megint csak van fejenként 500 ismerősök, ebből vonjuk le a "közös ismerősöket", hisz mégiscsak feltételezhetjük, hogy vannak baráti körök. Felajánlódik újra 1000 ember, ugye milyen csábító? Képzeljük csak el, hogy 1nap alatt akár 4000-5000 embert is szerezhetünk, akik fel vannak iratkozva a falunkra. Innentől kezdve csak a képzeletünk szab határt mit teszünk ennyi ismerőssel, és mit írunk ki a falunkra, amit látni fog ez a sok ember tömeg.
Eszközök
- Firefox
- Live Http Header (HTTP kérések fejlécei)
- Apache
- Curl (curl bekapcsolás)
https://m.facebook.com/a/mobile/friends/add_friend.php?id=10210568366181&hf=friend_browser&pl=
%2Ffind-friends%2Findex.php&suri=%2Ffindfriends.php%3Ffr_id%3D10210568366181&gfid=AQCz2OmIGh2-ZDQa&refid=43
Elsőre zagyvaságnak tűnhet, azonban elemezzük ki elemenként, hogy miket kap a szerver a böngészőnktől:
id=10210568366181 -> a bejelölendő ismerősünk azonosítója
hf=friend_browser -> a megtalálási mód = honnan jelöltük be
pl=%2Ffind-friends%2Findex.php -> amelyik php fileból jövünk
suri=%2Ffindfriends.php%3Ffr_id%3D10210568366181 -> amelyik hivatkozásból jöttünk, megspékelve a bejelölendő ismerősünk azonosítójával
gfid=AQCz2OmIGh2-ZDQa -> egy kulcs, amit a facebook generál valahogyan :D
refid=43 -> lényegtelen
Nos most már van sejtésünk, hogy mi zajlik a háttérben. Most ugye a programunknak megkéne szereznie ezeket az adatokat, hogy a curlunk tudjunk generálni egy GET kérést.
Tehát a következő feladatunk: TURKÁLNI.
Nyissuk meg az egyik ismerősünk profilját, http://m.facebook.com/profile.php?id=001212110112&ref=pymk&refid=43 . Majd nyissuk meg az oldal forráskódját, azon belül pedig egy keresőt, majd copy/pastezzuk be a keresőbe a felhasználó azonosítóját (id).
Az első találat a felhasználó képéjébe pakolja be az id-t, nekünk az nem fontos, tehát irány s második találat, ami ez:
<div class="pymkName"><a href="/profile.php?id=001212110112 &ref=pymk&refid=43"><span class="mfsm fcl">XXX YYY</span></a></div>
Hogyha, php ban erre írunk egy szép kis preg_matchet akkor simán kinyerjük a felhasználó nevét, éa a hivatkozásból pedig a felhasználó IDjét. Itt szeretném megjegyezni, hogy amikor a "mintát" írtam, ugye minden számot kinyertem a href="" en belüle, és elkövettem azt a hibát, hogy az ID után mindig oda fűzte a refid-t is, tehát minden ID-m kiegészült egy 43-as számmal :)
Folytassuk a keresést, és ugorjunk a következő számhoz.
A következő találat egy "hidden" rejtett input id névvel, ha ilyen kedvem lett volna akkor ebből nyertem volna ki az IDjét (megjegyzem könnyebb is lett volna) nem a hivatkozásból. Itt találjuk azokat a mezőket amiket ugye getben küld el a facebook, tehát jó helyen vagyunk.
Ha megkeressük a "gfid" néven futó rejtett mezőt, akkor ott látunk egy ilyen értéket: AQCwx0jvhzYcmyn4
Mint már mondtam, ez mindenkinek más, a facebook generálja. Erre viszont úgy szint szükségünk van, tehát erre is kell írnunk egy preg_match-et.
Ha ezeket az adatokat kinyertük nincs más hátra, csak küldeni egy curl-t get kéréssel az add_friend.php-nak.
Úgy érzem a cikk nem ér sokat kód nélkül
Tehát a kód: http://pastebin.com/Ru1dhnKE
Ja és felelősséget nem vállalok, mondjuk úgy tudom, hogy 5000k a max "ismerős szám", tehát nem hiszem hogy lelövi a facebookot :D De spamre szerintem tökéletes.
Persze belehet ebbe építeni, hogy 1 percenként frissítse az oldalt. Egy darab parancs, de nekem nem ez volt a célom :)