PDA

Pogčedajte punu verziju : Potrebni testeri - svaki bug pivo!


flash_back
29. 11. 2006., 00:09
Budzim neki menadzer za buduce klijente. Mislim da je bitno da istaknem da se nisam ugledao ni na kakve sajtove i slicno, vec cisto dobio ideju i opicio code preko noci (malo duze noci, legao sam danas u 3pm i ustao u 19h). Za sada tu je samo osnovna opcija za caskanje sa klijentom ali ovo je tek 'rana' faza razvoja, bice tu jos opcija uskoro.. preview projekta itd..

Za sam login sam iskoristio/editovao jednu klasu sa neta, sve ostalo je iz glave i manuela (@nixa -> da sam samo znao da malo ranije otvorim manuel :))

^ e sad, bas zato sam i zabrinut, interesuje me sta mislite kakva je opsta sigurnost menadzera..?

K’o sto kaze naslov, svaki bug pivo! Ja vec snimio jedan mali bugic, i da nebude kasnije da nisam rekao, ko nadje 20+ bugova dobija samo gajbu :D nema vise, a ko nepije cokoladnu bananicu ;) :)

@us: dpt

@pass: demo

link (http://www.gobelgrade.com/rd/index.php?forum=DPT)

---

I nemoj da u bugove racunate sto sto sam sljakao sa $_get // $_post je samo na onim kriticnim mestima :) nervira me to sto moraju da se krljaju linkovi sam inputom..

I da, jos malo trebam da poradim na prevodu vremena itd..

kaizen
29. 11. 2006., 00:16
http://www.gobelgrade.com/rd/Usluge

daje 404

Jel se to računa?

EDIT: link sam našao ovde:
http://www.gobelgrade.com/rd/Menadzer/

Vaša prezentacija se nalazu u ([LINK]) fazi izrade.

flash_back
29. 11. 2006., 00:20
jok, al moze bananica s obzirom da si se prvi javio :)

u pitanju je kostur prezentacije, nisam kacio ostale fajlove jer su jos u ranoj dev verziji..

oliver78
29. 11. 2006., 00:21
Editor poruka nezna da nemam nijednu poruku.
Trebao bi da da upozorenje o gresci, a ne da otvara dijalog za izmenu poruke.

Weifert :)

Nije moguca izmena naslova, ali je moguce brisanje istog.

kaizen
29. 11. 2006., 00:27
jao, ala ću da pijem...

Neotporan si na XSS

flash_back
29. 11. 2006., 00:31
znaci ti krljas <html> unurtar baze a? nista od piva :)

--
edit: kako da se zastitim?
---

Editor poruka nezna da nemam nijednu poruku.
Trebao bi da da upozorenje o gresci, a ne da otvara dijalog za izmenu poruke.

Weifert :)

Nije moguca izmena naslova, ali je moguce brisanje istog.

Sigurno si zajedno sa nekim radio edit.. scprita nije prilagodjena za vise usera online ;) I editor nebuguje, vec nisam napisao cod pa prepozna prazan select

kaizen
29. 11. 2006., 00:44
znaci ti krljas <html> unurtar baze a? nista od piva :)
--
edit: kako da se zastitim?
---


A koliko odgovor na to pitanje donosi piva?

flash_back
29. 11. 2006., 00:46
1 ali bez isporuke :)

kaizen
29. 11. 2006., 00:52
1 ali bez isporuke :)

Jeee, koja si ti stipsa... Jel ćemo da popijemo zidarsko ispred radnje?

flash_back
29. 11. 2006., 00:53
e sad sam snimio reply:

Jeee, koja si ti stipsa... Jel ćemo da popijemo zidarsko ispred radnje?

ma jok bre, idemo da maznemo neku cisternu :)

---

Nego dali je dovoljno da dekodiram samo <script> i <html> tagove? obican str_replace treba da odradi stvar (vec sam tako odljakao sa naslovima i p tagovima).

Ili je mozda bolje/sigurnije da prilikom zapisa u bazu postavim upit ako ima takvih tagova da se zapis u opste ne upise? ipak moze neki da promakne

oliver78
29. 11. 2006., 01:01
Ocisti sve osim osnovnih, tipa b i h1 h2 ....

kaizen
29. 11. 2006., 01:32
Ocisti sve osim osnovnih, tipa b i h1 h2 ....

To nije rešenje.

dee
29. 11. 2006., 01:46
http://www.devprotalk.com/showthread.php?t=1779&page=5

post #44 (by Ilija)

kaizen
29. 11. 2006., 01:47
Jeee, mungos je bolje prošao od mene sa onim prodavanjem magle a ja za konsultantske usluge oko sigurnosti ne mogu da izvučem ni 2 piva!

