Skip to content

Commit

Permalink
update 1.7.2
Browse files Browse the repository at this point in the history
  • Loading branch information
qiwentaidi committed Nov 15, 2024
1 parent c18b3ff commit 27b60a4
Show file tree
Hide file tree
Showing 22 changed files with 99 additions and 107 deletions.
28 changes: 12 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,19 +78,23 @@ create-dmg --volname "Slack" --window-pos 200 120 --window-size 800 400 --icon-s

# 特色功能介绍

## 端口扫描
## 网站扫描

可以联动网站扫描以及协议爆破
目前内置8800+指纹,3100+POC,引擎使用的Nuclei v3,得益于Nulcei强大的社区及丰富的POC易用可扩展,以及多种格式报告导出。

![image-20240928220948717](assets/image-20240928220948717.png)
![image-20241115124501303](assets/image-20241115124501303.png)

## 网站扫描
![image-20241115125324700](assets/image-20241115125324700.png)

![image-20241115130810507](assets/image-20241115130810507.png)

![image-20241115131038135](assets/image-20241115131038135.png)

目前内置8700+指纹,3000+POC,易用可扩展
## 目录扫描

![image-20241006193512657](assets/image-20241006193512657.png)
完美兼容dirsearch常用参数和supersearchplus的查看响应包功能,以及对重复出现的响应包长度进行了过滤,便于查看。

![image-20240929152018714](assets/image-20240929152018714.png)
![image-20241115131626314](assets/image-20241115131626314.png)

## 公司信息查询

Expand All @@ -100,8 +104,6 @@ create-dmg --volname "Slack" --window-pos 200 120 --window-size 800 400 --icon-s

![image-20240907180805041](assets/image-20240907180805041.png)

![image-20240907202829701](assets/image-20240907202829701.png)

## 空间搜索

`FOFA``Hunter``Quake`查询功能,保留搜索提示、语法收藏以及数据可视性的同时,增加特色功能区,减少数据导出操作。
Expand All @@ -110,12 +112,6 @@ create-dmg --volname "Slack" --window-pos 200 120 --window-size 800 400 --icon-s

![image-20240907172244822](assets/image-20240907172244822.png)

![image-20240907172356305](assets/image-20240907172356305.png)

![image-20240907172750605](assets/image-20240907172750605.png)

![image-20240907173203880](assets/image-20240907173203880.png)

## 数据库自动取样

对敏感列名以及数据内容进行匹配,内容支持身份证、手机号、AKSK信息匹配。
Expand All @@ -140,7 +136,7 @@ create-dmg --volname "Slack" --window-pos 200 120 --window-size 800 400 --icon-s

用于管理繁琐的脚本,可以自定义启动命令,支持`cmd`打开文件所在命令行、`java``java -jar`命令启动`java GUI`应用、`App`打开`exe GUI`

![image-20240907234517306](assets/image-20240907234517306.png)
![image-20241115130109041](assets/image-20241115130109041.png)

可视化日志(右上角终端符号打开)

Expand Down
Binary file removed assets/image-20240907172356305.png
Binary file not shown.
Binary file removed assets/image-20240907172750605.png
Binary file not shown.
Binary file removed assets/image-20240907173203880.png
Binary file not shown.
Binary file removed assets/image-20240907180958652.png
Binary file not shown.
Binary file removed assets/image-20240907182300219.png
Binary file not shown.
Binary file removed assets/image-20240907202829701.png
Binary file not shown.
Binary file removed assets/image-20240907234517306.png
Binary file not shown.
Binary file removed assets/image-20240928220948717.png
Binary file not shown.
Binary file removed assets/image-20240929152018714.png
Binary file not shown.
Binary file removed assets/image-20241006193512657.png
Binary file not shown.
Binary file added assets/image-20241115124501303.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 assets/image-20241115125324700.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 assets/image-20241115130032907.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 assets/image-20241115130109041.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 assets/image-20241115130810507.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 assets/image-20241115131038135.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 assets/image-20241115131626314.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
58 changes: 31 additions & 27 deletions core/webscan/rule.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ func NewConfig() *InitConfig {
return &InitConfig{}
}

var fps map[string]interface{}

