Ik heb via google een soort encrypt/decrypt scriptje gevonden.
Dit scriptje is meer dan geboeg voor mij, dus wil ik deze gaan gebruiken.
Dit is het script:
Vervolgens heb ik een FTP script geschreven.
Deze logt in op een local FTP server, vraagt de directory inhoud op, en plaatst deze op het scherm.
De bestandsnamen zijn klikbare links. Via de link geef ik een variable door aan hetzelfde script.
Deze leest dan het bestand in z'n geheugen , en stuurt deze door naar de client.
Echter, sinds ik dus gebruik maak van het encrypt gedeelte om de url c.q. bestandsnaam te 'versleutelen' komen de bestanden corrupt binnen
Zet ik de versleuteling weer uit, werkt het weer naar behoren

Het FTP scriptje:
Hoe kan in vredesnaam nou zo'n actie een bestand corrumperen
De grootte van de bestanden komen wel overeen, en er lijkt ook wel grofweg hetzelfde in te zitten:
• Excel/Word docuemtnen bevatten nog wel de text maar als je ze opent in de bijbeorende applicatie krijg je eenzelfde brij te zien alsof je 'm met notepad opent
• .EXE bestanden hebben een 'dosbox app' icoontje en startten niet meer
• .RAR bestanden zijn volgens WinRAR corrupt
• .ZIP bestanden werken als enige goed
• .ICO bestanden bevatte een brei weaar ik nix van snap, maar windows ziet ze iig niet meer als een icon file
Wie o wie kan mij helpen ?
Commentaar op m'n ranzige vorm van scripten is niet nodig hoor, weet zelf ook wel dat ik er weinig van bak
Dit scriptje is meer dan geboeg voor mij, dus wil ik deze gaan gebruiken.
Dit is het script:
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
74
| <?php # $ralphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 \\!,.:;?~@#\$%^&*()_+-=][}{/><\"'`|"; $ralphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 \\!/_-,."; $alphabet = $ralphabet . $ralphabet; function encrypt ($password,$strtoencrypt) { $strtoencrypt = str_replace("\t","[tab]",$strtoencrypt); $strtoencrypt = str_replace("\n","[new]",$strtoencrypt); $strtoencrypt = str_replace("\r","[ret]",$strtoencrypt); global $ralphabet; global $alphabet; for( $i=0; $i<strlen($password); $i++ ) { $cur_pswd_ltr = substr($password,$i,1); $pos_alpha_ary[] = substr(strstr($alphabet,$cur_pswd_ltr),0,strlen($ralphabet)); } $i=0; $n = 0; $nn = strlen($password); $c = strlen($strtoencrypt); while($i<$c) { $encrypted_string .= substr($pos_alpha_ary[$n],strpos($ralphabet,substr($strtoencrypt,$i,1)),1); $n++; if($n==$nn) $n = 0; $i++; } return $encrypted_string; } function decrypt ($password,$strtodecrypt) { global $ralphabet; global $alphabet; for( $i=0; $i<strlen($password); $i++ ) { $cur_pswd_ltr = substr($password,$i,1); $pos_alpha_ary[] = substr(strstr($alphabet,$cur_pswd_ltr),0,strlen($ralphabet)); } $i=0; $n = 0; $nn = strlen($password); $c = strlen($strtodecrypt); while($i<$c) { $decrypted_string .= substr($ralphabet,strpos($pos_alpha_ary[$n],substr($strtodecrypt,$i,1)),1); $n++; if($n==$nn) $n = 0; $i++; } $decrypted_string = str_replace("[tab]","\t", $decrypted_string); $decrypted_string = str_replace("[new]","\n", $decrypted_string); $decrypted_string = str_replace("[ret]","\r", $decrypted_string); return $decrypted_string; } ?> |
Vervolgens heb ik een FTP script geschreven.
Deze logt in op een local FTP server, vraagt de directory inhoud op, en plaatst deze op het scherm.
De bestandsnamen zijn klikbare links. Via de link geef ik een variable door aan hetzelfde script.
Deze leest dan het bestand in z'n geheugen , en stuurt deze door naar de client.
Echter, sinds ik dus gebruik maak van het encrypt gedeelte om de url c.q. bestandsnaam te 'versleutelen' komen de bestanden corrupt binnen
Zet ik de versleuteling weer uit, werkt het weer naar behoren
Het FTP scriptje:
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
| <?php while(list($key,$val)=each($_POST)) { $$key = $val; } while(list($key,$val)=each($_GET)) { $$key = $val; } include("crypt.php"); $pass = "ftp passw0rd"; function array_remove_key($array, $item_to_remove) { $newarray = array(); foreach ($array as $key => $val) { if ($key != $item_to_remove) { $newarray[$key] = $val; } } return $newarray; } function push_file($file_name) { global $pass; $file_name = decrypt($pass, $file_name); $ext = explode(".", $file_name); $first = explode("/", $file_name); $prog = array_pop ($ext); $name = array_pop ($first); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=$name"); header("Content-Transfer-Encoding: binary"); $ftp_server = "server"; $ftp_user_name = "user"; $ftp_user_pass = "pass"; $conn_id = ftp_connect("$ftp_server"); if (!$conn_id) { echo "Ftp connection has failed!<br>"; die; } $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass"); if (!$login_result) { echo "Ftp connection has failed! ($login_result)<br>"; die; } $temp = tmpfile(); $fget_result=ftp_fget($conn_id, $temp, "$file_name", FTP_BINARY); rewind ($temp); fpassthru($temp); ftp_quit($conn_id); exit; } function show_dir() { global $pass; print "<html><head></head><body>"; $ftp_server = "server"; $ftp_user_name = "user"; $ftp_user_pass = "pass"; $conn_id = ftp_connect("$ftp_server"); if (!$conn_id) { echo "Ftp connection has failed!<br>"; echo "Attempted to connect to $ftp_server<br>"; die; } else { echo "Connected to $ftp_server<br>"; } $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass"); if (!$login_result) { echo "Ftp connection has failed! ($login_result)<br>"; echo "Attempted to login to $ftp_server for user $ftp_user_name<br>"; die; } else { echo "Logged into $ftp_server, for user $ftp_user_name<br>"; } $pwd = ftp_pwd($conn_id); echo "Present working directory is $pwd<br>"; $dir=ftp_pwd($conn_id); $list1=Array(); $list2=Array(); $list1=ftp_rawlist($conn_id, "$dir"); $list2=ftp_nlist($conn_id, "$dir"); $i=0; $list1 = array_remove_key($list1, "0"); foreach ($list1 as $item1) { $info = explode(" ", $item1); $location = explode("/", $item1); # 0=dir/file 1=rechten 2=eigenaar 3=size 4=maand 5=dag 6=tijd 7=rest # print "$location[1] is een $info[0] <BR>"; $enc_naam = encrypt($pass, $list2[$i]); if ($info[0] == "-") { print "<a href=\"test-ftp.php?get_file=$enc_naam\">$list2[$i]</a> $list2[$i] is een file <BR>"; } if ($info[0] == "d") { print "$list2[$i] is een dir <BR>"; } # print "$item1 | $list2[$i] <BR>"; # $naam = str_replace("$dir/","",$list[$i]); # $directory = str_replace($naam,"",$list[$i]); # echo $item1, "<BR>"; # print "$directory <a href=\"test-ftp.php?get_file=$enc_naam\">$naam</a> <BR>\n"; $i++; } # foreach ($list2 as $item2) # { # $naam = str_replace("$dir/","",$item2); # $directory = str_replace($naam,"",$item2); # print "$directory en $naam is: $info[0] , $info[1] ,$info[2] ,$info[3] ,<BR>"; # print "ik behandel $item2 <BR>"; # } ftp_quit($conn_id); exit; } if ($get_file != "") { push_file($get_file); } else { show_dir(); } exit; ?> |
Hoe kan in vredesnaam nou zo'n actie een bestand corrumperen
De grootte van de bestanden komen wel overeen, en er lijkt ook wel grofweg hetzelfde in te zitten:
• Excel/Word docuemtnen bevatten nog wel de text maar als je ze opent in de bijbeorende applicatie krijg je eenzelfde brij te zien alsof je 'm met notepad opent
• .EXE bestanden hebben een 'dosbox app' icoontje en startten niet meer
• .RAR bestanden zijn volgens WinRAR corrupt
• .ZIP bestanden werken als enige goed
• .ICO bestanden bevatte een brei weaar ik nix van snap, maar windows ziet ze iig niet meer als een icon file
Wie o wie kan mij helpen ?
Commentaar op m'n ranzige vorm van scripten is niet nodig hoor, weet zelf ook wel dat ik er weinig van bak
Tijd voor een nieuwe sig..