Diskuze: Login "hack"
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Budu upřímný, pokud začínáš, tohle není moc dobrá úloha.
Pokud budeš chtít použít prohlížeč, je to takové vyšší dívčí - to
dělají ty public static extern funkce - ty komunikují přímo s operačním
systémem. Vzhledem k tomu, že tohle to je jedna z nejkomplikovanějších
věcí, o které se v C# můžeš pokoušet (a ještě mnohem horší, pokud
neumíš C), tohle bych zavrhl.
někde jsem našel, že www stránka komunikuje s webovým prohlížečem pomocí příkazů/souborů, nevím jak tomu říkat, a tak mě napadlo, jestli by nešlo přeskočit bod, kdy předávám informace webovýmu prohlížeči, ale rovnou bych je posílal. (viz obrázek)
Skutečně to tak je, počítač se serverem komunikuje přes HTTP protokol,
což je pořád jen nějaký speciálně formátovaný text. C# má toto
naimplementované ve třídě HttpClient . A dá se celkem dobře použít.
Jenže... abys mohl doufat, že to uděláš správně, musíš poměrně dost
přesně vědět, jak weby fungují (ne, můj komentář nestačí ) - to znamená vědět, co jsou
třeba cookies, session, POST, GET atd. To je ale něco, co si skutečně
osaháš zkušenostmi s tvorbou webů.
A poslední z problémů je samotná časová náročnost tohoto způsobu
nabourání se. Předpokládejme úplně nejjednodušší heslo - 8 znaků
složené jen ze znaků anglické abecedy - to je 208827064576 kombinací. Pro
všechny tyto kombinace se musí poslat požadavek serveru, ten to nějakou dobu
zpracuje a pošle hodně dat zpět.
Stačí si spočítat, jak dlouho by to trvalo...
Jenže tohle je úplně ten nejhloupější způsob, jak něco hacknout, a
všichni s tím počítají, takže tě snad každý server po čase vyhodí a
třeba i zablokuje IP adresu, protože to je jako kdybys dělal DOS útok.
TL;DR pokud jsi začátečník, vzdej to a vymysli si jednodušší úlohu.
A ještě další poznámka - pokud nevíš, co jsou delegáti, události a
flagy, je dobré si o tom něco přečíst. Tady jsou k tomu články:
https://www.itnetwork.cz/…y-enum-flagy
https://www.itnetwork.cz/…ambda-vyrazy
jsou placené, ale mohu je vřele doporučit, pokud nenajdeš nic lepšího.
Každopádně minimálně flagy jsou velice užitečné a měl bys je určitě
znát, delegáti a události jsou třeba spíš u okenních aplikací (ale i u
konzole si najdou uplatnění).
Časovou náročnost bych neřešil, píše, že chce použít nějakej list. Takže očekávám, že si prostě stáhl list pár set tisíc nejpoužívanějších hesel (ono to většinou bohatě stačí, pokud jde o hesla běžných uživatelů) a ty natvrdo vyzkouší, takže ta doba na vykonání bude v řádu sekund
Pár set tisíc hesel a pár sekund? Když vezmete že Vám stránka odpoví za 500ms což bych řekl že patří k těm lepším, tak vám 100 000 hesel zabere cca. 13 hodin. Což je čistě teoretické, protože fail2ban či jiná adekvátní technologie vás zablokuje tak do 15minut při takovém počtu requestů. Nehledě na to, většina webů vám začne zobrazovat nějakou implementaci captchi po x neúspěšných přihlášeních.
Paradoxne by login stránka s pomalou odozvou patrila k tým lepším. Je to zámer, že z poslaného hesla vyrátavaš hash náročne a pomaly, práve z dôvodu aby nešlo programovo skúšať 200 hesiel za sekundu, či podobne. A podľa mňa normálna stránka s odozvou 500ms už by patrila k tým horším. Na webe je dnes útok na heslo hrubou silou čistý nezmysel, to dnes funguje len pri vyložene amatérskych weboch nejakých jednotlivcov ktorý toho ešte moc nevedia. A taky web ani nestojí za útok.
Dobře, děkuju za radu, zkusím začít s něčím jednoduším.
Zobrazeno 7 zpráv z 7.