- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Запустили городской сайт, дали рекламу на бордах, радио, расклеили обьявления по всему городу, вобщем подошли к этому делу серьезно, и вот 1 местный умелец начал нас атаковать, добавлять в раздел обьявления и вакансии города записи вида "тест админ" во всех полях а в поле айди юзер было написано "0" мы поставили сесию на обработчик добавления (было упущение) и он зарегался и продолжил. так мы убедились что дырка действительно в этом файле, и + споймали его айпи, сейчас забанили. но на этом айпи целая сеть юзеров сидит с нашего города. так что нам срочно нужно исправить ситуацию. Если кого не затруднит прошу помощи, посмотрите пожалуйста файлик обработчик и если не сложно добавьте защиту. Вот ссылка на обработчик http://magic-8-ball.net/send.rar добавление идет аяксом, там 2 одинаковых сценария, 1 для если отклучен яваскрипт. Надеюсь мир не без добрых людей, поэтому за ранее большое спасибо, если кто-то решит отвлечся от дел и глянуть. Просто я незнаю какую проверку добавить.
Это просто... габелла. Бессмысленная и беспощадная логика - if (isset($_POST['id_user_a'])) {$id_user_a = $_POST['id_user_a']; if ($id_user_a == '') {unset($id_user_a);}} И все остальное в том же духе.
id-шники - intval
остальное - htmlspecialchars (если не нужен html и нет обработки от xss) + mysql_real_escape_string
Это просто... габелла. Бессмысленная и беспощадная логика - if (isset($_POST['id_user_a'])) {$id_user_a = $_POST['id_user_a']; if ($id_user_a == '') {unset($id_user_a);}} И все остальное в том же духе.
id-шники - intval
остальное - htmlspecialchars (если не нужен html и нет обработки от xss) + mysql_real_escape_string
Спасибо большое, но я как бы не дорос еще чтобы вас понять, а точнее я понимаю вродибы. но на риализацию (методом народного тыка) у меня уйдет несколько дней, а мы уже устали перезаливать бекап, вот я и пишу тут, чтоб на примере может кто покажет, а ответы типа: юзай тото и тото, я как бы плохо понимаю, то на что я гаразд в данный момент вы я думаю увидили.
Нда, я такого уже ну ОЧЕНЬ давно не видел :0
если юзер_айди идет тим интеджер, то достаточно
или
в остальных случаях
а вот это переписать так
if (isset($_POST['text_a'])) {$text_a = $_POST['text_a']; if ($text_a == '') {unset($text_a);}}на
а еще лучше сразу с $_POST['text_a'] работать, а не плодить переменные
Нда, я такого уже ну ОЧЕНЬ давно не видел :0
Это я с перепугу подабовлял...
Спасибо большое, я все сделал и перезалил архив, но это как я панимаю просто "почистил код", а меня атакуют sql иньекциями через этот обработчик, я не могу понять как? Я нашел такой код. нужен ли он мне в обработчике? Или это только для гет запросов и если нужен то как его внедрить?
if (!preg_match("|^[\d]+$|", $id)) {header("Location: index.php");
exit("<p>You hacker?</p>");
}
Так чтоли?
if (!preg_match("|^[\d]+$|", $id_user_a, $ip_user_a, $id_class_a, $tip_class_a, $header_a, $contact_a, $text_a, $date_end_a)) {header("Location: index.php");
exit("<p>You hacker?</p>");
}
Кстати "hacker" уже отписал вконтакте, хочет денег... (пока только намекает) обидно, в одном городе живем...
Zion-i2, как-то так http://pastebin.com/yZBCDiWm
а меня атакуют sql иньекциями через этот обработчик, я не могу понять как?
При всем говнокодости этого говнокода, инъекцию здесь не возможно провести.
Кстати "hacker" уже отписал вконтакте, хочет денег... (пока только намекает) обидно, в одном городе живем...
[offtop]
"Да на кол его" (с)
----
Вспомнил название недавней темы
[/offtop]
При всем говнокодости этого говнокода, инъекцию здесь не возможно провести.
Я тоже так думал, пока в поле для текста обьявления не добавил вот этот простой и безобидный запрос
то есть я заполнин все поля а в поле для текста этот запрос, и добавилось обьявление со всеми полями пустыми, только дата добавления была прописана и нули там где айдишники.... а это
<?php
$result = mysql_query("INSERT INTO announce_data (id_class_a, id_user_a, header_a, contact_a, text_a, date_add_a, date_end_a, tip_class_a) VALUES ('$id_class_a', '$id_user_a', '$header_a', '$contact_a', '$text_a', '$date_add_a', '$date_end_a', '$tip_class_a')");
?>
должно было вывестись как простой текст, вобщем я изучяя эти sql иньекции пол ночи, понял что у меня формы дырявые и он через них делал запросы.
UPD: Все работает, теперь все сценарии добавляются как текст. Но у него какойто софт так как он добавлял по 100 обьявлений чють ли не в секунду. теперь думаем как сделать ограничение на добавление обьявлений например максимум 3 в сутки с одного айпи.
Если хакер живет по соседству - накатать на него заяву в полицию. И выложить на сайте скан заявы. Школьник этот испугается, получит ремня от родителей. А у вас будет больше времени на поиск и устранение уязвимостей.
олько дата добавления была прописана и нули там где айдишники.... а это
Естественно нули, если у вас айдишник поле int, а переменную вы не приводите к типу int. Что будет если передать в качестве ид строку?.. (риторический вопрос)
Кстати "hacker" уже отписал вконтакте, хочет денег... (пока только намекает) обидно, в одном городе живем...
Не знаю целиком вашей ситуации но похоже вы адов неадекват.
Бюджет на рекламу есть:
Запустили городской сайт, дали рекламу на бордах, радио, расклеили обьявления по всему городу, вобщем подошли к этому делу серьезно
Ну ладно в целях "экономии" на кодере сэкономили что норм в принципе, но человек набивается в тестеры, не зловредит, в открытую записи со словом "тест" создает подавая сигналы о проблеме.
Дайте ему немного бобла с полным раскрытием инфы что накопал, не жмотьтесь, и скажите спасибо что в этот раз он а не кто-то другой который вам дороже обойдется.