flash_back
29. 11. 2006., 02:04
sam si kriv sto si ubacio one script "1" errore :)

---

edit: ubacio sam u filter za sada basic reci ["<html>", "</html>", "<script", "</script>", ".cgi?", "#", "&"], valjda je dosta da menadzer prezivi noc pored vas hakera :D

---

edit2: Samo da potsetim da i dalje nema kandidata za gajbu piva! :)

LiquidBrain
29. 11. 2006., 07:34
jeeee... podlozan je sql injection propustu... i to cak pogodite gde?!?!?


PS. Otvorio sam samo login stranu :)

noviKorisnik
29. 11. 2006., 08:05
... neću ni da gledam ... ovde se nudi pivo od magle ... magle vani ima kol'ko išteš :-)

LiquidBrain
29. 11. 2006., 09:10
Ja pijem samo tuborg :)

flash_back
29. 11. 2006., 18:10
jedan tuborg onda :)

evo malo istrazujem ali ne kontam jos uvek dovoljno dobro sql injection? Propust prilikom sql-a, ali kakav? kako da se zastitim?

Ivan
29. 11. 2006., 20:06
Propust je takav da je moguce izmeniti postojeci sql iskaz u neki drugi. Zastitices se tako sto ces da filtriras ulaz (izbacices sve nedozvoljene karaktere).

Bojan Zivanovic
29. 11. 2006., 20:14
Link sa detaljima (http://www.just****inggoogleit.com)
A sad ozbiljno, zastitis se tako sto svaki parametar koji ubacujes u kveri prvo propustis kroz mysql_real_escape string ili neku drugu funkciju slicne namene ako koristis neku drugu bazu.
I ne zaboravi da skines djubre koje PHP automatski doda kada je magic_quotes ukljucen:

if(get_magic_quotes_gpc()) {
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
}

To stavis na vrh skripte i ne mislis..

Btw, baci oko na ovo (http://www.phpclasses.org/browse/package/2189.html).

I pre nego sto pitas, ne gotivim nesto puno pivo, al uvek moze nesto kratko (domaca kajsijevaca, tekila, itd..) :)

flash_back
29. 11. 2006., 21:19
Ako nastavim sa ovakvim pitanjima moracu ozbiljno da poradim na organizaciji budzeta :)

flash_back
30. 11. 2006., 22:01
E vidim da je bilo polemike da nudim maglu umesto pive :)

E pa ovako, dobitnici piva za sada su:

kaizen : XSS | nije se izjasnio

LiquidBrain : SQL injection | 1 tuborg

Bojan Zivanovic : get_magic_quotes_gpc | tekila

Pivo (i tekilu) mozete preuzeti veceras u Amnestia club IBIZA posle 24h... :) [063/7-535-823]

LiquidBrain
01. 12. 2006., 07:21
Jeeeee... dobio sam pivo.... nego josh uvek sam pijan od sinotj da bih trenutno bio radostan...

LiquidBrain
01. 12. 2006., 11:46
Ima josh jedna greshka ali gramaticka...


neovlascen pristu, ......


problem je u pristu...

LoLz

flash_back
05. 12. 2006., 10:13
Ma LiquidBrain pomogao si mi da se zastitim od SQL injectiona u samom loginu, mislim da bi te trebalo nominovati za gajbu piva :)

---

Zavrsavam pisanje adminovog panela (za sada 1388 redova, malo sada postaje konfuzno naci odredjen line koda) i zeleo bih da poboljsam opsti security koliko god je to moguce.. jer ne vredi mi puno 1388 redova koda u adminovoj stranici ako se u nju upada za manje od dva minuta ;)

Ukrato, sta mislite da predjem na sha1 umesto md5 hasa? Mozda da celu stvar malo i 'iskomplikujem' i da hash passa bude npr: pass+korisnicko_ime+email+datum_i_vreme_registraci je - sta mislite?

Malo sam istrazivao kako se razbija md5 has (da bi mogao da se zastitim moram da znam kako se napada ;)) i zanimljiva je stvar, ako imas tabelu i imena polja mozes da postavis script i da vadis vrednost po vrednost iz hasa.. nesto sada budzim da sve query greske zapisujem u jedan txt fajlic. Poenta je da skinem sa queria printovanje errora i slicno..

I recimo da ovde ostajem bez ideja.. :)

LiquidBrain
05. 12. 2006., 10:17
U R welcome... :)

sasvim je dovoljan samo md5 hash... nemoj da gubish vreme sa takvim stvarima...

flash_back
05. 12. 2006., 10:29
Ok, nego citao sam u novinama (juce ili prekjuce) kako je jedan Rumun iz 'dosade' razbio oko 150 americkih sigurnosnih sistema u veoma kratkom vremenskom intervalu :1064:

