hackněte mi WEB

HackForum

hackněte mi WEB#
zdravím,
teprve se učím PHP a souběžně se "snažím" hned implementovat do kodu i bezpečnostní prvky.
Nicméně sem zjistil, že o zabezpečení toho vím asi hodně málo (nebo sem jen paranoidní :-) ).
Vytvořil sem si jakousi "architekturu" stránek která mi vyhovuje (byť se někomu bude zdát nesmyslná) a chtěl bych vás poprosit o jakýsi bezpečnostní test, kdy se ji pokusíte napadnout, abych věděl, kde to má případně nějakou díru.
Klidně poskytnu jakékoliv potřebné informace, které vám při útoku pomůžou (proměnné, metody...atd)
adresa: [link]
P.S: jde jen o 5-6 stránek včetně registračního formuláře, tak problém neočekávám, ale "lehli" už skušené WEBy a právě vstupní pole jsou nejcitlivější.
Děkuji že ste mě hackli ;-)
(odpovědět)
rusty | 81.0.248.*25.3.2010 0:50
re: hackněte mi WEB#
# FPD: /3w/webzdarma.cz/t/testonly/SimulaceReg.php (vloz @ pred session_start() nebo si vypni error_reporting na produkcnim serveru)
# captcha snadno cracknutelna (fakt, ze je to carkovane, neni pro crackera problem)
# overeni Zaba je na ... hadej co =)
# cookie neni httpOnly
(odpovědět)
Emkei | E-mail | Website | PGP25.3.2010 11:28
re: hackněte mi WEB#
děkuji za 1. názor.

- doplnil sem @ před session_start() (i když moc nechápu proč, jak tam nasimulovat chybu mi nějak nedošlo)

-čárkovaný ověrovací kód mi přišel dostatečný, ale jestli ne, beru to jako další bod k nápravě. (i když tim by se asi útočník akorát zmohl na hromadnou registraci a ne ovládnutí scriptů, nebo databáze)

-ta Zaba je tam spíš navíc...nic jiné jako Brute Force mě na tom formuláři nenapadá a tedy rentabilita takového útoku vs. zisk účtu uživatele mi přijde bezpředmětná. Nebo se pletu ?? (ale můžu tam dát ověřovací kód jako při registraci)

budu rád za další názory
(odpovědět)
rusty | 81.0.248.*25.3.2010 12:13
re: hackněte mi WEB#
Jenom taková formalitka... trošku mi vadí, že se heslo nezakrývá hvězdičkami.
(odpovědět)
Frix | 88.101.80.*25.3.2010 18:35
re: hackněte mi WEB#
Warning: fread() [function.fread]: Length parameter must be greater than 0 in /3w/webzdarma.cz/t/testonly/Simulace6.php on line 26
- Nastane pokud to otevru drive nez odeslu 1. zpravu

captcha stoji za... na zacatku si projdu adresy [link](1-6).php
nasazim nekam adresu obrazku a odpovidajici cislo na nem a je po captche
(odpovědět)
DJVyn25.3.2010 18:53
re: hackněte mi WEB#
no fajn postřeh, ani mě to při psaní nenapadlo :-)
Taky vím, že zprávy v .txt souborech by bylo možné vygooglit, jako součást seznamu souborů v adresáři. Ale netuším, jak se tomu bránit (obsah txt má být neveřejný). Stačí .txt přesunout do nějakého podadresáře ?

...a co s tim hacknutím...kde by to mohlo mít slabé místa ?

P.S: asi tady řešíte "vyšší" problémy, než zabezpečení jakéhosi "skeletu" budoucí aplikace, ale o to víc si vaši pomoci cením ;-)
(odpovědět)
rusty | 81.0.248.*25.3.2010 19:00
re: hackněte mi WEB#
Co treba ukladat normalne data do databaze (MySQL), jak se to normalne v praxi dela? Je to bezpecnejsi, rychlejsi a efektivnejsi.

Pokud chces zustat u txt a nechces, aby se zobrazovaly, tak pouzij .htaccess nebo to ukladej nekam, kde se to nebude zobrazovat (.php atd..)

