Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Чат для администраторов

Featured Replies

  • Replies 64
  • Просмотров 6,4k
  • Created
  • Последний ответ

Лучшие авторы в теме

Most Popular Posts

  • Ух ты! Классный чат, спасибо

  • Использую чат с самого его создания. Участвовал в тестировании. Скажу одно: классно! Большое Спасибо Владимиру.

  • Баг-репорт. А я без установки чата могу читать и писать сообщения

  • Author

zhenyasim, ничего я не отключал  :D Регистрация появляеться, когда чат установишь себе))) Видимо не понятно написал. Чатом могут пользоваться только те у кого он установлен на хостинге. Когда устанавливаешь чат, он перекидывает на мой чат где ты проходишь регистраци. Только после этого тебя пускает в чат автоматом. Не можете взломать? Жаль. :hi:

Многие кричали, что система безопасности плохая и ужасная. так взломайте же наконец. Специалисты! Закрыли тему взлома раз не можете! Только языком можете взламывать.

  • Author

zhenyasim, Ну я вообще-то никого не оскорблял тут. А во вторых, что для взлома нужно столько времени? Если вы конечно супер специалист, то я не спорю, взломаете так молодец, главное что б слова не на ветер. Ждёмс.

Kylaksizov, мне просто понравились эти шарики.

Теперь по теме:

Пока что нашел одну XSS атаку.

echo file_get_contents($_POST['wm']);

В файле get_mes.php

Рекомендую запретить включение напрямую таких параметров. Или сделать фильтрацию запросов.

  • Author

zhenyasim, Вы мне начинаете нравиться, вы первый что хоть что-то предложил. Только я не совсем понял что значит фильтрацию запросов. Обычную проверку?


Если б каждый так посоветовал, а не критиковал. Это бы помогло другим, кто будет читать тему.

Kylaksizov, нет. Именно фильтрацию.

Пример кода. Переделаете под себя:

class XssFilter extends CFilter

{



        public  $clean = 'all';       



        protected function preFilter($filterChain)

        {              

                $this->clean  = trim(strtoupper($this->clean));

                $data = array(

                         'GET'    => &$_GET,

                         'POST'   => &$_POST,

                         'COOKIE' => &$_COOKIE,

                         'FILES'  => &$_FILES

                );

                

                if($this->clean === 'ALL' || $this->clean === '*')

                {                        

                        $this->clean = 'GET,POST,COOKIE,FILES';

                }



                $dataForClean = split(',',$this->clean);

                if(count($dataForClean))

                {                 

                        foreach ($dataForClean as $key => $value)

                        {                 

                                if(isset ($data[$value]) && count($data[$value]))

                                {

                                        $this->doXssClean($data[$value]);

                                }

                        }

                }



              return true;

        }

        



        protected function postFilter($filterChain)

        {

                // logic being applied after the action is executed

        }





        private function doXssClean(&$data)

        {

                if(is_array($data) && count($data))

                {                       

                       foreach($data as $k => $v)

                       {

                               $data[$k] = $this->doXssClean($v);

                       }

                       return $data;

                }



                if(trim($data) === '')

                {

                        return $data;

                }



                // xss            

                $data = str_replace(array('&','<','>'), array('&','<','>'), $data);

                $data = preg_replace('/(&#*w+)[x00-x20]+;/u', '$1;', $data);

                $data = preg_replace('/(&#x*[0-9A-F]+);*/iu', '$1;', $data);

                $data = html_entity_decode($data, ENT_COMPAT, 'UTF-8');

                // Remove any attribute starting with "on" or xmlns

                $data = preg_replace('#(<[^>]+?[x00-x20"'])(?:on|xmlns)[^>]*+>#iu', '$1>', $data);

                // Remove javascript: and vbscript: protocols

                $data = preg_replace('#([a-z]*)[x00-x20]*=[x00-x20]*([`'"]*)[x00-x20]*j[x00-x20]*a[x00-x20]*v[x00-x20]*a[x00-x20]*s[x00-x20]*c[x00-x20]*r[x00-x20]*i[x00-x20]*p[x00-x20]*t[x00-x20]*:#iu', '$1=$2nojavascript...', $data);

                $data = preg_replace('#([a-z]*)[x00-x20]*=(['"]*)[x00-x20]*v[x00-x20]*b[x00-x20]*s[x00-x20]*c[x00-x20]*r[x00-x20]*i[x00-x20]*p[x00-x20]*t[x00-x20]*:#iu', '$1=$2novbscript...', $data);

                $data = preg_replace('#([a-z]*)[x00-x20]*=(['"]*)[x00-x20]*-moz-​binding[x00-x20]*:#u', '$1=$2nomozbinding...', $data);

                // Only works in IE: <span style="width: exp​ression(alert('Ping!'));"></span>

                $data = preg_replace('#(<[^>]+?)style[x00-x20]*=[x00-x20]*[`'"]*.*?exp​ression[x00-x20]*([^>]*+>#i', '$1>', $data);

                $data = preg_replace('#(<[^>]+?)style[x00-x20]*=[x00-x20]*[`'"]*.*?behaviour[x00-x20]*([^>]*+>#i', '$1>', $data);

                $data = preg_replace('#(<[^>]+?)style[x00-x20]*=[x00-x20]*[`'"]*.*?s[x00-x20]*c[x00-x20]*r[x00-x20]*i[x00-x20]*p[x00-x20]*t[x00-x20]*:*[^>]*+>#iu', '$1>', $data);

                // Remove namespaced elements (we do not need them)

                $data = preg_replace('#</*w+:w[^>]*+>#i', '', $data);

                do

                {

                        // Remove really unwanted tags

                        $old_data = $data;

                        $data = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $data);

                }

                while ($old_data !== $data);                

                return $data;

        }



}

?>

Дальше я уже завтра поищу уязвимости.

Kylaksizov, погуглите. Много полезной инфы по фильтрации найдете. Я понимаю, что нет. У вас данные тупо http-запросами передаются, на сколько я понял. Я просто пример привел. Объяснил и подтолкнул. Дальше дело за вами.

  • Author

RealUser, да я уверен, что он просто имет доступ к твоему фтп. Я сомневаюсь, что он взломал. Или может конфиг как-то нашёл у тебя. Как видишь он уже не пишет в чат, значит он в обломе. Проверок там при достаточно. Но все равно я улучшу систему безопасности. Просто не так всё быстро, тем более меня тоже проект ждёт а я тут играюсь всё.

  • Author

zhenyasim, Нам троим интересно, как один взломал нашего пользователя в чате, т.е. RealUser, и больше никого не смог взломать. Сейчас можно каким-то образом получить данные с чата? Читать сообщения например.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.