Siguran sam da bi isti probio moj menadzer za tri sekunde i upao u admin panel koji sam pisao 3 dana. Logicno je da se upitam dali mogu da uradim nesto vise po security pitanju. Nemam nekih 'bistrih' ideja za dalju zastitu pa ako moze neki savet nebi bilo lose :)

---
edit
---
U ovde sam se ocajno izrazio:

Mozda da celu stvar malo i 'iskomplikujem' i da hash passa bude npr: pass+korisnicko_ime+email+datum_i_vreme_registraci je

---
Mislio sam da napravim neki 'sigurnosni_kod' polje i kada pravim klijenta u to polje upisem has vrednosti iz polja pass+korisnicko_ime+email+datum_i_vreme_registraci je. E sad, kada se klijent konektuje prvi put posaljem mu cookie sa hasom polja 'sigurnosni_kod'!

Na loginu kod svake sledece konekcije ako je us i pass ok neradim odmah redirect, vec zahtevam cookie za proveru sigurnosti. Ako cookie ne postoji stavim step za ubacivanje sigurnosnog koda..

I npr: kada klijent radi izmenu emaila ili passa samo osvezim zapis sa hasom od -> novi_pass+korisnicko_ime+email+datum_i_vreme_izmen e i posaljem novi sigurnosni kod na mail!
---

Poenta je da i ako se neko docepa vredosti polja us i pass i dalje nemoze da se loguje. Mana je sto ako nema cookia ispada jedan smoren korak, a svako ko barem malo istrazuje po opcijama browsera stavi da se cookes brisu prilikom zatvaranja..


Mislim da ovo ima neku logiku, al me interesuje i sta drugi misle... Ili mozda ubacim ovaj step samo ako je u pitanju admin?

zark0vac
05. 12. 2006., 12:01
Ok, nego citao sam u novinama (juce ili prekjuce) kako je jedan Rumun iz 'dosade' razbio oko 150 americkih sigurnosnih sistema u veoma kratkom vremenskom intervalu :1064:

Siguran sam da bi isti probio moj menadzer za tri sekunde i upao u admin panel koji sam pisao 3 dana. Logicno je da se upitam dali mogu da uradim nesto vise po security pitanju. Nemam nekih 'bistrih' ideja za dalju zastitu pa ako moze neki savet nebi bilo lose :)
"Iz dosade.." :1042: I nije jedan rumun, vec ekipa koju on predvodi, zato ce samo on da zaglavi. Inace taj sistem se odvija tako sto ili pronadju vuln nekog daemona kojim rootaju server, ili iskoriste neki public ili otkupe 0day exploit koji iskoriscava odredjenu ranjivost u nekom daemonu, servisu, web aplikaciji, etc. Najcesci metod je pronalazenjem RFI buga u web aplikaciji koja se vrti na serveru na kom je sajt koji ti je cilj napada. Zatim se pokrece php shell i dize nc. Onda sledi rootanje servera i editovanje logova. Sto znaci da taj sajt za koji pravis tu skriptu ukoliko nije na zasebnom serveru vec na shared hostingu moze biti ownan cak i ako ti napravis ekstra sigurnu tu aplikaciju.

Inace sto se tice zastite procitaj ceo security deo na online manualu php.net-a, imas temu na ovom forumu "Kako se zastititi od hakovanja" ili slicno, potrazi. Evo ti jedan jednostavan tekst na temu hashovanja http://phpsec.org/articles/2005/password-hashing.html

Posebno obrati paznju na terimine: XSS, RFI (Remote File Inclusion), SQL Injection, pa na kraju kada se zastitis od svih navedenih ukoliko taj menadzer nudi neke mogucnosti korisnicima koji bi oni mogli da iskoriste (zloupotreba poverenja korisnika) prouci CSRF napade i sisteme zastite od istih.

Ukoliko filtriras svaki upit, http server ti je pravilno podesen, i odradis vecinu stvari po predlozima iz pomenute teme (Kako se zastititi od hakovanja), ti si sa svoje strane zavrsio.

Kada odradis sve ovo, javi pa da istestiramo ;)

flash_back
10. 12. 2006., 02:02
E drugari, picim danas za budvu ('upalo' mi je krljanje knaufa) pa reko da vas zamolim da 'ne krljate' menadzer narednih nedelju dana dok se ne vratim :)

Nisam stigao da zakrpim sve rupe, prebacio sam se malo na kontakt stranu i tu izgubio fokus stvari.. No dobro, poz svima i budite dobri dok se ne vratim :)

