View previous topic :: View next topic |
Author |
Message |
unique
Joined: 29 Mar 2004 Posts: 655
|
Posted: 17.09.2004 21:50 Post subject: |
|
|
maxy wrote: | a sto zelis postici s time? |
sprijecit sql injection ?
(sory ak sam neš krivo shvatio ali to je način ili...?)
Quote: |
Returns a string with backslashes before characters that need to be quoted in database queries etc. These characters are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte). |
da ili u www.php.co.ba tamo je na "hrvatskom"
maxy wrote: |
reci mi koji ti je cilj sa ovim security pitanjima tako da ti damo dat konkretan odgovor na ono sto te doista muci. |
pa dosta toga, općenito me zanima ali trebo bi napravit neki admin cp ... za upload/date stvari
nebi znao točno odredit što me muči cilj je da stranica bude sigurna |
_________________ Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE! |
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
Posted: 17.09.2004 23:10 Post subject: |
|
|
sve sql injectione sprecavas sa mysql_real_escape_string ili sa addslashes.
kada vadis te podatke moras maknut te slasheve koje si dodao, dakle stripslashes.
to moras radit na GPC varijablama (get post cookie) jer su ti to varijable koje oznacavaju interakciju sa korisnikom (gad moze bit tolko pokvaren i u cookie spremit injection napad).
osim toga, postoje tzv. session hijackeri
svaki session ti se sprema u neki temp folder kojeg odredi admin ili korisnik. na podosta servera covjek koji ima account gore moze pristupiti sessionima drugog korisnika i tako ih "oteti".
ma covjece, postoji tog gomila, sad bi tu eseje mogo pisati...imam negdje tekst o tome kako natjerat server da si ispuca bandwith.
u biti moras osigurat sljedece:
- svaki user input provjerit (addslashes bi trebalo biti dosta da sprijecis SQL injectione)
- moras pazit da ti netko ne hot-linka tvoju form skriptu. zasto to moras pazit - jer moze napravit skriptu koja non-stop salje podatke tvojem fajlu za procesiranje i pokusat ce ti naci rupu (koju mozes imati).
najbolje ti je da probas sam "hakirat" svoju skriptu pa ces doc do vecine odgovora sam. |
|
|
Back to top |
|
|
Phiber
Joined: 18 Apr 2004 Posts: 319 Location: Čakovec, Kroejša
|
Posted: 18.09.2004 02:45 Post subject: |
|
|
silence wrote: | ne mora biti switch
Code: |
if ( $_GET['spoji'] ){
$index = $_GET['spoji'];
} else {
$index = 0;
}
//array sa linkovima koji su mogući,
//definiranje $spoji varijable
$spoji = array ( "naslov",
"korisnici",
"lozinka",
"proizvodi",
"pregledSlika",
"slike",
"vijesti",
"upload" );
include ( "include/".$spoji[$index].".php" );
?> |
baš me zanimaju komentari na ovo. |
ukoliko zatrazis samo index.php, baca te na index.php?spoji=naslov
a ako zatrazis index.php?spoji=lkdodikorokdokdokdok?
zaboravio si na default redirection.
my switch is better than yours |
_________________ - Xatrix Security news portal -- redizajn napravljen, al radim css
- - TIP / Rapid IT : web design & hosting -- za ovog ne, taj je u ladici |
|
Back to top |
|
|
unique
Joined: 29 Mar 2004 Posts: 655
|
Posted: 18.09.2004 10:27 Post subject: |
|
|
maxy wrote: | sve sql injectione sprecavas sa mysql_real_escape_string ili sa addslashes.
kada vadis te podatke moras maknut te slasheve koje si dodao, dakle stripslashes.
|
malo me to zbunjuje () zašto bi micao bslasheve
evo primjer ako sam dobro shvatio
Code: |
// ...
$id = addslashes($_GET['id']);
$query = "SELECT * FROM tablica WHERE id = '$id');
//i sad ako on* (*potencijalni haker) nešto "pokuša" npr. bibi.php?id=hi' ;nestanesta
//ja cu mu dodat \ na ' i query to neće prihvatit ??
mysql_query($query, $konekt);
|
Last edited by unique on 18.09.2004 16:11; edited 1 time in total |
_________________ Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE! |
|
Back to top |
|
|
silence
Joined: 24 Apr 2004 Posts: 890 Location: .....ni na nebu, ni na zemlji.....
|
Posted: 18.09.2004 10:39 Post subject: |
|
|
Phiber wrote: |
ukoliko zatrazis samo index.php, baca te na index.php?spoji=naslov
a ako zatrazis index.php?spoji=lkdodikorokdokdokdok?
zaboravio si na default redirection.
my switch is better than yours |
acctually....
ili daješ nekaj.php, pa inkludira naslov.php,
ili moraš definirat $_GET['spoji'] da ima neku vrijednost, unutar onoga kaj je definirano u arrayu.
baš sam išo upisat bilo kaj drugo i dobio ovo :
Warning: main(adminUnos/.php) [function.main]: failed to open stream: No such file or directory in c:\wamp\www\admin\test.php on line 92
Warning: main() [function.include]: Failed opening 'includes/.php' for inclusion (include_path='.;C:\php5\pear') in c:\wamp\www\admin\test.php on line 92
meni barem ovako imaš manje pisanje nego kod switcha.....
recimo na jednom webu mi spoji idu do nekih 22....to mi je malo previše za switch, dok ovdi samo stavljam elemente u array....
EDIT:::: sad sam tek skužio kaj si reko...hehe.....
difolt mi ovdi nije bitan, ovo mi služi za dio kojem ionako posjetitelji nemaju pristupa...a čisto sumnjam da će se vlasnik weba ić igrat s URLom unutar admin dijela.....
sam web je drugačije složen......
idem sad popit kavu dok ne napišem još koju glupost.... |
_________________ This End-User License is an agreement between Microsoft Corporation (hereafter referred to as "Microsoft") and you, the end-user (hereafter referred to as "our bitch"). |
|
Back to top |
|
|
unique
Joined: 29 Mar 2004 Posts: 655
|
Posted: 18.09.2004 13:57 Post subject: |
|
|
@silence & phiber :
jedini je problem što s dodavanjem stranica morate mijenjati source ovog "indexa" zato evo i jedna moja scripta (provjereno i radi )
Code: | <?php
if($file = $_GET['file'].".php"){
$dir = dir("funky");
$kontrola = false;
while($new=$dir->read()){
if ($file==$new){
include ("funky/$file");
$kontrola = true;
}
}
if (!$kontrola) include ("funky/novosti.php");
}else include ("funky/novosti.php");
?> |
znači pogleda dal u folderu 'funky' postoji file koji želimo includat ... ako da include ... ako ne opet include ali novosti.php ...
ps.
@phiber... probaj s funkcijom in_array da ne pišeš toliko caseova
ajmo se sad vratit na moja pitanja |
_________________ Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE! |
|
Back to top |
|
|
silence
Joined: 24 Apr 2004 Posts: 890 Location: .....ni na nebu, ni na zemlji.....
|
Posted: 18.09.2004 14:38 Post subject: |
|
|
thnx. |
_________________ This End-User License is an agreement between Microsoft Corporation (hereafter referred to as "Microsoft") and you, the end-user (hereafter referred to as "our bitch"). |
|
Back to top |
|
|
Phiber
Joined: 18 Apr 2004 Posts: 319 Location: Čakovec, Kroejša
|
Posted: 18.09.2004 15:57 Post subject: |
|
|
unique wrote: | @silence & phiber :
jedini je problem što s dodavanjem stranica morate mijenjati source ovog "indexa" zato evo i jedna moja scripta (provjereno i radi )
|
mrzim ovaj nacin inkludanja....
unique wrote: | @silence & phiber :
Code: | <?php
if($file = $_GET['file'].".php"){
$dir = dir("funky");
$kontrola = false;
while($new=$dir->read()){
if ($file==$new){
include ("funky/$file");
$kontrola = true;
}
}
if (!$kontrola) include ("funky/novosti.php");
}else include ("funky/novosti.php");
?> |
znači pogleda dal u folderu 'funky' postoji file koji želimo includat ... ako da include ... ako ne opet include ali novosti.php ...
|
jer me podsjeca na prijasnje bugove tipa:
npr. index.php?file=../../../../etc/shadow
unique wrote: | @silence & phiber :
ps.
@phiber... probaj s funkcijom in_array da ne pišeš toliko caseova
|
dobra |
_________________ - Xatrix Security news portal -- redizajn napravljen, al radim css
- - TIP / Rapid IT : web design & hosting -- za ovog ne, taj je u ladici |
|
Back to top |
|
|
unique
Joined: 29 Mar 2004 Posts: 655
|
Posted: 18.09.2004 16:05 Post subject: |
|
|
phiber wrote: | jer me podsjeca na prijasnje bugove tipa:
npr. index.php?file=../../../../etc/shadow |
to je ustvari ovdje nemoguće |
_________________ Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE! |
|
Back to top |
|
|
Phiber
Joined: 18 Apr 2004 Posts: 319 Location: Čakovec, Kroejša
|
|
Back to top |
|
|
unique
Joined: 29 Mar 2004 Posts: 655
|
Posted: 18.09.2004 16:15 Post subject: |
|
|
Phiber wrote: |
a reko podsjeca me |
istina
@maxy:
evo budem ponovno pito (ako slučajno ne vidiš moj post ovo mi je važno )
../
malo me to zbunjuje () zašto bi micao bslasheve ?
evo primjer ako sam dobro shvatio
Code: |
// ...
$id = addslashes($_GET['id']);
$query = "SELECT * FROM tablica WHERE id = '$id');
//i sad ako on* (*potencijalni haker) nešto "pokuša" npr. bibi.php?id=hi' ;nestanesta
//ja cu mu dodat \ na ' i query to neće prihvatit ??
mysql_query($query, $konekt);
|
|
_________________ Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE! |
|
Back to top |
|
|
Phiber
Joined: 18 Apr 2004 Posts: 319 Location: Čakovec, Kroejša
|
Posted: 18.09.2004 16:27 Post subject: |
|
|
unique wrote: |
@maxy:
evo budem ponovno pito (ako slučajno ne vidiš moj post ovo mi je važno )
../
malo me to zbunjuje () zašto bi micao bslasheve ?
evo primjer ako sam dobro shvatio
Code: |
// ...
$id = addslashes($_GET['id']);
$query = "SELECT * FROM tablica WHERE id = '$id');
//i sad ako on* (*potencijalni haker) nešto "pokuša" npr. bibi.php?id=hi' ;nestanesta
//ja cu mu dodat \ na ' i query to neće prihvatit ??
mysql_query($query, $konekt);
|
|
nadam se da se maxy nece ljutit , ja cu ti pokusat razjasnit
prvo, imas krivi $query:
$query = "SELECT * FROM tablica WHERE id = '$id'";
je tocan $query.
znaci, kad ukucas http://server/bibi.php?id=hi';nestanesta
dobijes: SELECT * FROM tablica WHERE id = 'hi\';nestanesta'
a ako ukucas isto, ali promjenis $id = addslashes($_GET['id']);
u $id=$_GET['id'];
dobijes $query:
SELECT * FROM tablica WHERE id = 'hi';nestanesta'
sve na kupu:
SELECT * FROM tablica WHERE id = 'hi\';nestanesta' <<< sa addslashes
SELECT * FROM tablica WHERE id = 'hi';nestanesta' <<< bez addslashes
u prvom slucaju mysql trazi id "hi';nestanesta' a u drugom id hi sa dodatnim parametrima nestanesta << sql injection. |
_________________ - Xatrix Security news portal -- redizajn napravljen, al radim css
- - TIP / Rapid IT : web design & hosting -- za ovog ne, taj je u ladici |
|
Back to top |
|
|
unique
Joined: 29 Mar 2004 Posts: 655
|
Posted: 18.09.2004 16:37 Post subject: |
|
|
Phiber wrote: |
nadam se da se maxy nece ljutit , ja cu ti pokusat razjasnit |
valjda nece
Phiber wrote: |
prvo, imas krivi $query:
$query = "SELECT * FROM tablica WHERE id = '$id'";
je tocan $query. |
why?
Phiber wrote: |
znaci, kad ukucas http://server/bibi.php?id=hi';nestanesta
dobijes: SELECT * FROM tablica WHERE id = 'hi\';nestanesta'
a ako ukucas isto, ali promjenis $id = addslashes($_GET['id']);
u $id=$_GET['id'];
dobijes $query:
SELECT * FROM tablica WHERE id = 'hi';nestanesta'
sve na kupu:
SELECT * FROM tablica WHERE id = 'hi\';nestanesta' <<< sa addslashes
SELECT * FROM tablica WHERE id = 'hi';nestanesta' <<< bez addslashes
u prvom slucaju mysql trazi id "hi';nestanesta' a u drugom id hi sa dodatnim parametrima nestanesta << sql injection. |
pa to sam i mislio, oće to radit ili ne ?? (nije mi bilo kasno zašto bi micao slasheve ??) |
_________________ Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE! |
|
Back to top |
|
|
PsychoPod
Joined: 05 Oct 2003 Posts: 166
|
Posted: 18.09.2004 20:56 Post subject: |
|
|
silence wrote: | ne mora biti switch
Code: |
if ( $_GET['spoji'] ){
$index = $_GET['spoji'];
} else {
$index = 0;
}
//array sa linkovima koji su mogući,
//definiranje $spoji varijable
$spoji = array ( "naslov",
"korisnici",
"lozinka",
"proizvodi",
"pregledSlika",
"slike",
"vijesti",
"upload" );
include ( "include/".$spoji[$index].".php" );
?> |
baš me zanimaju komentari na ovo. |
ovakav kod sam vidio na jednoj stranici davno koju mi je poslao maxy kada sam ga davno pitao u vezi ove iste teme. znaci..copy caat
|
|
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
Posted: 18.09.2004 22:23 Post subject: |
|
|
odgovorit cu na uniqueovo pitanje kratko i jasno
prilikom ubacivanja u bazu -> dodas slasheve
prilikom vadjenja istih podataka -> mices slasheve
primjer: John's mother has 2 beers
ides to ubacit u mysql i polje koje sadrzi ovaj string to spremi ovako:
John\'s mother has 2 beers
ako to izvadis iz baze i pokazes korisniku on ce viditi taj slash tako da ti on tu smeta i moras ga maknut
na stranu sad sql injection napadi - to sprecavas prilikom ubacivanja u bazu ali ipak moras biti i prema korisniku "dobar" i pokazat mu tekst bez nekih djindja-baja znakova.
fk0rz, ovo je sve logicno samo po sebi ali eto - crno na bjelom neka bude pa kad ce nekom zatrebat.. |
|
|
Back to top |
|
|
unique
Joined: 29 Mar 2004 Posts: 655
|
Posted: 18.09.2004 22:38 Post subject: |
|
|
lol nije mi palo na pamet da bi se u mom dijelu mogli nać ' ali nema veze
sve jasno sad |
_________________ Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE! |
|
Back to top |
|
|
|