PrimHunter
Залез в неимоверные дебри. Создатель сделал все, что бы как можно сильнее усложнить жизнь пытающемуся разобраться где, что и как работает.
Забил. Слишком много всего перелопачено. Что-то можно лехко пропустить.
Реально проще, дешевле и безопасней сделать клон этого дела самому. Но это уже не ко мне.
Чистый шаблон без линков на сторонние ресурсы yadi.sk/d/Tfwo_c6k3PnBQ — Забираем — Sahifa_1.1.7
Прости, дорогой, но он не чистый.
Заморочился, начал проверять шаблон буквально построчно. Проверил всего несколько файлов пока.
Что я могу сказать — очень, ОЧЕНЬ большая работа проделана создателем шаблона. Сам шаблон сделан вполне профессионально, красивый, все ок. Скачают и поставят его очень многие.
А теперь о том, что большинство не заметит. ВО ВСЕХ компонентах намеренно сделаны дыры в безопасности, не влияющие на работоспособность. Я еще раз повторюсь — пока только начал смотреть, всего несколько файлов из дефолтного и обсуждаемого сравнил. Честно, я вот для себя его скорее всего допилю, уберу намеренно сделанные дыры, и буду использовать. НО! Этого автора просто необходимо предать анафеме, повешанию, четвертованию и расстрелу после повешания. Ибо это есть социальная инженерия, мошенничество, неправомерный доступ к информации и так далее.
Я так подозреваю, что автор вполне с дальним прицелом этот шаблон делал. Как только появится несколько более-менее генерирующих траффик сайтов — можно с них бабло сосать постоянно. Ну и много еще чем можно воспользоваться. Короче, парни, это не шаблон а В этом месте может быть ваш БАН, читайте правила сайта. Предохраняйтесь.
$back_url = $inUser->signInUser($user['login'], $user['password'], 1, 1);
$inCore->redirect($back_url); exit;
Собственно, для тех кто сюда заглянет — uLogin начинает прекрасно работать после перевода на UTF и замены строчек в plugin.php
$_SESSION['user'] = cmsUser::createUser($user); cmsCore::callEvent('USER_LOGIN', $_SESSION['user']);
$back_url = $inUser->signInUser($user['login'], $user['password'], 1, 1);
$inUser = cmsUser::getInstance();
PPS а есть вообще полное описание всех функция ядра? так методом научного тыка тяжко изучать.
$_SESSION['user'] = cmsUser::createUser($user);
Собственно, вопрос: как теперь правильно работать с логином пользователей? сам поковырял — не нашел как в самом инстанте это сейчас реализовано.
Можно, конечно, оставить и так, но не повлияет ли это на безопасность?
ЗЫ
что б не пришлось лезть в плагин и ядро:
в плагине вызывается вот это:
$sql = "SELECT * FROM cms_users WHERE id = '{$user_id}'"; $result = $inDB->query($sql); if ($inDB->num_rows($result) == 1) { $current_ip = $_SERVER['REMOTE_ADDR']; $user = $inDB->fetch_assoc($result); if (!cmsUser::isBanned($user['id'])) { $main_id = $user['main_id']; $sql = "SELECT * FROM cms_users WHERE id = '{$main_id}'"; $result = $inDB->query($sql); if ($inDB->num_rows($result) == 1) { $main_user = $inDB->fetch_assoc($result); if (!cmsUser::isBanned($user['id'])) { $user = $main_user; $user_id = $main_id; }else{ $inDB->query("UPDATE cms_banlist SET ip = '$current_ip' WHERE user_id = " . $user['id'] . " AND status = 1"); break; } }else{ break; } } $_SESSION['user'] = cmsUser::createUser($user); cmsCore::callEvent('USER_LOGIN', $_SESSION['user']);
public static function createUser($_userdata){ $inDB = cmsDatabase::getInstance(); $user = $_userdata; $sql = "SELECT alias, access, is_admin FROM cms_user_groups WHERE id = ".$user['group_id']; $result = $inDB->query($sql); $_groupdata = $inDB->fetch_assoc($result); $user['group'] = $_groupdata['alias']; $user['access'] = $access; $user['is_admin'] = $_groupdata['is_admin']; return $user; }
Процедура проверки простая — ставим дефолтный движок, заходим в форумы — все нормально. накатываем патч — текстов сообщений в форуме нет. Сравнил /components/forum/frontend.php — отличие в пару строк, возврат к изначальной версии файла результата не приносит. Куда копать?
Более того. Многие тут видели фокус когда открываешь тему форума и ты оффлайн. А теперь представим что Артем закатал в том посте не выход из логина а другое… Половина пользователей теперь курила бы.Да, в данном случае пользователь сам нажимал на ссылку. А если совместить это с дыркой с тегом "embed" из соседней ветки — переход по этой ссылке будет автоматически при открытии сообщения. И никаких активных действий. Получил личное сообщение, открыл посмотреть что там — и все, нет тебя.
ну я собственно об этом и говорил…
CyberMan, привели два варианта устранения
1. добавить вопрос "Вы действительно хотите снести свой профиль?"
2. удалить из файла код, который отвечает за удаление профиля
Это не есть дыра инстанта, пользователь же сам себя удаляет — своими активными действиями. Пусть по глупости, но сам — можно лишь добавить еще один вопросик, чтобы убедиться в намерениях пользователя
Да, в данном случае пользователь сам нажимал на ссылку. А если совместить это с дыркой с тегом "embed" из соседней ветки — переход по этой ссылке будет автоматически при открытии сообщения. И никаких активных действий. Получил личное сообщение, открыл посмотреть что там — и все, нет тебя.
А сработает интересно если например выхватить в тексте перед его записью в базу тегииBODY ONLOAD
я не профессионал в пхп и безопасности, думаю что сработает, но решение половинчатое. Кроме того, embed так-то нужный тег, к примеру видео вставлять или еще чего… так что надо как-то по другому.
<div class="forum_lostimg">Файл "<BODY ONLOAD=alert('XSS')>" не найден!</div> пилите баги, руки с мылом мойте! чпоки чпоки <div class="forum_lostimg">Файл "<EMBED SRC="/logout" ></EMBED>" не найден!</div>
PrimHunter, тебе будет урок, как ломать мою подругу, и не надо отпираться только)
Дурачок неразумный. Головой подумай — если б я умел кого-то ломать — я б здесь сейчас не спрашивал как же меня сломали, а сам бы разобрался. У меня други цели и задачи в жизни, нежели ломать кого-то.
ВНИМАНИЕ, при переходе по этой ссылке вы будете разлогинены
С другой стороны — этот сайт был просто так, для души. Доход он не приносил, да и не планировался. Создан был три года назад в момент сложной жизненной ситуации, работал, помогал людям.
Но я знаю, кто против существования моего сайта. Есть подобный сайт, так скажем "конкуренты", mneploho.net. Появились позже, испоьзуют тот же инстант, быстро раскачались, и именно люди с этого ресурса сломали мой сайт, в этом я уверен на 146%, и даже готов предоставить переписку с одним из завсегдатаев того сайта с угрозами.
Самое печальное — то, что люди готовы идти на подобные поступки, не парясь никакими моральными принципами — у них "бизнес".
Что ж, я уже готов признать поражение — бизнес в очередной раз перечеркнул все добрые начинания.
Х: В панели управления, "Log файлы", включите логи посещений, после чего, как повторится проблема, фиксируете ее время и смотрите по логам, какие шли запросы к сайту, соответственно по этим данным и закрываете уязвимости.
Я: Логи включены, но знаний, что бы разобраться, к сожалению не хватает… нет ли у вас подобной услуги — найти дырки, и вынести какие-то рекомендации?
Х: Нет, к сожалению таких услуг у нас нет.
По поводу фтп — если б был доступ к фтп — пошалили бы и с другими сайтами, которые лежат на том же фтп в папках рядышком.
Кстати, часть картинок после первого раза была с сайта удалена, а все остальное на первый взглад не тронуто, из чего дедуктивным методом можно делать вывод, что доступ получен через редактор…
- Предыдущая
- 1
- 2
- 3
- Следующая
- Показаны 16-30 из 36