B
beloff
Друзья, прощу помощи. Нужно настроить выгрузку на ftp шару на сайт файл, нигде не могу найти способы. Есть ли вообще такая возможность?
15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby
За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.
На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.
Запись на курс до 25 апреля. Получить промодоступ ...
Честно. не знаю. но да, работает на windows-платформе.это та, что намертво к винде прикручена?
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Calendar;
public class FTPUploader {
private FTPClient client = null;
private File file = null;
private InputStream inputStream = null;
//private BufferedInputStream inputStream = null;
private boolean checkLogin = false;
public boolean FTPCheckConnect(String hostname, String username, String password){
boolean result = false;
try {
result = FTPConnect( hostname, username, password );
}finally {
try {
client.disconnect();
System.out.println("Соединение с сервером разорвано...");
return result;
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
public boolean FTPDisconnect(){
boolean res = false;
try{
client.disconnect();
System.out.println("Соединение с сервером разорвано...");
res = true;
} catch (IOException e) {
e.printStackTrace();
}
return res;
}
public boolean FTPConnect(String hostname, String username, String password) {
if (client == null) {
client = new FTPClient();
}
try {
client.setControlEncoding("UTF-8");
client.enterLocalPassiveMode();
client.setBufferSize(1024000); //maybe it will raise speed
client.connect(hostname);
checkLogin = client.login(username, password);
if (checkLogin) {
System.out.println("Соединение с сервером " + hostname + " установленно...");
client.setFileType(FTP.BINARY_FILE_TYPE);
}
else {
client.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
return checkLogin;
}
public boolean loadFile( String fileName, String ftpFileName ){
boolean result = false;
if (checkLogin) {
try {
OutputStream output;
output = new FileOutputStream(fileName);
result = client.retrieveFile(ftpFileName, output);
output.flush();
output.close();
if (result){
System.out.println("Файл " + fileName + " скопирован");
}
if (client.logout()) {
System.out.println("Пользователь покинул сервер...");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
client.disconnect();
System.out.println("Соединение с сервером разорвано...");
return result;
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
public boolean uploadFile(String fileName, String uploadFolder, boolean removeAfter, int maxBackup, String mask) {
boolean result = false;
if (checkLogin) {
try {
//создаем каталог, если нужно
String [] folders = uploadFolder.split("/");
int returnCode;
for( int i = 0; i < folders.length; i++ ){
//System.out.println("i="+i+ " folder=" + folders[i] + "#");
client.changeWorkingDirectory( folders[ i ] );
returnCode = client.getReplyCode();
if (returnCode == 550) {
client.makeDirectory( folders[ i ] );
client.changeWorkingDirectory( folders[ i ] );
}
}
file = new File(fileName);
inputStream = new FileInputStream(file);
client.changeWorkingDirectory( uploadFolder );
String uploadName = fileName.substring( fileName.lastIndexOf('\\') + 1, fileName.length() );
//System.out.println("uploadName=" + uploadName);
result = client.storeFile(uploadName, inputStream);
System.out.println("Файл " + fileName + " загружен");
//удаляем лишнее, закомментил и удалил отсюда, бо кроме меня никому не надо
//removeLastNFiles( uploadFolder, mask, maxBackup);
if (client.logout()) {
System.out.println("Пользователь покинул сервер...");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (inputStream != null) {
inputStream.close();
}
if (removeAfter && (file != null)) {
System.out.println("Удаление "+ file.getPath());
if (file.delete()){
System.out.println("Удалено...");
}else{
System.out.println("Не удалено...");
}
}
client.disconnect();
System.out.println("Соединение с сервером разорвано...");
return result;
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
}
Use "FTPClient"
UseLSX "*javacon"
Sub UploadToFTP( username As String, password As String, ftpIP As String, uploadDir As String, myfilepath As String,_
backupMax As Integer, mask As String )
%REM
KB071216
%END REM
Dim mySession As JavaSession
Dim myClass As JavaClass
Dim client As JavaObject
Dim answer As Boolean
Dim myfilename As String
On Error GoTo ErrHandler
myfilename = StrRightBack( myfilepath, "\" )
Set mySession = New JavaSession()
Set myClass = mySession.GetClass("FTPUploader")
Set client = myClass.CreateObject()
answer = client.FTPConnect( ftpIP, username, password )
If answer = True Then
msgbox "Connected"
Else
msgbox "Not Connected"
Exit Sub
End If
mask = GetRegExpByDbName( mask )
answer = client.uploadFile( myfilepath, uploadDir, False, backupMax, mask )
If Not answer Then Error 09, {FTP upload error:} & ftpIP
cleanup:
Exit Sub
ErrHandler:
msgbox "Sub UploadToFTP >> Error " & Error & " on " & Erl
Resume cleanup
End Sub
%REM
Function GetRegExpByDbName
Description: создаем регулярку для проверки на фтп
%END REM
Function GetRegExpByDbName( dbFileName As string ) As String
Dim res As String
Dim filename As String
Dim ext As String
GetRegExpByDbName = ""
filename = StrLeftBack( dbFileName, "." )
ext = StrRightBack( dbFileName, "." )
res = "^(" & Replace( filename, " ", "\s" ) & ")\d{8}(\." & ext & ")$"
GetRegExpByDbName = res
End Function
еще надо апачевскую либу копировать (в jvm/lib/ext)Написано не мной через яву
в моем случае jar-ник commons-net-3.3.jar покладен прямо в ява библиотеке в раздел Archiveеще надо апачевскую либу копировать (в jvm/lib/ext)
при запуске из агентов - будет глючатьв моем случае jar-ник commons-net-3.3.jar покладен прямо в ява библиотеке в раздел Archive
эээ, точно? Оно собственно на стороне сервера и работает. Жалоб не поступалопри запуске из агентов - будет глючать
апачевские либы используют синглтоны и свои логгеры, агенты используют модель запуска нарушающей эту логику...эээ, точно? Оно собственно на стороне сервера и работает. Жалоб не поступало
Обучение наступательной кибербезопасности в игровой форме. Начать игру!