Jinak zavinac zajistuje, ze se nezobrazi chybovy vystup. Jakekoliv chybove vystupy pomahaji pri pripadnem prolamovani - at uz zobrazenim absolutni cesty ke skriptu nebo nazvu nejakeho souboru atd..

Captchu vylepsi a pridej mozna nejakou JS ochranu (ktera bude alternativne fungovat i pri vypnutem JS) a bude to fajn. Samozrejme u maleho webu bude stacit i tve overovani, ale bavime se tu preci o co nejdokonalejsi bezpecnosti, takze tu nejake: "Staci to takhle a budeme spolehat, ze nikomu nebude stat za to..." neplati. Tady neplati "snad" a "kdyby", tady se musis snazit aby "nikdy" :)

----------
Cow power by Gentoo...
(odpovědět)
Anonymous_ | E-mail25.3.2010 22:46
re: hackněte mi WEB#
1. do toho ověřovacího kódu ste se obuli :-)
tak sem ho předělal dle vzoru někde z internetu (JS je bohužel nad moje síly)

2. na souborech .txt změměna koncovka na .php (supr nápad)

3. chyba při pokusu číst neexistující soubor (Warning: fread() ) odstraněna.

4. hvězdičky v hesle = změnit iput type na password, což považuji pro testovací účel spíš za kosmetický detail.

...skoušeli ste někdo php-injection, SQL-injection, případně něco o čem sem ani neslyšel (něco k ovládnutí databáze) ???
(odpovědět)
rusty | 81.0.248.*25.3.2010 23:46
re: hackněte mi WEB#
Zase to nemá nic společného s ochranou, ale když napíšu zprávu a pak si jí přečtu, tak tam zůstane napsané to "empty". A až pak pokračuje moje zpráva.
(odpovědět)
Frix | 88.101.80.*26.3.2010 7:44
re: hackněte mi WEB#
no mohl sem tam napsat: zatím žádné zprávy
...a po prvním zápisu to přepsat konkrétní zprávou.
Ale jak si viděl,není tam ani zmínka o adresátovi, natož korektní přístupové právo ke zprávě.

Opravdu mi především záleželo na tom, zda to "takhle" není napadnutelné (co je to opravím)
(odpovědět)
rusty | 81.0.248.*26.3.2010 11:15
re: hackněte mi WEB#
No, pokud ukladas do souboru, tak tu asi zadne SQL injection nebude, ze...

----------
Cow power by Gentoo...
(odpovědět)
Anonymous_ | E-mail26.3.2010 16:53
re: hackněte mi WEB#
Jak generuješ ID uživatele? Je to generování dostatečně náhodné? Nemůže se stát, že bude 2 nebo více uživatelům přiřazeno stejné ID?

POZOR! Pokud ukládáš zprávy do souborů .php nikdy nedopusť, aby jsi v nich měl XSS - tím by jsi z něj hned měl PHP injekci....
Je lepší ty zprávy ukládat jako .txt a .htaccessem zablokovat přístup do složky.
(odpovědět)
DJVyn26.3.2010 18:31
re: hackněte mi WEB#
PS. Použij deny from all
(odpovědět)
DJVyn26.3.2010 18:36
re: hackněte mi WEB#
Ukladat zpravy jinak nez do databaze je prasarna. K testovacim ucelum je to asi jedno, ale kdyz uz pisu, tak poradne.
Ukladat to do .php je prasarna jeste daleko vetsi.

Textove soubory jsou za ucelem ukladani textu. PHP soubory pro zapis skriptu. Databaze jsou tu na okrasu?

(vim ze to nesouvisi primo s tematem, ale z kontextu to vypada, ze se snazis ucit programovat a nemam rad, kdyz lidi ziskavaji spatny navyky a neuvedomuji si to. Jestli nekdy budes delat nekde ve vetsim tymu nebo pro nejakou spolecnost, tak te za takovyhle veci poslou do ... )

