Onveilig script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johnny hertogs

johnny hertogs

19/06/2013 16:10:10
Quote Anchor link
Hallo,

Ik kreeg de melding dat onderstaand script gevaarlijk is voor hackers. Wie kan mij helpen waardoor dat zou komen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?
    if ($message_nr==""){
        $message=Array();
        if ($handle = @opendir('../messages')) {
            while (false !== ($file = @readdir($handle))) {
                if ($file != "." && $file != "..") {
                    $messages[]=$file;
                }
            }

            closedir($handle);
        }

        if (count($messages)>1) { sort($messages); }
        if (count($messages)>0) { $message_nr=$messages[count($messages)-1]+1; } else { $message_nr=1; }
        
        echo "&error=99-".$message_nr;
    }

    
    if ($cmd=="getmessage" && ereg("^[0-9]+",$message_nr)) {
        $target_file="../messages/".$message_nr;
        if (file_exists($target_file)){
            $handle = @fopen($target_file,"r");
            while (!feof($handle)) {
               $buffer = fgets($handle, 4096);
               $data_message=$buffer;
            }

            fclose($handle);
            
            echo "&data_message=".urlencode($data_message);
            echo "&message_nr_new=".($message_nr+1);
            echo "&error=0";
        }
else {
            echo "&message_nr_new=".$message_nr;
            echo "&error=1000"; // file not found
        }
    }
else {
        echo "&error=9999";
    }

?>
 
PHP hulp

PHP hulp

19/04/2024 10:09:22
 
Ward van der Put
Moderator

Ward van der Put

19/06/2013 16:31:20
Quote Anchor link
Wat staat er in de berichten die je ophaalt?

Een hacker kan ze namelijk allemaal lezen.
 
- SanThe -

- SanThe -

19/06/2013 16:38:09
Quote Anchor link
Ward van der Put op 19/06/2013 16:31:20:
Wat staat er in de berichten die je ophaalt?

Een hacker kan ze namelijk allemaal lezen.


Daar hoef je geen hacker voor te zijn.


De function ereg() is antiek.
ereg("^[0-9]+",$message_nr)

En waarom controleren of het een getal ia terwijl je er zojuist een getal in hebt gezet?
Gewijzigd op 19/06/2013 16:40:22 door - SanThe -
 
Johnny hertogs

johnny hertogs

19/06/2013 16:56:40
Quote Anchor link
Het lijkt erop dat de functie fopen vulnerable is in dit geval:
http://www.securiteam.com/unixfocus/5OP0C0A8AC.html

De bestanden mogen gewoon bekeken worden, dus dat is niet het probleem.
 
Kris Peeters

Kris Peeters

19/06/2013 17:03:48
Quote Anchor link
Mag ik toch eerst vragen dat de mensen heel specifiek zeggen waar ze zien dat iets fout loopt? Misschien ontgaat me iets.
Ik zie geen user input; ik zie niet wat er precies kan fout lopen. Ik zie wel een aantal variabelen waarvan ik niet weet wat er in gestoken is. Als dat user input is, is er waarschijnlijk wel een probleem.

---

Dit gezegd zijnde ...

Laat ons dit gewoon volledig opnieuw schrijven.
Geen opendir(), wel glob()
Geen fgets(), wel file_get_contents()

Wat moet dat allemaal kunnen?
Het leest een folder. In die folder zitten tekstbestanden (data bestanden); de inhoud van die bestanden is telkens een message die je mee wil geven aan de href van een een <a> element;

Klopt dat? Mis ik nog iets?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.