type FingerPEntity struct {
ProductName string
AllString string
Expand Down Expand Up @@ -53,37 +51,43 @@ func (ic *InitConfig) InitFingprintDB(ctx context.Context, fingerprintFile strin
if err != nil {
return err
}
fps = make(map[string]interface{})

fps := make(map[string]interface{})
if err := yaml.Unmarshal(data, &fps); err != nil {
return err
}

m := make(map[string][]string)
err = yaml.Unmarshal(data, &fps)
if err == nil {
for productName, rulesInterface := range fps {
for _, ruleInterface := range rulesInterface.([]interface{}) {
ruleL, ok := ruleInterface.(string)
if !ok {
fmt.Printf("指纹规则格式错误,产品名称为[%s],规则为[%v]", productName, ruleInterface)
continue
}
_, ok = m[productName]
if ok {
f := m[productName]
if util.GetItemInArray(f, ruleL) == -1 {
f = append(f, ruleL)
}
m[productName] = f
} else {
m[productName] = []string{ruleL}
}
for productName, rulesInterface := range fps {
rules, ok := rulesInterface.([]interface{})
if !ok {
fmt.Printf("Invalid fingerprint format for product [%s], rules [%v]\n", productName, rulesInterface)
continue
}

for _, ruleInterface := range rules {
rule, ok := ruleInterface.(string)
if !ok {
fmt.Printf("Invalid rule format for product [%s], rule [%v]\n", productName, ruleInterface)
continue
}

if !util.ArrayContains(rule, m[productName]) {
m[productName] = append(m[productName], rule)
}
}
} else {
return err
}
for productName, ruleLs := range m {
for _, ruleL := range ruleLs {
FingerprintDB = append(FingerprintDB, FingerPEntity{ProductName: productName, Rule: ParseRule(ruleL), AllString: ruleL})

for productName, ruleList := range m {
for _, rule := range ruleList {
FingerprintDB = append(FingerprintDB, FingerPEntity{
ProductName: productName,
Rule: ParseRule(rule),
AllString: rule,
})
}
}

return nil
}
func (ic *InitConfig) InitActiveScanPath(activefingerFile string) error {
Expand Down
4 changes: 1 addition & 3 deletions frontend/src/components/Titlebar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,7 @@ function setTitle(path: string) {
const searchFilter = ref("");
const filteredOptions = computed(() => {
if (!searchFilter.value) {
return onlineOptions;
}
if (!searchFilter.value) return onlineOptions;
return onlineOptions.map((group) => ({
...group,
value: group.value.filter((item) =>
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/global/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ const Logger = reactive({
length: 100, // 日志显示条数
})

const LOCAL_VERSION = "1.7.1"
const LOCAL_VERSION = "1.7.2"

const Language = ref("zh")
const Theme = ref(false)
Expand Down
114 changes: 54 additions & 60 deletions frontend/src/views/AppStarter.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script lang="ts" setup>
import { ElMessage, ElMessageBox } from "element-plus";
import { reactive, ref, h } from "vue";
import { DeleteFilled, Edit, FolderOpened, Document, Menu, InfoFilled } from "@element-plus/icons-vue";
import { reactive, ref, h, computed } from "vue";
import { DeleteFilled, Edit, FolderOpened, Document, Menu, WarningFilled } from "@element-plus/icons-vue";
import { onMounted } from "vue";
import { OnFileDrop } from "wailsjs/runtime/runtime";
import { Path, GetLocalNaConfig, InsetGroupNavigation, InsetItemNavigation, OpenFolder, SaveNavigation, RunApp, FileDialog, OpenTerminal } from "wailsjs/go/main/File";
Expand Down Expand Up @@ -66,10 +66,21 @@ const config = reactive({
editChild: {} as structs.Children,
editGroupName: "", // 正在被编辑的组名
addItemDialog: false,
tipsDialog: false,
})
const searchFilter = ref("")
const filteredGroups = computed(() => {
if (!searchFilter.value) return localGroup.options.value; // 如果没有搜索关键词,返回所有组
return localGroup.options.value.filter(group => {
// 检查组内是否有元素包含搜索关键词
return group.Children?.some(item => item.Name.includes(searchFilter.value)) || false;
});
});
const localGroup = ({
options: ref([] as structs.Navigation[]),
options: ref<structs.Navigation[]>([]),
openGroup: ["CMD", "APP", "JAR"],
getGroupNames: function () {
return localGroup.options.value.map(item => item.Name)
Expand All @@ -94,8 +105,8 @@ const localGroup = ({
},
addGroup: function () {
ElMessageBox.prompt('请输入名称(不能重名)', "添加分组", {
confirmButtonText: 'OK',
cancelButtonText: 'Cancel',
confirmButtonText: '确认',
cancelButtonText: '取消',
inputPattern: /.+/,
inputErrorMessage: "Group name can't be empty",
})
Expand Down Expand Up @@ -210,20 +221,37 @@ const localGroup = ({
},
})
function handDivContextMenu(e: MouseEvent) {
function handleCardContextMenu(e: MouseEvent, groups: any) {
//prevent the browser's default menu
e.preventDefault();
//show our menu
ContextMenu.showContextMenu({
x: e.x,
y: e.y,
items: [
{
label: "添加元素",
icon: h(tagIcon, defaultIconSize),
onClick: () => {
config.addItemDialog = true
}
},
{
label: "添加分组",
icon: h(groupIcon, defaultIconSize),
divided: true,
onClick: () => {
localGroup.addGroup()
}
},
{
label: "删除分组",
icon: h(DeleteFilled, defaultIconSize),
divided: true,
onClick: () => {
localGroup.deleteGroup(groups.Name)
}
},
{
label: "视图模式",
icon: h(Menu, defaultIconSize),
Expand All @@ -247,39 +275,6 @@ function handDivContextMenu(e: MouseEvent) {
]
});
}
function handleCardContextMenu(e: MouseEvent, groups: any) {
//prevent the browser's default menu
e.preventDefault();
//show our menu
ContextMenu.showContextMenu({
x: e.x,
y: e.y,
items: [
{
label: "添加元素",
icon: h(tagIcon, defaultIconSize),
onClick: () => {
config.addItemDialog = true
}
},
{
label: "添加分组",
icon: h(groupIcon, defaultIconSize),
divided: true,
onClick: () => {
localGroup.addGroup()
}
},
{
label: "删除分组",
icon: h(DeleteFilled, defaultIconSize),
onClick: () => {
localGroup.deleteGroup(groups.Name)
}
},
]
});
}
function handleButtonContextMenu(e: MouseEvent, groups: any, item: any) {
e.preventDefault();
Expand Down Expand Up @@ -332,25 +327,19 @@ function handleButtonContextMenu(e: MouseEvent, groups: any, item: any) {


<template>
<div style="height: 100%;" @contextmenu.prevent="handDivContextMenu($event)">
<el-collapse>
<el-collapse-item name="1">
<template #title>
<div style="height: 100%;">
<div class="my-header" style="margin-bottom: 10px;">
<el-button plain :icon="WarningFilled" @click="config.tipsDialog = true">使用须知</el-button>
<el-input v-model="searchFilter" placeholder="根据名称过滤搜索..." style="margin-inline: 5px">
<template #prefix>
<el-icon>
<InfoFilled />
<Filter />
</el-icon>
<p class="custom-block-title">Tips</p>
</template>
<div class="tip custom-block">
jar应用在默认点击启动时,会使用以java -jar启动应用<br />
如果默认配置无法满足使用,可以通过填写目标自定义启动命令<strong>(类型必须为CMD)</strong>,%path%关键词可以自动替换为应用路径<br />
e.g. 启动Exp-Tools, 路径为: <code>/Users/xxx/exp/Exp-Tools-1.2.7-encrypted.jar</code> 命令可以为:
<code>java -javaagent:%path% -jar %path%</code>
</div>
</el-collapse-item>
</el-collapse>

<div v-for="groups in localGroup.options.value" style="margin-bottom: 10px;">
</el-input>
<el-button :icon="groupIcon" @click="localGroup.addGroup()">添加分组</el-button>
</div>
<div v-for="groups in filteredGroups" style="margin-bottom: 10px;">
<el-card @drop="(event: any) => localGroup.handleDrop(event, groups.Name)" class="drop-enable"
@contextmenu.stop @contextmenu.prevent="handleCardContextMenu($event, groups)">
<div class="my-header" style="margin-bottom: 20px">
Expand Down Expand Up @@ -441,6 +430,16 @@ function handleButtonContextMenu(e: MouseEvent, groups: any, item: any) {
</el-button>
</template>
</el-dialog>
<el-dialog v-model="config.tipsDialog" title="使用须知" width="900px">
<div class="tip custom-block">
1、jar应用在默认点击启动时,会使用以java -jar启动应用<br /><br />
2、如果默认配置无法满足使用,可以通过填写目标自定义启动命令<strong>(类型必须为CMD)</strong>,%path%关键词可以自动替换为应用路径<br />
e.g. 启动Exp-Tools, 路径为: <code>/Users/xxx/exp/Exp-Tools-1.2.7-encrypted.jar</code> 命令可以为:
<code>java -javaagent:%path% -jar %path%</code><br /><br />
3、拖入应用到分组中会自动按类型添加元素<br /><br />
4、每个面板右键都有独立的功能!!!
</div>
</el-dialog>
</template>


Expand Down Expand Up @@ -488,9 +487,4 @@ function handleButtonContextMenu(e: MouseEvent, groups: any, item: any) {
border-left: 5px solid var(--el-color-primary);
margin-bottom: 10px;
}
.custom-block-title {
font-weight: 700;
margin-left: 5px;
}
</style>

0 comments on commit 27b60a4

Please sign in to comment.