Navic pouziti databaze prinasi spoustu vyhod, jak uz tu vice lidi zminovalo. Proc to delat jednoduse, kdyz to jde slozite? :-)

----------
public static void main(String args[]){
 throw new UnsupportedOperationException("Not implemented!");
}


(odpovědět)
pr0ph3t27.3.2010 1:51
re: hackněte mi WEB#
1. do souboru ukládám jen zprávy. Nick, hesli, ID...atd, je v databáze, čili injection možný je. Což sem taky primárně po vás chtěl ošahat, jestli to "takhle" napsané a zabezpečené oddolá alespoň základním (běžným) útokům.

2.ID je generováno 10x 0-F přes mt_rand (třeba A804B3Cf6B)
Není to k ničemu obzvlášť užitečné, ale taky proč ne ?

3.Zprávy v PHP je jen čistý text (změněná přípona .txt)
Asi to teď na mě vrhne stín hlouposti, ale měl sem za to (na hostingu 2x :-) ), že mySQL je datově limitována a X zpráv, (byť se stanoveným maximem) prostě mySQL snadno "zaplní". Čili databázi se nevyhýbám, jen sem to zjevně viděl špatně :-(
(odpovědět)
rusty | 81.0.248.*27.3.2010 7:29
re: hackněte mi WEB#
databaze na hostingu jsou vetsinou limitovany pouze velikosti mista, kterou zabiraji, a i tak se nemusis bat, ze bys to diky nejakemu IS prekrocil.
prejmenovani souboru z *.txt na *.php nic neziskas, naopak si vyrobis bezpecnostni riziko.

pouzivej na vse vyjma datovych souboru databazi
(odpovědět)
Emkei | E-mail | Website | PGP27.3.2010 8:48
re: hackněte mi WEB#
Bez urazky, ale ten kod je proste chaos, ze ktereho ti jeden thread na foru asi nepomuze. Trpelivy mentor necht se toho klidne chopi:

SimulaceReg.php [link]
SimulaceReg2.php [link]
SimulaceLogin.php [link]
SimulaceLogin2.php [link]
overovaciKod.php [link]
Simulace1.php [link]
Simulace2.php [link]
Simulace3.php [link]
Simulace4.php [link]
Simulace5.php [link]
Simulace6.php [link]

(odpovědět)
prc | 213.211.51.*27.3.2010 16:42
re: hackněte mi WEB#
budu hádat....
udělat takovou pYtomost a ukládat text do .php = nabídnout komukoliv vlastní editor pro PHP injection :-)
Jestli je to tak, je to spíš na ostudu, než na vztek.
Jestli si to ale naboural jinak, tak sem čekal alespoň vzkaz v některém sobouru kde mám díru. Ale bohužel si po sobě zamtl, tak bych poprosil stručný report k zabezpečení...když už jsou k mání i detaily

P.S: omlovám se, že píšu "ošklivý" kód, ale věřím, že taky ti psaní ve škole šlo líp jako středoškolákovi, než prvňáčkovi ;-)

