webMAN-MOD icon indicating copy to clipboard operation
webMAN-MOD copied to clipboard

1.47.42 FTP server "parse error!"

Open zerthimon opened this issue 2 years ago • 7 comments

Fresh CFW 4.89 Evilnat Cobra CEX Installed wMM 1.47.42. Trying to connect via FTP and get:

ftp> o
(to) 192.168.1.42
Connected to 192.168.1.42.
220 webMANftpd 1.47.42 MOD [NTFS:0]
Name (192.168.1.42:user): anonymous
331 OK
Password: 
230 OK
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
202 OK
parse error!
ftp>

Is there anything I'm missing here?

zerthimon avatar Sep 16 '22 21:09 zerthimon

Try a different FTP Client. FileZilla is one of the most popular FTP clients reported to be compatible with webMAN MOD.

Using FTP in Windows works without issues: image

aldostools avatar Sep 16 '22 21:09 aldostools

Hmm, well, weird. This is linux ftp client I'm using with many FTP servers...

zerthimon avatar Sep 16 '22 21:09 zerthimon

Maybe that client is translating LS to an unsupported FTP command.

The internal FTP commands supported for directory listing are: "MLSD", "LIST", "MLST", "NLST"

This is the source code of the FTP server if you want to inspect it: https://github.com/aldostools/webMAN-MOD/blob/master/include/ftp.h

aldostools avatar Sep 16 '22 22:09 aldostools

Thanks!

zerthimon avatar Sep 16 '22 22:09 zerthimon

This problem seems to exist because of 'EPSV' is not supported. Turning it off in client seems to help.

$ ftp -d
ftp> o
(to) 192.168.1.42
setupsockbufsize: rcvbuf_size determined as 131072
setupsockbufsize: sndbuf_size determined as 16384
Connected to 192.168.1.42.
220 webMANftpd 1.47.42 MOD [NTFS:0]
ftp_login: user `<null>' pass `<null>' host `192.168.1.42'
Name (192.168.1.42:zerth): anonymous
---> USER anonymous
331 OK
Password: 
---> PASS XXXX
230 OK
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
---> FEAT
211-Ext:
 REST STREAM
 PASV
 PORT
 CDUP
 ABOR
 PWD
 TYPE
 SIZE
 SITE
 APPE
 LIST
 MLSD
 MDTM
 MFMT
 MLST type*;size*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;
211 End
features[FEAT_FEAT] = 1
features[FEAT_MDTM] = 1
features[FEAT_MLST] = 1
features[FEAT_REST_STREAM] = 1
features[FEAT_SIZE] = 1
features[FEAT_TVFS] = 0
updatelocalcwd: got `/home/zerth'
ftp> epsv
EPSV/EPRT on IPv4 off.
EPSV/EPRT on IPv6 off.
ftp> ls
ftp: setsockopt SO_DEBUG (ignored): Permission denied
---> PASV
227 Entering Passive Mode (192,168,1,42,226,248)
---> LIST
150 OK
dr-xr-xr-x 1 root  root              0 Dec 31 23:59 .
drwxrwxrwx 1 root  root              0 Sep 30 13:28 app_home
drwx--x--x 1 root  root        6848512 Jan 01 00:00 dev_flash
drwx--x--x 1 root  root       16187392 Jan 01 00:00 dev_flash2
drwx--x--x 1 root  root         153088 Jan 01 00:00 dev_flash3
drwxr-xr-x 1 root  root   106583412736 Sep 18 17:33 dev_hdd0
drwx--x--x 1 root  root    83440304128 Dec 31 21:00 dev_usb001
drwxrwxrwx 1 root  root              0 Sep 30 13:28 dev_bdvd
226 [/] [CPU: 69 �C | RSX: 71 �C]
ftp> 

zerthimon avatar Sep 30 '22 13:09 zerthimon

Thank you for your feedback. EPSV/EPRT are not supported commands. Use PASV/PORT.

aldostools avatar Sep 30 '22 18:09 aldostools

This problem seems to exist because of 'EPSV' is not supported. Turning it off in client seems to help.

Thanks @zerthimon !!! I am writing some code to automatically move some files from NAS to the PS3 and ran into this issue as well. Works like a charm, thank you!

deadpahn avatar Apr 16 '23 14:04 deadpahn