Skip to content

Commit

Permalink
在未配置Bscan的情况下不会去尝试拉取数据
Browse files Browse the repository at this point in the history
  • Loading branch information
0Chencc committed May 27, 2022
1 parent dea394b commit ea5e264
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 29 deletions.
44 changes: 42 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

## 项目描述

​ Sylas(塞拉斯)是我很喜欢的一款游戏《英雄联盟》(League of Legends)里的英雄。他在面板数值已经足够可观的情况下,其终极技能**其人之道**又能窃取其他英雄的大招为己用。我觉得塞拉斯很适合代表这个项目,我们在插件的基础功能开发完成之后,又再思考与其他项目联动的可能,尽可能地把我们手头上现有的idea跟这个项目联动融合,使Sylas成为战场上能独当一面的存在。——林晨[@0chencc](https://github.com/0chencc)
​ Sylas(塞拉斯)是我很喜欢的一款游戏《英雄联盟》(League of Legends)里的英雄。他在面板数值已经足够可观的情况下,其终极技能**其人之道**又能窃取其他英雄的终极技能为己用。我觉得塞拉斯很适合代表这个项目,我们在插件的基础功能开发完成之后,又再思考与其他项目联动的可能,尽可能地把我们手头上现有的idea跟这个项目联动融合,使Sylas成为战场上能独当一面的存在。——林晨[@0chencc](https://github.com/0chencc)

![](img/Sylas.jpeg)

Expand Down Expand Up @@ -109,8 +109,48 @@ for(String s:BurpExtender.currentRootDomainSet){

### 0x06 与Bscan的联动

#### Sylas配置

需要将配置数据库的方式修改为Mysql,按照图示进行填写配置。

![img](img/MyslqSetting.png)

在Sylas以及Bscan都配置完毕后该功能就会启用。

在配置完毕Bscan之后,需要重新连接一次Mysql数据库。查看Burp-Extender有无打印出Bscan Ready字符串,如果打印则该功能已启用。

![](img/bscanReady.png)

这项功能只在配置了Bscan以及Mysql的用户才可以体验。目前仅支持批量网站测活,效果如下。

![](img/BscanDomainAliveCheck.png)

需要在[Bscan](https://github.com/broken5/bscan/tree/sylas)的配置文件里配置塞拉斯的数据库信息,随后按照readme中的方法启动即可。
需要在[Bscan](https://github.com/broken5/bscan/tree/sylas)的配置文件里配置塞拉斯的数据库信息,随后按照readme中的方法启动即可。

#### Bscan配置

##### 0x00 初始化

```shell
./bscanSylas
```
![](img/bscanConfigure_1.png)

执行这条命令之后会报错且生成配置文件

##### 0x01 修改Config.yml文件

打开生成的Config.yml文件

在sylas字段里修改关于塞拉斯数据库的配置。

![](img/bscanConfigure_2.png)

##### 0x02 启动
直接以nohup去启动本程序,程序会在启动时在数据库中自动创建需要的表名
```shell
nohup ./bscanSylas &
```
随后程序将在每1分钟自动拉取塞拉斯数据库,进行扫描之后将扫描结果储存在数据库中,以供塞拉斯去拉取。

在最新的版本中,我们新增了与Bscan的联动,也在后续寻找跟其他工具结合的可能。Bscan一直没有开源的原因只是B哥觉得代码写得有点丑,不过这次我们在分支上进行代码开源,更强的Bscan得等下个月忙完才能更新了。
Binary file added img/MyslqSetting.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/bscanConfigure_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/bscanConfigure_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/bscanReady.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 13 additions & 11 deletions src/ui/Sylas.java
Original file line number Diff line number Diff line change
Expand Up @@ -503,17 +503,19 @@ public void loadBscanDomainAlive(String currentProject){
}
// 判断连接模式,为MYSQL时才可以用这个功能
if(BurpExtender.db.mode == DbUtil.MYSQL_DB){
BurpExtender.subDomainBscanAliveMap = BurpExtender.db.getSubDomainAlive(currentProject);
BurpExtender.similarSubDomainBscanAliveMap = BurpExtender.db.getSimilarSubDomainAlive(currentProject);
for(Map.Entry<String, HashMap<String, String>> entry: BurpExtender.subDomainBscanAliveMap.entrySet()){
BurpExtender.subDomainBscanAliveCount += 1;
HashMap<String, String> value = entry.getValue();
addAliveDomainToUI(entry.getKey(), value.get("title"),value.get("status"),value.get("rootDomain"));
}
for(Map.Entry<String, HashMap<String, String>> entry: BurpExtender.similarSubDomainBscanAliveMap.entrySet()){
BurpExtender.similarSubDomainBscanAliveCount += 1;
HashMap<String, String> value = entry.getValue();
addAliveSimilarDomainToUI(entry.getKey(), value.get("title"),value.get("status"),value.get("rootDomain"));
if(BurpExtender.db.bscanReady){
BurpExtender.subDomainBscanAliveMap = BurpExtender.db.getSubDomainAlive(currentProject);
BurpExtender.similarSubDomainBscanAliveMap = BurpExtender.db.getSimilarSubDomainAlive(currentProject);
for(Map.Entry<String, HashMap<String, String>> entry: BurpExtender.subDomainBscanAliveMap.entrySet()){
BurpExtender.subDomainBscanAliveCount += 1;
HashMap<String, String> value = entry.getValue();
addAliveDomainToUI(entry.getKey(), value.get("title"),value.get("status"),value.get("rootDomain"));
}
for(Map.Entry<String, HashMap<String, String>> entry: BurpExtender.similarSubDomainBscanAliveMap.entrySet()){
BurpExtender.similarSubDomainBscanAliveCount += 1;
HashMap<String, String> value = entry.getValue();
addAliveSimilarDomainToUI(entry.getKey(), value.get("title"),value.get("status"),value.get("rootDomain"));
}
}
}
}
Expand Down
27 changes: 11 additions & 16 deletions src/utils/DbUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,14 @@ public DbUtil(int mode){
* 数据库连接
*/
public Connection conn = null;
/**
* 当前连接的库名
*/
public String database;
/**
* bscan是否已经创建相关表
*/
public boolean bscanReady = false;
/**
* 切换数据库
*/
Expand Down Expand Up @@ -162,6 +169,10 @@ private void initMysql(String db){
ResultSet set = conn.getMetaData().getTables(db,null,"%",null);
while (set.next()){
String table = set.getString("TABLE_NAME");
if("SubDomainBscanAlive".equals(table)){
this.bscanReady = true;
BurpExtender.getStdout().println("Bscan ready");
}
tables.remove(table);
}
for (String sql:tables.values()){
Expand All @@ -171,7 +182,6 @@ private void initMysql(String db){
BurpExtender.getStderr().println(e);
}
}

/**
* 此处是用来判断是否为旧版本插件,新版本需要在subdomain以及similarDomain中加入scan字段以支持
* @param table
Expand Down Expand Up @@ -254,21 +264,6 @@ private void initSqlite(String db){
}
};
// 原先想要给sqlite增加检测url存活的功能,但是想了想实现有点麻烦。
/* //此处是用来判断是否为旧版本插件,新版本需要在subdomain中加入scan字段以支持
try {
PreparedStatement scanColumnNameCreateSql = conn.prepareStatement("select count(*) as iscreated from sqlite_master where name = 'SubDomain' and sql like '%scan%'");
ResultSet set = scanColumnNameCreateSql.executeQuery();
int isCreated = 0;
while (set.next()){
isCreated = set.getInt("iscreated");
}
if (isCreated == 0){
PreparedStatement createscanSql = conn.prepareStatement("alter table SubDomain add scan integer default 0 not null;");
createscanSql.execute();
}
} catch (SQLException e) {
e.printStackTrace();
}*/
try{
ResultSet set = conn.getMetaData().getTables(db,null,"%",null);
while (set.next()){
Expand Down

0 comments on commit ea5e264

Please sign in to comment.