@HellWalk

Как найти уязвимость в самописном велосипеде?

В свободное от основной работы (SEO-оптимизатор) время изучаю бек-энд и пилю самописный велосипед: walkweb.ru/cms (пока исключительно в учебных целях, ни на что серьезное этот самокат не претендует)

Размещал ссылки на php-форумах, и сегодня обнаружил, что один посетитель смог:
1) разместить посты от имени пользователя, за которого невозможно зайти (не буду углубляться в детали почему);
2) разместить посты таким образом, чтобы его аккаунт не получал опыт и золото, хотя в коде этот функционал находится на соседних строчках (добавление поста -> проверка успешного ответа -> добавление золота и опыта аккаунту).

Складывается ощущение, что был получен прямой доступ к MySQL бд, но: 1) как? 2) почему бы просто не удалить бд?

Что в плане безопасности сделано на сайте:
1) экранированы знаки < >
2) все запросы к бд идут через prepare

Было бы здорово, если кто-то сможет сделать аналогичный "финт ушами" и расскажет как он это сделал.
  • Вопрос задан
  • 511 просмотров
Пригласить эксперта
Ответы на вопрос 6
Frankenstine
@Frankenstine
Сисадмин
Складывается ощущение, что был получен прямой доступ к MySQL бд, но: 1) как?

Очевидно, где-то у вас возможна sql injection.
Ответ написан
Noizefan
@Noizefan
Нет нет и нет.
Фильтровать нужно все, абсолютно все данные, которые могут прийти от пользователя. Представьте, что посетители Вашего сайта - исключительно хацкеры. Пишите код исключительно с этим условием.
Ответ написан
Комментировать
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Смотрите логи запросов
Ответ написан
1) разместить посты от имени пользователя, за которого невозможно зайти (не буду углубляться в детали почему);
Автор ид поле в форме обавления статьи вам не говорит о возможности вручную проставить ид автора?
Ответ написан
@grisbi
Из не критичных ошибок, у вас недостаточная фильтрация входящих данных, например:
http://walkweb.ru/cms/post.php?p[]
http://walkweb.ru/cms/profile.php?user[]
http://walkweb.ru/cms/profile.php?list[]
и так далее
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы