Уязвимость пабличного скрипта
Цитата: gamer от 26.12.2018, 12:02Вопросы, которые думаю интересуют многих:
- Часто разработчики скрипта или тот, кто выкладывает скрипт, оставляют лазейку. Какие эти лазейки могут быть? Где искать дыру(файлах, базе)? И что искать?
- Насколько обнажает защиту знание имён файлов и путей к ним?
- Стоит ли менять имя файла конфигурации или прятать его в новую папку, чтоб изменить путь? То же касается файлов подключения к ПС.
- Стоит ли менять префиксы таблиц базы?
- Может ли быть лазейка через JavaScript?
Возможно у кого-то есть свои рекомендации на что обратить внимание и что сделать, чтобы обезопасить пабличный скрипт от взлома?
Вопросы, которые думаю интересуют многих:
- Часто разработчики скрипта или тот, кто выкладывает скрипт, оставляют лазейку. Какие эти лазейки могут быть? Где искать дыру(файлах, базе)? И что искать?
- Насколько обнажает защиту знание имён файлов и путей к ним?
- Стоит ли менять имя файла конфигурации или прятать его в новую папку, чтоб изменить путь? То же касается файлов подключения к ПС.
- Стоит ли менять префиксы таблиц базы?
- Может ли быть лазейка через JavaScript?
Возможно у кого-то есть свои рекомендации на что обратить внимание и что сделать, чтобы обезопасить пабличный скрипт от взлома?
Цитата: Artsem от 26.12.2018, 13:411)Да разработчики часто оставляют лазейки, а тот кто выкладывает то 100%.
Например: возможность попасть в админ панель сайта не админу, безлимит на продление рекламы и многое др.. Всё зависит от скрипта букса. Искать нужно во всех файлах, лучше потратить больше времени на разработку и проверить все коды и выражения в скрипте, что как работает и что делает. Это поможет тебе поднять свой уровень в программировании и в будущем ты будешь знать где что можно поменять или доработать.
2) Например пример выше "возможность попасть в админ панель сайта не админу", если пользователь(вор) знает адрес твоей админки например https://sfb.su/admin, то естественно если там лазейка он в нее попадет, а если ты ее переименуешь например в https://sfb.su/admin12121 то даже если и есть лазейка в админке он туда не попадет.
Но это простая защита админки, есть методы не меняя имя админки, защитить саму папку админки паролем и логином на сервере - можно использовать "htpasswd". Ну а относительно других файлов то нужно ставить права доступа на каждую папку на сервере в зависимости от ее значения. Если у тебя apache то защищать содержимое папок .htaccess.
В основном переименовать нужно только имя папки админ панели, а остальные файловые файлы не обязательно переименовывать это не на что не влияет, все от любителя будит ли называться у тебя заказ рекламы "advertise" или "adv"
3)Не обязательно. Смотри выше.
4)1. Это геморно, там же более 60 таблиц.
2. Ваш префикс известен только вам, если кто-то сможет извне достучаться до вашей базы, то префикс будет уже пофиг какой.
Вывод: бесполезное это занятие.5)Не слышал о таком, если в JavaScript будет что то не то, то просто не будет выполняться скрипт и выведет ошибку.
Советы
а)Всегда проверяйте входные параметры запроса, это защитит ваш сайт от инъекций.
Например не просто:
$username = $_SESSION["username"]; $id = $_POST["id"];
а
$username = check($_SESSION["username"]);
$id = (isset($_POST["id"]) && number($_POST["id"])) ? intval($_POST["id"]) : '';
где check и number это функции обработки имени и числа соответственно.
б) Пользуйтесь ооп(объектно-ориентированное программирование) в php.
1)Да разработчики часто оставляют лазейки, а тот кто выкладывает то 100%.
Например: возможность попасть в админ панель сайта не админу, безлимит на продление рекламы и многое др.. Всё зависит от скрипта букса. Искать нужно во всех файлах, лучше потратить больше времени на разработку и проверить все коды и выражения в скрипте, что как работает и что делает. Это поможет тебе поднять свой уровень в программировании и в будущем ты будешь знать где что можно поменять или доработать.
2) Например пример выше "возможность попасть в админ панель сайта не админу", если пользователь(вор) знает адрес твоей админки например https://sfb.su/admin, то естественно если там лазейка он в нее попадет, а если ты ее переименуешь например в https://sfb.su/admin12121 то даже если и есть лазейка в админке он туда не попадет.
Но это простая защита админки, есть методы не меняя имя админки, защитить саму папку админки паролем и логином на сервере - можно использовать "htpasswd". Ну а относительно других файлов то нужно ставить права доступа на каждую папку на сервере в зависимости от ее значения. Если у тебя apache то защищать содержимое папок .htaccess.
В основном переименовать нужно только имя папки админ панели, а остальные файловые файлы не обязательно переименовывать это не на что не влияет, все от любителя будит ли называться у тебя заказ рекламы "advertise" или "adv"
3)Не обязательно. Смотри выше.
4)1. Это геморно, там же более 60 таблиц.
2. Ваш префикс известен только вам, если кто-то сможет извне достучаться до вашей базы, то префикс будет уже пофиг какой.
Вывод: бесполезное это занятие.
5)Не слышал о таком, если в JavaScript будет что то не то, то просто не будет выполняться скрипт и выведет ошибку.
Советы
а)Всегда проверяйте входные параметры запроса, это защитит ваш сайт от инъекций.
Например не просто:
$username = $_SESSION["username"]; $id = $_POST["id"];
а
$username = check($_SESSION["username"]);
$id = (isset($_POST["id"]) && number($_POST["id"])) ? intval($_POST["id"]) : '';
где check и number это функции обработки имени и числа соответственно.
б) Пользуйтесь ооп(объектно-ориентированное программирование) в php.
Цитата: serega393 от 27.12.2018, 20:04б) Пользуйтесь ооп(объектно-ориентированное программирование) в php.
Чем ООП спасёт от уязвимости? Бред...
б) Пользуйтесь ооп(объектно-ориентированное программирование) в php.
Чем ООП спасёт от уязвимости? Бред...
Цитата: Artsem от 28.12.2018, 08:54Цитата: serega393 от 27.12.2018, 20:04б) Пользуйтесь ооп(объектно-ориентированное программирование) в php.
Чем ООП спасёт от уязвимости? Бред...
Да сглупил. Как бы на практике ООП, подразумевает работу с PDO, но я по ошибки объединил два этих понятия.
б)Что бы защитится от инъекций пользуйтесь PDO.
Цитата: serega393 от 27.12.2018, 20:04б) Пользуйтесь ооп(объектно-ориентированное программирование) в php.
Чем ООП спасёт от уязвимости? Бред...
Да сглупил. Как бы на практике ООП, подразумевает работу с PDO, но я по ошибки объединил два этих понятия.
б)Что бы защитится от инъекций пользуйтесь PDO.
Цитата: NMR от 29.12.2018, 05:50Цитата: gamer от 26.12.2018, 12:02Вопросы, которые думаю интересуют многих:
- Часто разработчики скрипта или тот, кто выкладывает скрипт, оставляют лазейку. Какие эти лазейки могут быть? Где искать дыру(файлах, базе)? И что искать?
- Насколько обнажает защиту знание имён файлов и путей к ним?
- Стоит ли менять имя файла конфигурации или прятать его в новую папку, чтоб изменить путь? То же касается файлов подключения к ПС.
- Стоит ли менять префиксы таблиц базы?
- Может ли быть лазейка через JavaScript?
Возможно у кого-то есть свои рекомендации на что обратить внимание и что сделать, чтобы обезопасить пабличный скрипт от взлома?
1 - шелл ищи софтом, или сам вручную
2 - ну интерес разыграется конечно, но не более без знаний кода одни догадки что там и с чем едят
3 - не совсем понятен вопрос, но скажу лучше делайте все анонимна и с правильными правами доступа
4 - безопасность это наше всё))
Цитата: gamer от 26.12.2018, 12:02Вопросы, которые думаю интересуют многих:
- Часто разработчики скрипта или тот, кто выкладывает скрипт, оставляют лазейку. Какие эти лазейки могут быть? Где искать дыру(файлах, базе)? И что искать?
- Насколько обнажает защиту знание имён файлов и путей к ним?
- Стоит ли менять имя файла конфигурации или прятать его в новую папку, чтоб изменить путь? То же касается файлов подключения к ПС.
- Стоит ли менять префиксы таблиц базы?
- Может ли быть лазейка через JavaScript?
Возможно у кого-то есть свои рекомендации на что обратить внимание и что сделать, чтобы обезопасить пабличный скрипт от взлома?
1 - шелл ищи софтом, или сам вручную
2 - ну интерес разыграется конечно, но не более без знаний кода одни догадки что там и с чем едят
3 - не совсем понятен вопрос, но скажу лучше делайте все анонимна и с правильными правами доступа
4 - безопасность это наше всё))
Цитата: Misha от 03.01.2019, 20:34Цитата: gamer от 26.12.2018, 12:02Вопросы, которые думаю интересуют многих:
- Часто разработчики скрипта или тот, кто выкладывает скрипт, оставляют лазейку. Какие эти лазейки могут быть? Где искать дыру(файлах, базе)? И что искать?
- Насколько обнажает защиту знание имён файлов и путей к ним?
- Стоит ли менять имя файла конфигурации или прятать его в новую папку, чтоб изменить путь? То же касается файлов подключения к ПС.
- Стоит ли менять префиксы таблиц базы?
- Может ли быть лазейка через JavaScript?
Возможно у кого-то есть свои рекомендации на что обратить внимание и что сделать, чтобы обезопасить пабличный скрипт от взлома?
- Выше ответили, но считай, чтоб в пабличных скриптах всегда оставлены уязвимости(пусть и не специально). Глупо думать, что уязвимости будут наглые, типо прямая инъекция в базу и тд, хотя это лучше всё равно проверить. Возможность залить шел, если ничего не изменилось, присутствует во всей линейке mfs, а значит, с большой долей вероятности, и в скриптах претора. Но большинство уязвимостей в неправильной бизнес логике, так что лучше проверяй как работает с деньгами скрипт(всегда ли корректно обрабатывает отрицательные или дробные значения, как округляет и тд)
- В некоторых случаях очень сильно поможет, особенно, если ты мелкий и брать у тебя нечего
- Стоит правильно настраивать права(chmod)
- Тут по желанию, но вещь далеко не критичная
- Да, например с админки отправляются данные о логине/пароле, либо с помощью js шлются запросы, которые выглядят как настоящие, которые выплаты подтверждают/начисляют баланс и тд. Понятное дело, что без бэка работать ничего не будет, но основная уязвимость именно на фронте
Цитата: gamer от 26.12.2018, 12:02Вопросы, которые думаю интересуют многих:
- Часто разработчики скрипта или тот, кто выкладывает скрипт, оставляют лазейку. Какие эти лазейки могут быть? Где искать дыру(файлах, базе)? И что искать?
- Насколько обнажает защиту знание имён файлов и путей к ним?
- Стоит ли менять имя файла конфигурации или прятать его в новую папку, чтоб изменить путь? То же касается файлов подключения к ПС.
- Стоит ли менять префиксы таблиц базы?
- Может ли быть лазейка через JavaScript?
Возможно у кого-то есть свои рекомендации на что обратить внимание и что сделать, чтобы обезопасить пабличный скрипт от взлома?
- Выше ответили, но считай, чтоб в пабличных скриптах всегда оставлены уязвимости(пусть и не специально). Глупо думать, что уязвимости будут наглые, типо прямая инъекция в базу и тд, хотя это лучше всё равно проверить. Возможность залить шел, если ничего не изменилось, присутствует во всей линейке mfs, а значит, с большой долей вероятности, и в скриптах претора. Но большинство уязвимостей в неправильной бизнес логике, так что лучше проверяй как работает с деньгами скрипт(всегда ли корректно обрабатывает отрицательные или дробные значения, как округляет и тд)
- В некоторых случаях очень сильно поможет, особенно, если ты мелкий и брать у тебя нечего
- Стоит правильно настраивать права(chmod)
- Тут по желанию, но вещь далеко не критичная
- Да, например с админки отправляются данные о логине/пароле, либо с помощью js шлются запросы, которые выглядят как настоящие, которые выплаты подтверждают/начисляют баланс и тд. Понятное дело, что без бэка работать ничего не будет, но основная уязвимость именно на фронте