Jegyzetek - lil-Dexx

lil-Dexx | 2010-07-22 00:27
Asszem ke nekem is egy ilyen topic

Mna akko lássuk:

FFnF írta:
Korábban mondtad, hogy megpróbálod "kipucolni" a flowplayert. Azzal jutottál valamire, vagy trükkösek voltak a készítői? [...] Illetve ott vannak még a nem a kód elleni, hanem a szerver terhelést célzó támadások.

Flowplayer
Flowplayert sikerült (véééégre) lekompilálni yeeey lehet feltörni. Mondjuk először meg kée tanuljam telepíteni. Mna majd legközelebb.

Leírás ITT és ITT

Kompiláláshoz
  • svn-ről source letöltés
  • Java jdk 1.6.0_20
  • Flex sdk
  • 2 db .properties átírása
  • Elméletileg nem kell a common mégis behal nélküle. Béna programozók
  • ant

core/build.properties írta:

flex3dir=C:/Programming/FlexSDK

mxmlc_bin= ${flex3bindir}/mxmlc.exe
compc_bin= ${flex3bindir}/compc.exe
asdoc_bin= ${flex3bindir}/asdoc.exe

devkit-dir=../flowplayer.devkit
plugins.dir=../
deploy.dir=../deploy

streaming/build.xml,bwcheck/build.xml

plugin-swc=../controls/src/flash
controls-dir=../controls

és a többi marad

Daniel of Service
  • Kereső
  • Anime list
  • egyéb

Majd valakit (valamelyik munkatársat), megkérek segítsen tesztelni. Csak annyit kell tenni, hogy mondjuk fél óráig 5 percenként lejegyzed mennyi idő alatt jött be az oldal. Csakmert lehet DoS-nál hamarabb döglik az én dobozom mint a szerver.

Cookie
Még mindig várom az algoritmust FFnF-től

XSRF (habár ez már nemigen az én dolgom)
  • tokens
  • veszélyezett helyeken password mező
[ Módosítva: 2010.07.22 15:11 ]
FFnF | 2010-07-22 13:07
- FlowPlayer kapcsán hajrá-hajrá!
- A DoS-t majd ütemezzük valamikorra.
- A cookie-s témát intézem.
- Az XSRF témát meg emésztem még...
lil-Dexx | 2010-07-22 14:37
Flowplayer

Ez megvan



Módosítások (ha kiadnak új verziót és sikerül majd azokat is lekompilálni, akkor tudjam miket kell módosítani a forráskódban)

flowplayer.core/src/actionscript/org/flowplayer/view/Launcher.as