(odpovědět)
rusty | 81.0.248.*28.3.2010 7:45
re: hackněte mi WEB#
hned jak sem přišel z noční, tak pořád hledám, kde je "díra" (a jak ji opravit), ale na nic sem nepřišel.
Vždyť taky kůli neznalosti problematiky sem se obrátil na tohle fórum :-(

I když do zprávy cpu kód, tak to selže na htmlspecialcharacters. Čili "takhle" to nabourat nejde.
Jak tedy ?
(odpovědět)
rusty | 81.0.248.*29.3.2010 8:29
re: hackněte mi WEB#
Zkus to nabourat autem. Ne sranda... mě se to nabourat nepodařilo. Nic zvláštního :D
(odpovědět)
Frix | 88.101.80.*29.3.2010 8:41
re: hackněte mi WEB#
no já reaguji na to, že PRCovi se to nabourat podařilo :-)
A jestli nevyužiju interakce tohoto fora (podobného), abych se naučil pořádně ošetřit tak jednoduchou "kostru" programu. Nemá cenu dělat něco smysluplné :-(
(odpovědět)
rusty | 81.0.248.*29.3.2010 9:03
re: hackněte mi WEB#
Rusty: snaz se dodrzovat postupy a standarty, ktere pred tebou uz nekdo vymyslel a zbytecne se od nich neodchylovat, pokud mozno ze zacatku ani v detailech.
Tzn. pouzivat DB na to na co se ma, pouzivat soubory s priponou k tomu k cemu maji byt, pri psani kodu se snazit psat co nejjedoduseji a nejsrozumitelneji, nepoustet se do zbytecnych slozitosti a hlavne zbytecne problemy neobchazet ale resit. Vetsinou "ze to nejak funguje" je maly cil. Dulezitejsi je "aby kod i vysledna aplikace za neco staly". Vetsinou clovek postupne tak nejak intuitivne vyciti, co resi "nejak jinak" protoze nevi, jak se to "dela spravne".

Vim, ze to zni hrozne obecne, ale neni nic horsiho, nez ziskat spatny navyky a neuvedomovat si to.

----------
public static void main(String args[]){
 throw new UnsupportedOperationException("Not implemented!");
}


(odpovědět)
pr0ph3t29.3.2010 22:28
re: hackněte mi WEB#
Dobře rozumím co mi chceš říct a takyže pár vašich rad beru na vědomí.

Když si napíšu echo "hello World";
tak sem nic nezkazil, ale jak se jednotlivé příkazy nabalují, tak se dostáváme k otázce skušeností a schopností.
To ale nesnižuje můj zájem mít pevně zabezpečenou již takovouhle cvičnou aplikaci. Přesněji mi jde především o kombinaci zabezpečení vstupního pole (login i dlouhý text) a předáváných proměnných (POST, SESSION).

Kromě tohoto fora "saju" informace z různých tutoriálů, ale v otázce zabezpečení sem se jakož na specializované forum, obrátil na vás.

Proto vás ještě jednou prosím, ať se na to mrknete (nyní máte k dispozici i celé PHP :-) ) a pomůžete mi s tim.

P.S: taky to chce trochu empatie. Ne každému to pálí stejně :-(
(odpovědět)
rusty | 81.0.248.*29.3.2010 23:38
re: hackněte mi WEB#
"P.S: taky to chce trochu empatie. Ne každému to pálí stejně :-("
Toto tvrzeni je dostatecne dobry duvod proto, aby se Ti dalsich odpovedi nedostalo.
(odpovědět)
independent_ | 89.24.54.*30.3.2010 15:30
re: hackněte mi WEB#
Jestli sem to pochopil,
tak když nejsem dost chytrý, abych si pomohl sám, není důvod, aby mi s tim pomohl někdo chytřejší ;-)

-nepoužívám žádné include
-Header Location neobsahuje proměnnou (nelze tedy podstrčit)
-vstupní pole je ošetřeno na uvozovky, "zobáčky" i mezery a navíc kormě zprávy mají omezenou délku.

Třeba je ti do smíchu, že je to "tak prosté" kde je chyba, ale já ji nevidím :-(
(odpovědět)
rusty | 81.0.248.*30.3.2010 16:36
re: hackněte mi WEB#
Jednak se o bezpecnost prilis nezajimam, druhak je ten kod hnus a cist ho nebudu.

Predchozim prispevek jsem narazel na to, ze neni duvod Ti pomahat jen proto, ze Te to nepali. Je to stejne jako: "Rozmichejte tu maltu za me, ja na to nemam silu.", pricemz pomocnik za odvedenou praci neobdrzi zadnou odmenu.

Jinak, webzdarma.cz byl a je, pokud vim, ne uplne nejlepe zabezpeceny hosting a je klidne mozne, ze prc zdrojaky nestahl pomoci chyby v Tvoji aplikaci.
(odpovědět)
independent_ | 89.24.97.*31.3.2010 12:23
re: hackněte mi WEB#
At nejsem tak bezcitny neempaticky hajzl, trochu Ti tedy poradim. Zabezpeceni Tveho webu to sice primo nepomuze, nicmene s prehlednejsim kodem se urcite zabezpeceni provede snadneji.

Na soucasny kod se vykasli a RS napis znova.

- Nepis HTML kod do souboru, kde se nachazi PHP kod. Resenim budiz sablonovaci system, muzes pouzit bud jiz hotovy nebo si napsat nejaky jednoduchy vlastni.

- Data ukladej do databaze. Vytvor si jednu komponentu, skrz kterou pujdou vsechny dotazy. Kod bude prehlednejsi a protoze vsechny dotazy budou na jednom miste, snizis pravdepodobnost, ze se nekde vyskytne bezpecnostni chyba.

Ted nemam cas, takze mozna neco pripisu pozdeji, pokud me jeste neco napadne.
(odpovědět)
independent_ | 89.24.97.*31.3.2010 12:42
re: hackněte mi WEB#
Děkuji za investované know-how. Doufám, že maltu za mne míchat nebudeš muset ;-)

