Ik ben bezig met een script, zodat ik na het opgeven van een password en een file, de bron code krijg te zien.
Nu zit ik het het probleem, dat als je in het input veldje c:\winnt\php.ini
opgeeft, deze gewoon te zien krijgt.
Nu dacht ik zo, dan lees ik de url uit met
$_ENV["PATH_TRANSLATED"], dan krijg je bijvoorbeeld (windows server)
c:\\www\\showfile\\show_source.php te zien.
Maar nu weet je natuurlijk nooit hoeveel path's het filetje bevat.
(dus c:\\www\\blaat\\blaat\\blaat\\file.php)
iemand die me kan helpen ?
Nu zit ik het het probleem, dat als je in het input veldje c:\winnt\php.ini
opgeeft, deze gewoon te zien krijgt.
Nu dacht ik zo, dan lees ik de url uit met
$_ENV["PATH_TRANSLATED"], dan krijg je bijvoorbeeld (windows server)
c:\\www\\showfile\\show_source.php te zien.
Maar nu weet je natuurlijk nooit hoeveel path's het filetje bevat.
(dus c:\\www\\blaat\\blaat\\blaat\\file.php)
iemand die me kan helpen ?
PHP:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| <?php //Ferenz PHP file viewer. //version 0.1.0 $PassWord = "eenpassword"; // The password to acces the source code $ShowFileDenied = true; // if you are be able to see this file, false to see it. $win32 = true; // of het het script op een windows platform draait. /* * Todo: * zorgen dat je geen file's niveau's lager dan de huidige dir kan lezen (dus ../file.blaat) * zorgen dat je geen absolut path mag opgeven c:\windows\php.ini enz. * zorgen dat er alleen html, htm, css, php, js, php3 gelezen kan woorden. * * Een lijst maken met huidige bestanden in de dir, na opgeven password. * via aankruisvakje, en verzendknop. * */ $PostPassWord = $HTTP_POST_VARS['password']; addslashes($PostPassWord); addslashes($PassWord); if ($PostPassWord == $PassWord) { $MyFile = $HTTP_POST_VARS['file']; //controleren of er niet een ander path wordt opgevraagt. if ($win32 == true) { } else { //andere besturingsystemen. } } // Check of the file is show_source.php and check of this is allowed to display if(($MyFile == "show_source.php") AND ($ShowFileDenied == true)){ echo "<p>Not be able to access this file</p>"; exit(); } else { if(empty($MyFile)) { echo "<p>file is not set or password is incorect!<p>"; exit(); } else { if (file_exists($MyFile)) { $file = $MyFile; } else { echo "<p>Given file does not exists</p>"; exit(); } } // end else empty file. }// end else show_source blok. echo "<p>This is the source code from $file\n</p><br>"; ?> <ol><li> <? ob_start(); show_source("$file" ); $t = ob_get_contents(); ob_end_clean(); echo ereg_replace( "<br />" , "</li><li>" , $t ); ?> |