diff --git a/app/renderer/src/main/src/components/yakitUI/YakitForm/YakitForm.tsx b/app/renderer/src/main/src/components/yakitUI/YakitForm/YakitForm.tsx index 1b29e54994..70a1c5016c 100644 --- a/app/renderer/src/main/src/components/yakitUI/YakitForm/YakitForm.tsx +++ b/app/renderer/src/main/src/components/yakitUI/YakitForm/YakitForm.tsx @@ -23,7 +23,7 @@ import {getRemoteValue, setRemoteValue} from "@/utils/kv" import {RemoteGV} from "@/yakitGV" import {YakitSpin} from "../YakitSpin/YakitSpin" import {YakitRadioButtons} from "../YakitRadioButtons/YakitRadioButtons" -import { QuestionMarkCircleIcon } from "@/assets/newIcon" +import {QuestionMarkCircleIcon} from "@/assets/newIcon" const {Dragger} = Upload @@ -108,6 +108,7 @@ export const YakitDragger: React.FC = React.memo((props) => { [fileName], {wait: 300} ) + /**文件处理 */ const getContent = useMemoizedFn((path: string, fileType: string) => { if (!path) { @@ -115,7 +116,6 @@ export const YakitDragger: React.FC = React.memo((props) => { return } const index = path.lastIndexOf(".") - if (fileExtensionIsExist) { if (selectType === "file" && index === -1) { failed("请输入正确的路径") @@ -127,7 +127,6 @@ export const YakitDragger: React.FC = React.memo((props) => { return } } - // 设置名字 if (setFileName) { setFileName(path) @@ -936,12 +935,13 @@ export const YakitDraggerContentPath: React.FC = R content={
e.stopPropagation()} style={{padding: "0 8px"}}>
-
读取方式 - - +
+ 读取方式 + + - - :
+ : +
= (props) => { info("选中的文件名为空") return } - const index = filename.lastIndexOf(".") if (mode === "file:dir") { if (index !== -1) { @@ -203,4 +202,4 @@ export const insertTemporaryFileFuzzTag = (onInsert: (i: string) => any) => { ) }) -} \ No newline at end of file +} diff --git a/app/renderer/src/main/src/pages/portscan/PortScanPage.tsx b/app/renderer/src/main/src/pages/portscan/PortScanPage.tsx index d20cd60f41..9d9f137e54 100644 --- a/app/renderer/src/main/src/pages/portscan/PortScanPage.tsx +++ b/app/renderer/src/main/src/pages/portscan/PortScanPage.tsx @@ -32,6 +32,7 @@ export interface PortScanParams { SynConcurrent: number Active: boolean FingerprintMode: "service" | "web" | "all" + UserFingerprintFiles: string SaveToDB: boolean SaveClosedPorts: boolean TargetsFile?: string diff --git a/app/renderer/src/main/src/pages/securityTool/newPortScan/NewPortScan.tsx b/app/renderer/src/main/src/pages/securityTool/newPortScan/NewPortScan.tsx index f2f71f7a09..bee8cafdc3 100644 --- a/app/renderer/src/main/src/pages/securityTool/newPortScan/NewPortScan.tsx +++ b/app/renderer/src/main/src/pages/securityTool/newPortScan/NewPortScan.tsx @@ -264,6 +264,7 @@ export const defPortScanExecuteExtraFormValue: PortScanExecuteExtraFormValue = { Targets: "", Active: true, FingerprintMode: "all", + UserFingerprintFiles: "", Proto: ["tcp"], SaveClosedPorts: false, SaveToDB: true, @@ -402,7 +403,10 @@ const NewPortScanExecuteContent: React.FC = Reac ...extraParamsValue, ...value, Proto: extraParamsValue.scanProtocol ? [extraParamsValue.scanProtocol] : [], - LinkPluginConfig: linkPluginConfig + LinkPluginConfig: linkPluginConfig, + UserFingerprintFiles: extraParamsValue.UserFingerprintFiles + ? extraParamsValue.UserFingerprintFiles.split(",") + : [] } if(inputType === "path"){ executeParams["TargetsFile"] = executeParams["Targets"] diff --git a/app/renderer/src/main/src/pages/securityTool/newPortScan/NewPortScanExtraParamsDrawer.tsx b/app/renderer/src/main/src/pages/securityTool/newPortScan/NewPortScanExtraParamsDrawer.tsx index c455899c8c..95b6440a78 100644 --- a/app/renderer/src/main/src/pages/securityTool/newPortScan/NewPortScanExtraParamsDrawer.tsx +++ b/app/renderer/src/main/src/pages/securityTool/newPortScan/NewPortScanExtraParamsDrawer.tsx @@ -24,6 +24,7 @@ import {OutlineRefreshIcon} from "@/assets/icon/outline" import {CheckboxValueType} from "antd/lib/checkbox/Group" import {PresetPorts} from "@/pages/portscan/schema" import {isEnpriTraceAgent} from "@/utils/envfile" +import {YakitFormDragger} from "@/components/yakitUI/YakitForm/YakitForm" const {YakitPanel} = YakitCollapse @@ -55,7 +56,8 @@ const defaultFingerprintSetting = { ProbeMax: defPortScanExecuteExtraFormValue.ProbeMax, ProbeTimeout: defPortScanExecuteExtraFormValue.ProbeTimeout, Proxy: defPortScanExecuteExtraFormValue.Proxy, - FingerprintMode: defPortScanExecuteExtraFormValue.FingerprintMode + FingerprintMode: defPortScanExecuteExtraFormValue.FingerprintMode, + UserFingerprintFiles: defPortScanExecuteExtraFormValue.UserFingerprintFiles } /** SYN 配置 */ const defaultSYNSetting = { @@ -323,6 +325,7 @@ interface FingerprintSettingsPanelProps { export const FingerprintSettingsPanel: React.FC = React.memo((props) => { const {key, isSimpleDetect, ...restProps} = props const form = Form.useFormInstance() + /**选择预设端口设置Ports值 */ const onCheckPresetPort = useMemoizedFn((checkedValue: CheckboxValueType[]) => { let res: string = (checkedValue || []) @@ -470,6 +473,16 @@ export const FingerprintSettingsPanel: React.FC = ]} /> + )