Kdyby věděl, že PRC se tam dostal mimo moji chybu, tak by mi to prozatím stačilo.
Věděl bych, že sem při zabezpečení vstupního pole na nic důležité nezapoměl a mohl bych se zase věnovat PHP. Tohle byl můj první script, takže pro inerakci s uživatelem toho nějaký čas stejně víc potřebovat nebudu. ...než se toho naučím víc (a lépe :-) )

P.S: kdyby PRC měl důvod, proč nechce veřejně prásknout, jak se mi tam dostal, tak ať mě alspoň správně "nasměruje" přes ICQ (196750107) ....i když to nepředpokládám :-(
(odpovědět)
rusty | 81.0.248.*31.3.2010 19:27
re: hackněte mi WEB#
jak to udelal prc samozrejme nemohu vedet, kazdopadne hacknout te pres freehosting je otazkou asi 3 minut [link] =)
(odpovědět)
Emkei | E-mail | Website | PGP31.3.2010 20:20
re: hackněte mi WEB#
Emkei nějak mi unikají souvislosti. Mohl nys mi dát nějakou nápovědu za jednoho bludišťáka? ;)
(odpovědět)
Frixion_ | 88.101.80.*31.3.2010 21:33
re: hackněte mi WEB#
to se člověk dovídá věci...
Můžeš si takhle cizí kód jen zobrazit, nebo i pozměnit ?
To je tak nemožně zabezpečen každý free hosting, nebo by ste věděli doporučit některý, alespoň "přiměřeně" bezpečný ?
Změní se něco, když si hosting zaplatím, nebo je to stejná levárna, akorát za peníze ?
Neptám se toho moc ? :-)

...asi jo, ale opravdu mě tohle téma zajímá a na Babicových dobrotách mě asi ochránit se před hacknutím nenaučí.

Jdu si hrát na localhost (tam mě nehacnou :-) )a doufám, že mi ještě rozhled o něco rozšíříte ;-)

(odpovědět)
rusty | 81.0.248.*31.3.2010 21:35
re: hackněte mi WEB#
Optimisto :D
(odpovědět)
Frix | 88.101.80.*31.3.2010 22:13
re: hackněte mi WEB#
...teď koukám, že to zase tak čistě přes freehosting asi nebylo. Mohl bys mi alespoň napsat (případně i neveřejně na to ICQ) jak si v souboru obešel specialchars ? Páč se mi to jeví jako klíčové pro spuštění scriptu.
Eventuelně, čím se dá proti tomu chránit ?
(odpovědět)
rusty | 81.0.248.*31.3.2010 22:20
re: hackněte mi WEB#
Freehostingy bývají paradoxně zabezpečeny lépe než placené hostingy. A můžu tě ujistit: Proti zneužití hostingu se bránit nemůžeš. Max si ten web rozběhat na svém stroji.
(odpovědět)
Duck | 85.71.165.*31.3.2010 23:11
re: hackněte mi WEB#
rozběhávat se nic nechystám, spíš mapuji situaci kolem zabezpečení.
Z toho co říkáš, by ale snaha o zabezpečení význámných X procent WEBů byla zbytečná. Hlavně když by to opravdu nezáviselo na snaze klienta ochránit svoje data :-(
(odpovědět)
rusty | 81.0.248.*31.3.2010 23:45
re: hackněte mi WEB#
tak se někdo náramně bavil a sebral mi celý účet, respektivě změnil heslo na FTP
Bych chtěl vědět k čemu, komu bude ?

P.S: si nedovedu představit, žeby u nás na foru musel někdo "žebrat" o dopověď na dotazy ;-) Nechtěl sem nic, než se naučit zabezpečit vstupní pole přímo od lidi co o tom vědí nejvíc.
Předvedli ste exhibici, co umíte (klobouk dolu), ale jak se účinně bránit, sem se nedověděl vůbec.

