Неграмотный код сайта может допускать исполнение SQL-команд посетителями сайта, например если при регистрации пользователя на сайте его имя вставляется в строку SQL команды добавления пользователя без экранирования.
В таком случае злоумышленник может вместо своего имени ввести набор символов, завершающих команду добавления пользователя, и добавить ещё одну команду, уже свою, например удаляющую содержимое всей базы данных.
Это проблема чисто программная и в нормальном софте не встречается.
Например, на сайте есть поиск. Кейворд передается через гет параметр, например так: site.zone/?search=shade
Вы пробуете отправить кавычку или апостроф. А сайт, например, отдает пустую страницу или еще веселее ошибку MySQL прямо на странице.
Это значит, что там ничего не экранируется и в коде что-то типа: SELECT * FROM posts WHERE content LIKE “%keyword%"
Все. Ставим кавычку в наш запрос, закрывая предыдущий, точку с запятой и пишем следующий. Например, пытаемся найти список таблиц MySQL, если прав нет, то перебираем, типа users и т.д. Потом ищем админа, пароль. Если там md5, а соли нет, то подбираем по таблице и входим.
Это самый простой вариант вкратце, но примерно так.
Как именно действует SQL инвекция? Как ее запускают в сайт или срм?
Неграмотный код сайта может допускать исполнение SQL-команд посетителями сайта, например если при регистрации пользователя на сайте его имя вставляется в строку SQL команды добавления пользователя без экранирования.
В таком случае злоумышленник может вместо своего имени ввести набор символов, завершающих команду добавления пользователя, и добавить ещё одну команду, уже свою, например удаляющую содержимое всей базы данных.
Это проблема чисто программная и в нормальном софте не встречается.
Например, на сайте есть поиск. Кейворд передается через гет параметр, например так:
site.zone/?search=shade
Вы пробуете отправить кавычку или апостроф. А сайт, например, отдает пустую страницу или еще веселее ошибку MySQL прямо на странице.
Это значит, что там ничего не экранируется и в коде что-то типа:
SELECT * FROM posts WHERE content LIKE “%keyword%"
Все. Ставим кавычку в наш запрос, закрывая предыдущий, точку с запятой и пишем следующий. Например, пытаемся найти список таблиц MySQL, если прав нет, то перебираем, типа users и т.д. Потом ищем админа, пароль. Если там md5, а соли нет, то подбираем по таблице и входим.
Это самый простой вариант вкратце, но примерно так.