flash_back
26. 12. 2006., 01:32
Vratio sam se odavno iz Montenegra i sada dovrsavam pisanje alfa verzije menadzera.. Ubacio sam dosta novih funkcija nego nebih sada o njima, prvo da zavrsim po'so do kraja pa cu da bacim novu alfa verziju na kritiku :) Nego imam jedan double problem.. Mislim problem je sam po sebi malo smesan, ali pravi lepu zejebanciju..

Radi se o tekstu za poruke.. Kada vrednost sadzi novi red (enter) sam enter se ubacuje u bazu ali se iz nje ne ispisuje 'gde to treba'..

Da malo pojasnim stvar.. Na kontakt stranici imam java script (http://www.devprotalk.com/t1993-java-script-bug-u-ff-zbog-doctypea.html) koji na promenu selektovane vrednosti iz menia ispisuje neku (predhodno poznatu) vrednost u zadati div.

Ja sam iskoristio/prilagodio taj java script da mi radi funkciju za brzi odgovor.. znaci kod ispisivanja stranice pisem java script funkcije za poruke i unutar njega stavljam vrednosti odgovora. Na klik dugmeta za odgovor se ispisuje citiran text (sadrzaj poruke) i novo polje za odgovor (jbg, malo sam kopirao Gmail fazon ;)).

Problem predstavlja enter, koji kada se nadje u java scriptu obara/prekida celu funkciju/string za odgovor (generisanje citata i opcije za odgovor). Malo sam surfovao ali bas nista konkretno nisam pronasao..

Znaci zeleo bih da se tekst u samoj poruci ispisuje sa redovima (sto sada nije slucaj i ako je u bazi sve ok) i ako se nadje novi red u javi da se string/funkcija ne obara..

dee
26. 12. 2006., 02:45
stono neko lijepo ovdje rece: uz rizik da ostanem ziv...

da ti ne pomaze http://hr.php.net/manual/en/function.nl2br.php ?

flash_back
26. 12. 2006., 03:30
evo gledam ali za sada ne pomaze.. :)

---
edit:
---

E ma opusteno, radi $string = nl2br($string); Zezalo me je to sto svaki string provlacim kroz funkciju za ciscenje i onda dolazi do 'sukoba funkcija' :)

Nego i dalje je ostao problem sa javom, vise line break-a (entera) prave u bazi zapis <br /> jedan
ispod
drugog
a java script to nece da proguta (misa joj njenog).

---
edit2:
---
ma da, sada kada sam skinuo ciscenje funkcije hvatam i "\n" i "\r" nl2br samo 'zabrlja', sve je sada ok :)

flash_back
27. 12. 2006., 22:33
Evo sta sam pisao i o cemu se radi..

Poruka ima funkcije | Obrisi poruku | Posalji na email | Odgovori (sto se grana u -> Posalji odgovor | sacuvaj odgovor | i zatvori odgovor)

Na click Odgovori ispada citat sa sadrzajem trenutne poruke i forma za upis odgovora.. na click sacuvaj odgovor pravim zapis sa time sto konvertujem line break-ove (nove redove) u <br />..

Kod svakog ucitavanja poruka trazim zapise u bazi za sacuvane odgovore i generisem jscript koji u sebi sadrzi iste..

ako je bilo novih redova u sacuvanom odgovoru u formi mi se ispise "<br />".. ok, to je sve jasno, nego kada pre ispisa konvertujem "<br />" u "\n" dobijam nove redove u jsciptu i funkcija/string puca..

E sad, ja se tu malo iznerviram i izbrisem $string = str_replace ("<br />", "\n", $row[string]); testiram sve moguce varijante xXx puta i bez ikakvih rezultata..

Probrisem testove i ponovo (rucno - bez ctrl z) istpisem $string = str_replace ('<br />', '\n', $row[string]); i zajebem se (ako mogu tako da se izrazim), umesto duplih navodnika upisem 'obicne' i kad ono sve sljaka ok :) lepo se ispisuje '\n' u js-u i prikazuje line break u formi :) da covek ne veruje...

mislim problem je resen nego i dalje sam u cudu.. ovih pet-sest funkcija sam sklopio za pola dana - dan a sa ovim line break-om se patim skoro isto toliko :D pa reko cisto ako nekom da zatreba da ne lupa glavu k’o ja :)

dee
28. 12. 2006., 04:03
lako je bit general poslije bitke, al neki dan sam ti bas to htio napisat, da kakve navodnike koristis :D al reko necu gnjavit, to je trivijalnost :)

razlika u jednostrukim i dvostrukim je upravo u tome kako vide escape stringove :)

http://www.php.net/manual/en/language.types.string.php

ispade da si potratio par sati radi trivijalnosti. za moj dio krivnje sto ne rekoh na vrijeme, ispricavam se :)