LINUX.ORG.RU
ФорумTalks

Никак не выходит SQL-инъекция :)


0

1

Заказчик тут не верит, что его код, вида:

$sql= "SELECT * FROM $tableacat1 where id='$_GET[mcat]'" ; 
$resultat=mysql_query($sql);
опасен.

Захотелось ему показать уязвимость на практике.

И обломался.

Понятно, что первое, приходящее в голову - это ссылка вида:

....php?mcat='; INSERT INTO publications;

Но MySQL обламывает на " INTO publications".

Походу, чтение мана показало, что в PHP в mysql_query с некоторых пор запретили мультизапросы.

Есть ещё варианты, как попугать? А то как-то некузяво выходит. Шухер поднял, а такая явная инъекция не работает :)

★★★★★

Ответ на: комментарий от snizovtsev

Ага, запрос вида

....php?mcat=1'+AND+BENCHMARK(10,BENCHMARK(10,MD5(%22a%22)))%20AND%20'

переварил :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от zhiltsov

>найди в коде аналогично сделаный UPDATE, DELETE, INSERT и подставь какойнибудь ' OR 1=1

Искал уже. Оно, сцуко, никаких нужных таблиц так не меняет :)

...

Поясню. Есть заказчик. Заказал сайт. Сделали. Поддерживаем. Но на мелкую подработку-расширение, за которую мы брались за 10000руб (и один вечер работы), они нашли каких-то «крутых веб-строителей» (сайт их я вычислил), которые сделали работу за 5000р :)

Но в коде которых (какая-то своя мелкая CMS) полно указанного выше кода.

Заказчик уже припугнут (слава Богу, нам верят на слово :)), но хочется добить окончательно.

Проблема в том, что эта подработка касается только работы со статическими файлами, а все update/delete работают с их таблицами, которые в системе есть, но не используются.

Подмена же таблиц на свои невозможна. Они там предусмотрели «китайским методом»:

if ($_GET[type]=='cat1') {$table="$tableacat1";}
elseif ($_GET[type]=='cat2') {$table="$tableacat2";}
elseif ($_GET[type]=='cat3') {$table="$tableacat3";}
elseif ($_GET[type]=='pub') {$table="$tablepub";}

...

Потом:

DELETE FROM $table where id='$_GET[id]'

В одно касание можно бы было убить контент любой из их таблиц, но эти таблицы не используются :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от anon111

>за еду годишь, небось?

Не я за еду «кодю», а те, кто такой код писали ;) Я же с этого проекта три своих месячных зарплаты срезал в прошлом году за пару месяцев побочной работы...

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от cobold

Кстати, не совсем понятно. Запустил 5 экземпляров этого benchmark, все пять висят и думают, а в списке mysql-процессов - только один указан. Естественно, что сайту это никак не вредит, грузится как ни в чём ни бывало.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от Gorthauer

Там поля таблиц все разные. И даже если вытащить... в лучшем случае будут вытянуты md5 паролей. А толку? :) коллизии потом подбирать? :)

...

В общем, в отчёте указал в качестве примера только BENCHMARK...

KRoN73 ★★★★★
() автор топика

>чтение мана показало, что в PHP в mysql_query с некоторых пор запретили мультизапросы

Серьезно?!! :-))) Е-моё, к чему мир катится...

sabonez ★☆☆☆
()
Ответ на: комментарий от sabonez

Да. Это серьёзный удар по профессионалам :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

> DELETE FROM $table where id='$_GET[id]'

Например, id=1' OR id > 1 --

shimon ★★★★★
()
Ответ на: комментарий от KRoN73

> Проблема в том, что эта подработка касается только работы со статическими файлами, а все update/delete работают с их таблицами, которые в системе есть, но не используются.

Стоп, но зачем-то таблицы нужны. Они на эти файлы ссылаются? Позаменять ссылки на /etc/passwd или еще какую подобную хрень.

shimon ★★★★★
()
Ответ на: комментарий от shimon

>Стоп, но зачем-то таблицы нужны

Пока - не зачем. Ребята просто развернули свою CMS. Видимо в расчёте на то, что переманят у нас заказчика своими ценами :)

KRoN73 ★★★★★
() автор топика

проще всего через UNION показать вытаскивание каких-нибудь конфиденциальных данных (аккаунт админа и т.д.) ну и если 5.1 то показать пример выборки имён таблиц/колонок + дампа данных

theli
()
Ответ на: комментарий от theli

Да, я тоже про файловую работу думал. Но громоздко и лениво :)

KRoN73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.