Skip to content

Commit

Permalink
优先检测当前插件 jar 包所在目录下是否存在 OneScan 目录,如果存在,将使用该目录作为工作目录
Browse files Browse the repository at this point in the history
  • Loading branch information
vaycore committed Oct 27, 2023
1 parent 4a3e7f1 commit 7f17902
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 7 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Extender -> Extensions -> Add -> Select File -> Next

![](imgs/install_success.png)

插件配置文件存放路径如下
插件配置文件默认存放路径如下(优先检测当前插件 jar 包所在目录下是否存在 `OneScan` 目录,如果存在,将使用该目录作为工作目录;否则,使用如下路径作为工作目录)

```text
linux、macOS:
Expand Down
15 changes: 14 additions & 1 deletion src/main/java/burp/BurpExtender.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import java.net.InetAddress;
import java.net.URL;
import java.net.UnknownHostException;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
Expand Down Expand Up @@ -88,7 +89,7 @@ private void initData(IBurpExtenderCallbacks callbacks) {
// 初始化日志打印
Logger.init(Constants.DEBUG, mCallbacks.getStdout(), mCallbacks.getStderr());
// 初始化默认配置
Config.init();
Config.init(getWorkDir());
// 初始化域名辅助类
DomainHelper.init("public_suffix_list.json");
// 初始化HaE插件
Expand All @@ -99,6 +100,18 @@ private void initData(IBurpExtenderCallbacks callbacks) {
this.mCallbacks.registerMessageEditorTabFactory(this);
}

/**
* 获取工作目录路径(优先获取当前插件 jar 包所在目录配置文件,如果配置不存在,则使用默认工作目录)
*/
private String getWorkDir() {
String workDir = Paths.get(mCallbacks.getExtensionFilename())
.getParent().toString() + File.separator + "OneScan" + File.separator;
if (FileUtils.isDir(workDir)) {
return workDir;
}
return null;
}

private void initQpsLimiter() {
// 检测范围,如果不符合条件,不创建限制器
int limit = StringUtils.parseInt(Config.get(Config.KEY_QPS_LIMIT));
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/burp/vaycore/onescan/OneScan.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public static void main(String[] args) {

private static void initTestModule() {
Logger.init(true, System.out, System.err);
Config.init();
Config.init(null);
}

private static void initUIStyle() {
Expand Down
14 changes: 10 additions & 4 deletions src/main/java/burp/vaycore/onescan/common/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,16 @@ public class Config {
public static final String KEY_ENABLE_REPLACE_HEADER = "enable-replace-header";
public static final String KEY_ENABLE_DIR_SCAN = "enable-dir-scan";
public static final String KEY_ENABLE_MERGE_PAYLOAD_PROCESSING = "merge-payload-processing";
private static ConfigManager sConfigManager;
private static String sConfigPath;
// 配置常量值
public static final String DIRECT_LEFT = "left";
public static final String DIRECT_RIGHT = "right";

public static void init() {
private static String sWorkDir;
private static String sConfigPath;
private static ConfigManager sConfigManager;

public static void init(String wordDir) {
sWorkDir = wordDir;
sConfigPath = getWorkDir() + "config.json";
sConfigManager = new ConfigManager(sConfigPath);
initDefaultConfig(Config.KEY_VERSION, Constants.PLUGIN_VERSION);
Expand Down Expand Up @@ -122,7 +125,7 @@ private static void upgradeDomain() {
boolean state = FileUtils.writeFile(sConfigPath, configJson);
if (state) {
Logger.info("Replace all {{mdomain}} to {{domain.name}} ok!");
init();
init(sWorkDir);
}
}
}
Expand Down Expand Up @@ -192,6 +195,9 @@ private static void checkInit() {
}

public static String getWorkDir() {
if (StringUtils.isNotEmpty(sWorkDir) && FileUtils.isDir(sWorkDir)) {
return sWorkDir;
}
return PathUtils.getUserHome() + ".config" + File.separator + "OneScan" + File.separator;
}

Expand Down

0 comments on commit 7f17902

Please sign in to comment.