Skip to content

Commit

Permalink
FileCopy + Directories, security fix
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed May 11, 2017
1 parent 2e3a71e commit fa6bded
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
Expand Up @@ -78,6 +78,13 @@ public void execute(final ScriptEntry scriptEntry) throws CommandExecutionExcept
scriptEntry.addObject("success", new Element("false"));
return;
}

if (!Utilities.isSafeFile(o)) {
dB.echoError(scriptEntry.getResidingQueue(), "Can't copy files from there!");
scriptEntry.addObject("success", new Element("false"));
return;
}

if (!Utilities.isSafeFile(d)) {
dB.echoError(scriptEntry.getResidingQueue(), "Can't copy files to there!");
scriptEntry.addObject("success", new Element("false"));
Expand All @@ -93,7 +100,12 @@ public void execute(final ScriptEntry scriptEntry) throws CommandExecutionExcept
if (dexists && !disdir) {
d.delete();
}
FileUtils.copyFile(o, d);
if (o.isDirectory()) {
FileUtils.copyDirectory(o, d);
}
else {
FileUtils.copyFile(o, d);
}
scriptEntry.addObject("success", new Element("true"));
}
catch (Exception e) {
Expand Down
Expand Up @@ -252,6 +252,10 @@ public void execute(final ScriptEntry scriptEntry) throws CommandExecutionExcept
dB.echoError("File cannot be found!");
return;
}
if (!Utilities.isSafeFile(file)) {
dB.echoError(scriptEntry.getResidingQueue(), "Cannot load that file!");
return;
}
try {
FileInputStream fis = new FileInputStream(file);
String str = ScriptHelper.convertStreamToString(fis);
Expand Down
Expand Up @@ -16,6 +16,7 @@
import net.aufdemrand.denizen.scripts.containers.core.AssignmentScriptContainer;
import net.aufdemrand.denizen.tags.BukkitTagContext;
import net.aufdemrand.denizen.utilities.DenizenAPI;
import net.aufdemrand.denizen.utilities.Utilities;
import net.aufdemrand.denizen.utilities.debugging.dB;
import net.aufdemrand.denizen.utilities.depends.Depends;
import net.aufdemrand.denizencore.DenizenCore;
Expand Down Expand Up @@ -447,6 +448,10 @@ public void serverTag(ReplaceableTagEvent event) {
dB.echoError(e);
return;
}
if (!Utilities.isSafeFile(f)) {
dB.echoError("Invalid path specified. Invalid paths have been denied by the server administrator.");
return;
}
event.setReplaced(new Element(f.exists()).getAttribute(attribute.fulfill(1)));
return;
}
Expand All @@ -473,6 +478,10 @@ public void serverTag(ReplaceableTagEvent event) {
dB.echoError(e);
return;
}
if (!Utilities.isSafeFile(folder)) {
dB.echoError("Invalid path specified. Invalid paths have been denied by the server administrator.");
return;
}
File[] files = folder.listFiles();
if (files == null) {
return;
Expand Down

0 comments on commit fa6bded

Please sign in to comment.