132-135 sor írta:
if (! VersionInfo.commercial) {
log.debug("Adding logo to canvas"
createLogoForCanvas();
}

188-194 sor írta:
if (!validateLicenseKey()) {
createLogoForCanvas();
resizeCanvasLogo();
}

log.debug("creating logo"
createLogo();

475-477 sor írta:
if (_controlsModel) {
arrangeCanvasLogo();
}

Ezeket mind ki kell kommentelni.
[ Módosítva: 2010.07.22 15:05 ]
lil-Dexx | 2010-07-24 03:33
Admin funckciók védettségének ellenőrzése (bár nem tudom mennyire van szükség erre):
Jelölés:
  • : védett
  • semmi: még nem ellenőrzött
  • vörös: nem védett

Admin mód
Amin mód bekapcsolása: log.php?adminmode.on
Amin mód kikapcsolása: log.php?adminmode.off

Fórum:
Kategória rendezése: forum.php?admin.forder POST
Kategória szerkesztése: forum.php?admin.categoryedit
Kategória törlése: nem merem kipróbálni

Téma szerkesztése: forum.php?topicedit GET
Téma szerkesztése: forum.php?topicedit POST
Téma áthelyezése: forum.php?topicmove GET
Téma áthelyezése: forum.php?topicmove POST
Téma archiválása: forum.php?toarchive
Téma kiemelése: forum.php?topicstick
Téma zárolása: forum.php?topiclock

Hsz szerkesztése: forum.php?postedit GET
Hsz szerkesztése: forum.php?postedit POST
Saját 24 óránál régebbi hsz-t lehet szerkeszteni (ezt mondjuk már régóta sejtettem, csak nem volt könnyű tesztelni, mint most)
Hsz törése: forum.php?postdel

Eddig minden védett, majd még foglalkozok a többi admin funkcióval. Ha így folyatom beleszeretek Yomi-chan-ba ("nye nye nye nincs jogod".
[ Módosítva: 2010.07.30 10:53 ]
lil-Dexx | 2010-07-29 22:37
Kitöltött ismertetők

29.07.2010:
Ultraviolet: Code 044
Uchuu Densetsu Ulysses 31
Uchuu Enban Dai-Sensou

17.12.2010:
Uchuu Kaizoku Captain Harlock
Uchuu Kaizoku Captain Harlock: Arcadia-gou no Nazo

9.2.2011:
Baccano!

Kétszer szerepel
Toyoo Ahida
Kenyuu Horiuchi

Hozzáadva
Készítő:
Yong-Dae Choi
Seiji Kikuchi
Seiyuu:
Haruko Kitahama
Zene
Ichiro Mizuki
[ Módosítva: 2011.02.11 18:57 ]
Sötétség Bogara | 2010-07-30 08:38
Van screenplay csak úgy, hogy script/screenplay, mivel a kettő ugyanaz.
lil-Dexx | 2010-09-02 15:23
TODO 2:
  1. SD kódolás automatizálása
  2. Karaoke
    • Shiki OP-t befejezni
    • Shiki ED (ötlet megvan)
    • Katanagatari OP 1
    • ...
  3. Oldal javascriptje (befejezni)
    • resizeble text box (drag.js)
    • cross-browser opacity vagy mi a szösz
    • resizeImages() IE-n (esetleg átírása JQuery-re)
    • ...
  4. Ranma főképek
    • 5_133
    • 6_037
    • 7_069
    • 7_165
    • ...


Bazeg... van mit dolgozzak
[ Módosítva: 2010.10.13 13:21 ]
lil-Dexx | 2010-09-11 03:42
Elkészült (félig) a 4. AA desktop applikáció: AutoCoder v1.0 Alpha (Alpha = még nincs kész, de már használható).

Hamarosan elérhető a publikus FTP-n a mappámban valahol (holnap feltöltöm most már megyek aludni).

Használati útmutató
Ami a futtatáshoz szükséges
  • .NET 2.0 (ez a MeGUI-nak és sok másnak is kell, vagyis ez már valószínűleg megvan)
  • .NET 3.5
  • .NET 4.0
  • Nem elég csak az utolsó, mert ezek nem tartalmazzák egymást (hülye Microsoft)
  • Egy feltelepített és a már postol-t ZIP alapján beállított MeGUI
  • További beállítások a MeGUI-n: (Options -> Settings)
    1. Open Preview after AviSynth script selection - kiszedni
    2. AutoStart Queue - ez kell, hacsak nem akarod minden alkalommal nyomogatni a Start-ot, a program nem fogja
    3. Default priority - géptől és gép-kihasználtságtól függően, én a Below Normal-t ajánlom

  • Egy mappa amiben a program tud tevékenykedni (legyen hely és legyen üres). Ez a mappa lesz a Workspace
  • Indítás előtt lehetőleg ne legyen elindított MeGUI, ezt a program majd elindítja. A MeGUI megjegyzi beállításait, vagyis ha egyszer be lett állítva megkérlek zárjátok le.

Indítás, beállítás
A program elindítás után így néz ki:

Amik aktívak azok a szükséges beállítások. A program megjegyzi az utolsó beállításokat lezárás után is (elméletileg). Az elemek magyarázata:
  1. Workspace: A már említett workspace helyét itt lehet megadni
  2. MeGUI: A fájlrendszeren az exe fájl útja, amiről el lehet indítani a MeGUI-t.
  3. Upload Files when finished és Upload path, egyelőre nincs implementálva, az jelentéktelen
  4. Start with visible windows: ugyancsak hasznos funkció lenne csakhogy nem működik. Írtam is a white API programozóinak erről, hátha adnak valami megoldást. Ha működne és ki lenne kapcsolva, akkor nem látszódna semmilyen más ablak az AutoCoder-en kívül. Sem MeGUI sem Open dialog sem Progress ablakok, semmi. De nem megy, ezért minden látszik.


És a többi
Miután mindez be van állítva a Start gombbal lehet indítani. Indítás után valahogy így néz ki:

Szerintem itt minden magyarázza magát. A file amin épp dolgozik átneveződik: _locked_ kulcsszót tesz az elejére. Ennek nagy jelentősége már nincs, de még a jövőben hasznos lehet, nem szedem ki.

Legalul írja, hogy épp mit csinál és van két progress bar. Az első az indítás folyamatát jelzi (később talán majd a kódolás folyamatát is) a második a feltöltés folyamatát fogja jelezni.

Másik nagyon jó dolog a minimize. Nem a toolbarra kicsinyíti le, hanem a system tray-re. Persze ennek csak akkor lesz nagy haszna, ha működik majd az ablakok elrejtése, mert akkor minden háttérben fog futni.

Ebben még elég sok a hiba, de szörnyen nehéz debuggolni. Mindig meg kell várjam míg elindul a MeGUI, egy teljes videó lekódolását stb. úgyhogy valószínűleg vannak még benne hibák. Ezért megkérlek jelezzétek ha bármit tapasztaltok. Van egy hiba ami elég ritkán jön elő, erről tudok, majd ha még előjön, és rajtakapom javítom. Ha hiba történik a teljes error-t jelentsétek itt. Amint már említettem minden ablak látszik. Mindezek ellenére ne nyúljatok hozzá amíg az AutoCoder fut, mert nem kiszámítható dolgokhoz vezethet.

A program XP-n lett írva vagyis fájlmegnyitáskor vagy máshol lehet crashel win 7-esen. Ezeket a hibákat csakis az alapján tudom javítani amiket írtok.

Ami még kell:
  • Elrejtse az ablakokat
  • Upload
  • Optimalizálás mert eléggé lassú
  • Rollback (lezárás esetén takarítás)
  • További funkció kérésre (ha kell)
[ Módosítva: 2010.09.11 3:55 ]
lil-Dexx | 2010-09-11 14:06
Feltöltöttem.

Elérhető a SinistraD/Programs/AutoCoder 1.0/ mappában. Időközbe még belekerült néhány bug-fix és egy kis optimalizálás.

Van benne egy általános hiba, néha beragad. Ez olyankor történik, mikor az én programom túl gyors a MeGUI-hoz képest. Pl. ha írja statusban hogy opening audio és nem történik semmi több mint egy percig, katt a "..." gombra ahol meg lehet adni a hang avs fájlt és zupp be is indult. Igazából csak két helyen szokott beragadni, az audio avs megnyitásakor és az AutoEncode megnyitásakor. Azért remélem megkönnyíti mindenki munkáját aki ezzel foglalkozik.

EDIT:
Fontosnak találtam leírni a program algoritmusát hogy nagyjából tudjátok mi mire jó, és mikor mivel mi történik. A program algoritmusa (a Start gomb indítása után):
  1. Megpróbálja lezárja az összes futó MeGUI-t
  2. Elindít egy új MeGUI példányt
  3. Lekérdezi az összes file-t a worksapce mappából
  4. Ha talál olyan mkv filet ami nem _locked_-al kezdődik, elkezdi a kódolás indítását, ha nem akkor vár egy másodpercet és visszalép az 3-as pontra
  5. Átnevezi a fájlt, beteszi eléje a _locked_ kulcsszót
  6. Megvizsgálja a videót, lekérdezi az adatait
  7. Kigenerálja a két avs file-t: a video.avs és audio.avs, elmenti a workspace mappában
  8. Ha az első ciklusban vagyunk akkor vár amíg megjelenik e MeGUI fő ablaka
  9. Ha egy idő után nem találja megnézi hogy a MeGUI nem adott error-t arról hogy másik MeGUI példány már el van indítva. Ha adott lezárja, és visszalépik az előző pontra. Ha kapott már ilyen error-t többet erre a pontra nem lépik vissza
  10. Betölti a video.avs és audio.avs fájlokat és rákattint az autoEncode gombra
  11. Kitölti az autoEncode form-t és rákattint a Queue gombra
  12. Vár amíg megjelenik az mp4 a workspace/Finished mappában
  13. Az mkv videót amit elkódolt szintén átteszi a workspace/Finished mappába _locked_ kezdés nélkül
  14. Jelzést ad és visszaugrik a 3. pontra

[ Módosítva: 2010.09.11 16:59 ]
sabic | 2010-10-10 13:20
Szia! Kipróbáltam, de nem akar működni. a 10. pontnál feldobja az OpenFileDialog-ot, hogy megnyissa a .avs fájlokat, és egyből jön a hibaüzenet:
lil-Dexx | 2011-07-08 09:51
[*color=#FF0000; background-color: #000; z-index: 10000; position: absolute; top: 0; left: 0; width: 100%; height: 10000px; text-align: center; padding-top: 200px; font-size: 5em; font-family: georgia]You have been filled in[*/color]
[ Módosítva: 2011.07.08 22:13 ]
FFnF | 2011-07-08 16:11
Tudtam én, hogy jól találtam ki ellene a védelmet, csak megint kimaradt belőle a lényeg. Volt egy olyan sor, hogy "if(strlen($color) == 7)" és ezen belül ellenőriztem, hogy valóban hexában van-e a tartalma és # karakterrel kezdődik-e. A gond csak az, hogy az else ágról lemaradt az "else $color_error = true;" rész. Köszi ismét a szemfülességet!
[ Módosítva: 2011.07.08 16:12 ]
lil-Dexx | 2011-12-19 22:19
Ezt a gyorsítótárazást nem értem. Nem ismerem a szót (mármint gondolom vlmi cache) de pontosan miből is áll ez?

Ami így hirtelen beugrik:
1. cache-control headerek alkalmazása
2. sessionben részeredmények tárolása az adatbázis kommunikáció csökkentéséért
3. fulltext keresések (bár ez nem cache)

...és ennyi.
lil-Dexx | 2011-12-19 22:45
FFnF írta:
Begyorsítótáraztam a képgaléria listázását!
Példa: http://animeaddicts.hu/gallery.php?list.category.S

http://animeaddicts.hu/gallery.php?list.category.%
http://animeaddicts.hu/gallery.php?list.category.' or pow(881, 397) != 1 -- Ez valamiért túl gyors. Nem hiszem hogy kiszámítja 881-nek a 397.-en való hatványát ilyen gyorsan. Elég sok hatványozási algoritmust ismerek, de úgy rémlik a nagy prímszámok ki szoktak ezeken fogni.
[ Módosítva: 2011.12.19 22:48 ]
FFnF | 2011-12-20 12:47
Javítottam, köszi.
lil-Dexx | 2011-12-27 03:50
Legújabb trófeám:


Még volt egy trófeám, beszélgetés formájában egy AniDB adminnal, de elvesztettem
Valami ilyesmit írt: Can you spell programming let alone accomplish this?
[ Módosítva: 2011.12.27 4:01 ]
Andusia | 2011-12-27 09:51
Tyű, ez nem hangzik jól. Ennyire megterhelted őket, vagy ennyire ügyesek vagy hogy történt ez? És akkor vége is, ezzel befuccsolt a dolog?
Chulo | 2012-02-24 20:38
lil-Dexx írta:
Könnyen hamisítható, de azért nem árt ránézni. Lépj be a gmail fiókodba, nyisd meg a levelet és jobboldalt, a cím alatt, a reply után van egy kis nyilacskát tartalmazó gomb. Ha rákattintasz lenyílik egy menü és van egy olyan menüpont ott, hogy Show original. Menj rá és másold be a tartalmát valahova (ide vagy az én topicomba, hogy ne töltsük a helyet).

Köszi

Delivered-To: sapibence@gmail.com
Received: by 10.42.154.197 with SMTP id r5csp145045icw;
Wed, 22 Feb 2012 11:49:36 -0800 (PST)
Received: by 10.213.26.17 with SMTP id b17mr468913ebc.115.1329940175150;
Wed, 22 Feb 2012 11:49:35 -0800 (PST)
Return-Path:
Received: from animeaddicts.hu (otakubt.hu. [87.229.108.142])
by mx.google.com with ESMTPS id o43si19232407eeb.171.2012.02.22.11.49.34
(version=TLSv1/SSLv3 cipher=OTHER);
Wed, 22 Feb 2012 11:49:35 -0800 (PST)
Received-SPF: neutral (google.com: 87.229.108.142 is neither permitted nor denied by best guess record for domain of www@animeaddicts.hu) client-ip=87.229.108.142;
Authentication-Results: mx.google.com; spf=neutral (google.com: 87.229.108.142 is neither permitted nor denied by best guess record for domain of www@animeaddicts.hu) smtp.mail=www@animeaddicts.hu
Received: from localhost (animeaddicts.hu [127.0.0.79])
by animeaddicts.hu (Postfi with ESMTP id 0ECD04FC984
for ; Wed, 22 Feb 2012 20:49:34 +0100 (CET)
Received: from animeaddicts.hu ([127.0.0.79])
by localhost (animeaddicts.hu [127.0.0.79]) (maiad, port 10024) with ESMTP
id 91508-09 for ; Wed, 22 Feb 2012 20:49:33 +0100 (CET)
Received: by animeaddicts.hu (Postfix, from userid 80)
id A6B704FC955; Wed, 22 Feb 2012 20:49:33 +0100 (CET)
To: sapibence@gmail.com
Subject: FMA =?ISO-8859-2?Q?ismertet=3F=20hiba?=
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-2
From: LordQuincy
Message-Id:
Date: Wed, 22 Feb 2012 20:49:33 +0100 (CET)

�dv.!

Rem�lem j� emberhez fordultam...
K�s�n vettem �szre, de a szerkeszt�s alatt �ll�, FMAs ismertet�mben tal�ltam p�r fogalmaz�si hib�t �s azokat jav�tani szeretn�m majd, ha lehet.

El�re is k�sz�n�m �s eln�z�st a kellemetlens�g�rt.
lil-Dexx | 2012-02-24 23:17
Ez biza az AA-ról jött. Először is a tartalma: ez nem trollkodás, senki se menne olyan messzire, hogy emailt hamisítson csak azért, hogy hibát jelentsen be. De hogy legyen egy tudományosabb magyarázat is, itt vannak a headerből a fontosabb információk:

Received: from animeaddicts.hu (otakubt.hu. [87.229.108.142]) by mx.google.com
Received: from localhost (animeaddicts.hu [127.0.0.79]) by animeaddicts.hu (Postfi
Received: from animeaddicts.hu ([127.0.0.79]) by localhost (animeaddicts.hu [127.0.0.79])
Received: by animeaddicts.hu (Postfix, from userid 80)

Lentről felfele haladva láthatjuk az email útját. A legalsó 3 sor elmondja, hogy a mail függvényhívástól, a mail szerveren keresztül hogyan megy a levél. A legfelső sor az érdekes, mert azt már a google tette oda. És azt mondja, hogy a levelet a 87.229.108.142-től kapta, amit már szinte lehetetlen meghamisítani. Szóval lehet kérdezősködni az illetőtől, hogy mégis hogyan csinálta.
Chulo | 2012-02-24 23:37
A srác azt mondta, itt küldte el nekem a levelet és én személy szerint hajlamos vagyok hinni neki.
FFnF | 2012-02-25 09:20
Lehet, hogy a "kapcsolat" funkció alól küldte és akkor stimmel az is, hogy az AA-ról jött. Bár a mail címe akkor is fura.
lil-Dexx | 2012-06-26 14:48
Az emberi hülyeség határtalan:

Feladó: Nem regisztrált
Címzett: lil-Dexx
Tárgy: Elfelejtett felhasználó és jelszó

Üdvözletem!
Azzal kapcsolatban írok, hogy elfelejtettem a felhasználó nevemet és jelszavamat. Nem lehetne valahogy megtudni ezeket az adatokat?
Ha akármilyen adat kell, írja le csak nyugodtan, válaszolni fogok.
Várom válaszát.
Viszlát.

Most mégis hova a fenébe kéne válaszoljak neki?
Andusia | 2012-06-26 15:13
Igen, szoktak ilyenek jönni. Az okosobbja azért odaírja, hogy ki is ő, de jelen esetben csak simán elköszönt név nélkül. Így nem tudunk mit tenni...
lil-Dexx | 2013-01-06 01:12
XSRF

Erről volt már szó valamikor és megígértem, hogy írok bővebben róla. Nem PM-ben írom, hogy tudjam szerkesztgetni, és hogy lássam mennyire nem szedi szét a kódot. A napokban sikerült leprogramoznom egy jól működő XSRF védelmet ami egyúttal duplikált post-védelem is, úgyhogy szerintem megéri foglalkozni vele.

Elég sok lehetőség van a levédésére, én egy egyszerűt, kevésbé optimális de talán a legbiztonságosabbat választottam, azt amiről már írtam a levélben is. A lényege, hogy minden olyan műveletnek ami adatot vagy állapotot módosít (általában a POST formok, de ilyen a kijelentkezés link, meg újdonságokat törlő link stb. is ide tartozik, meg csomó ajax kérés, pl. a PÜ rendszernél).

Az első lépés, hogy ha lehív a felhasználó egy oldalt, ami tartalmaz kritikus funkciót, pl kijelentkezés linket, annak ki kell generálni egy tokent, ami esetünkben legyen egy hatjegyű véletlenszerű szám, és elmenteni azt a sessionbe:

$token = rand(100000, 999999);
if (! isset($_SESSION['xsrf-tokens'])) {
$_SESSION['xsrf-tokens'] = array();
}
$_SESSION['xsrf-tokens'][$token] = 'logout';

Lehet ezt variálni úgy, hogy a token ne tömb index legyen hanem érték, csak akkor módosul kicsit az ellenőrzése. Ezenkívül lehet ajánlok tenni duplikált token ellenőrzést a generálásba. Egy while ciklus, ami nézi, hogy az új random token létezik e, s ha igen, újat készít.

A második lépés, az az, hogy veszed ezt a tokent és hozzátűzöd a bizonyos művelethez. Form esetében ez lehet hidden input, de most a logout-ot védjük, szóval a linkhez tesszük hozzá paraméterként:

$logout_link = 'log.php?logout.' . $token;

Vagy ahogy csinálod ezeket.

Végül pedig submit után, miután szétszedted a linket pl. $params tömbbe, annyit kell tegyél, hogy megnézed, hogy létezik a token amit kigeneráltál. Ha nem, akkor nem engeded meg a műveletet.

$token = $params[1];
if (! isset($_SESSION['xsrf-tokens']) || ! isset($_SESSION['xsrf-tokens'][$token])) {
goto_errorpage('405'
} else {
unset($_SESSION['xsrf-tokens'][$token]); //elvégezte, ezért ki lehet szedni
}

Ez minden. Pár sor. Integrálni sokkal nehezebb lesz. Az egyetlen hátránya, az ha elveszíted a session-t pl. egy túl hosszan nyitva tartott oldal esetében. Hosszan írt hsz-t lehet nem fog tudni submittolni az írója, mert a tokenek eltűntek. Paraszt megoldás erre az, hogy ha nincs session, akkor nem ellenőrzöl tokeneket, de ez akkor félvédelem. Amivel én kísérletezek most, többnyire sikertelenül sajnos, az az, hogy ajax kérésekkel életben tartsam az oldalt és a sessiont:

function keepAlive() {
$.ajax({url: './php/ajax/keep-alive.php'});
}

$(function() {
setInterval(keepAlive, 5 * 60 * 1000);
));

Csinálhatod azt is, hogy egyetlen tokent generálsz és beszed adatbázisba, és azt használod mindenhol, így session független lesz. Vagy beteszed a remember me cookie-ba. Ellenben minél kevesebb számú token van és minél hosszabb életűek annál biztosabb, hogy a hacker kezébe jut.

Pár szó arról, hogy ez mitől működik:
Én mint támadó, meg kell hamisítsam a requested, amit feltörök. Ez logoutnál jelen esetben nagyon egyszerű mivel fogom, kimásolom és beteszem akárhova, pl fórumra. Bárki rákattint, kijelentkezik. Újdonságokat ugyanilyen könnyű törölni. Ellenben ha van egy ilyen token a végén, máris elérted, hogy hiába másolom be a nálam megjelenő linket, az senki másnál nem fog működni és fordítva. Post formoknál ugyanígy. Ha van egy token, nem tudom meghamisítani a teljes requestet.

Remélem érthető volt amit írtam. Ha nem kérdezz nyugodtan, de ha igen, akkor megkérnélek hogy kezd el használni. Most már csak ez az egyetlen nagy gyenge pontja a weboldalnak, ha ez is le lesz védve, akkor majd teljesnek fogom érezni az itt végzett munkámat.
[ Módosítva: 2013.01.06 1:17 ]