Třeba nechápu vaši komunitu, ale minimálně adminům je snad na zamyšlení, jak širokou cílovou skupinu chtějí na svých stránkach "hostit" a co jsou ochotni jim nabídnout ;-)

(odpovědět)
rusty | 81.0.248.*1.4.2010 20:55
re: hackněte mi WEB#
:O [link]
(odpovědět)
N | 64.34.177.*1.4.2010 21:34
re: hackněte mi WEB#
31.3.2010 22:13 Jsem ti napsal, že jsi optimista. Já bych ti rád poradil, ale nemám jak.

Je smutné, že tu je několik dementů, co jenom ničí. Ale přece jenom ses pár odpovědí dostal. Víc už asi nevymáčkneš. Jedině, že by s útočníkem hnulo svědomí a pomohl by ti se zabezpečením.

Hodně štěstí
(odpovědět)
Frix | 88.101.80.*1.4.2010 22:39
re: hackněte mi WEB#
na tom účtu mi nemá proč záležet, ale čekal sem fórum, kde lidi co to "válí" nedělají drahoty a na rovinu řeknou: Hele, dej si na scriptu XY ještě tohle a tohle, páč sem se ti tam dostal za 2 minuty, protože to tam nemáš...a mimochodem, je to pěkně hnusně napsaný kód :-)

Nebo: jo, takhle primitivné scripty nejde skazit, máš to zabetonované fajn. Dostat sem se tam musel přes hosting, tak si to děj raději k jejich konkurenci XY. Tam to mají zabezpečeno o něco lépe a každá lama ti to tam nehackne..atd.

Třeba se pletu, ale když sem se ještě zajímal o 3DSmax, tak sme to na foru dělali takhle, páč v tom vidím smysl fora ;-)
(odpovědět)
rusty | 81.0.248.*2.4.2010 0:35
re: hackněte mi WEB#
Kdybys místo plakání a snahy přesvědčit lidi, aby ti poradili, vzal svůj kód a našel si k jednotlivým funkcím a proměnným případné bezpečnostní problémy, znáš otázku na svůj dotaz již dávno a ještě by ses naučil novým věcem. Nehledě na to, že se jedná o notoricky známé chyby, které jsou popsány snad všude.
(odpovědět)
Duck | 85.71.165.*2.4.2010 1:56
re: hackněte mi WEB#
jo já vím, že sem si teď pobrečel :-)
...snad je ale z postu jasné proč.

Jdu si ještě projít ten kód, byť né poprvé.

P.S: taky bys nezformuloval Newtonov zákon i kdyby ti vysypali na hlavu bednu jablek. Čili není tak samozřejmé, aby všichni "viděli" to samé ;-)
(odpovědět)
rusty | 81.0.248.*2.4.2010 2:38
re: hackněte mi WEB#
Možná akorát pokud používáš Total commander pro FTP a máš uložené heslo, tak útočník odtamaď mohl to heslo získat. Je to teďka dost rozšířené si myslím.
(odpovědět)
Frixion | E-mail | ICQ 4665870742.4.2010 10:33

Zpět
Svou ideální brigádu na léto najdete na webu Ideální brigáda
 
 
 

 
BBCode