Skip to content

Commit

Permalink
Merge pull request #1997 from yaklang/song/feat/customfingerprint
Browse files Browse the repository at this point in the history
feat: 自定义指纹扫描
  • Loading branch information
luoluoTH authored Sep 19, 2024
2 parents 9f82501 + f173a99 commit e7b695c
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -108,14 +108,14 @@ export const YakitDragger: React.FC<YakitDraggerProps> = React.memo((props) => {
[fileName],
{wait: 300}
)

/**文件处理 */
const getContent = useMemoizedFn((path: string, fileType: string) => {
if (!path) {
failed("请输入路径")
return
}
const index = path.lastIndexOf(".")

if (fileExtensionIsExist) {
if (selectType === "file" && index === -1) {
failed("请输入正确的路径")
Expand All @@ -127,7 +127,6 @@ export const YakitDragger: React.FC<YakitDraggerProps> = React.memo((props) => {
return
}
}

// 设置名字
if (setFileName) {
setFileName(path)
Expand Down Expand Up @@ -936,12 +935,13 @@ export const YakitDraggerContentPath: React.FC<YakitDraggerContentPathProps> = R
content={
<div onClick={(e) => e.stopPropagation()} style={{padding: "0 8px"}}>
<div className={styles["content"]}>
<div className={styles["text"]}>读取方式
<Tooltip title="为避免读取大文件造成前端渲染失败,读取文件内容限制为10M,超过10M的文件请选择路径">
<QuestionMarkCircleIcon />
<div className={styles["text"]}>
读取方式
<Tooltip title='为避免读取大文件造成前端渲染失败,读取文件内容限制为10M,超过10M的文件请选择路径'>
<QuestionMarkCircleIcon />
</Tooltip>

</div>
</div>
<YakitRadioButtons
size='small'
value={textAreaType}
Expand Down
3 changes: 1 addition & 2 deletions app/renderer/src/main/src/pages/fuzzer/InsertFileFuzzTag.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ const InsertFileFuzzTag: React.FC<InsertFileFuzzTagProp> = (props) => {
info("选中的文件名为空")
return
}

const index = filename.lastIndexOf(".")
if (mode === "file:dir") {
if (index !== -1) {
Expand Down Expand Up @@ -203,4 +202,4 @@ export const insertTemporaryFileFuzzTag = (onInsert: (i: string) => any) => {
</>
)
})
}
}
1 change: 1 addition & 0 deletions app/renderer/src/main/src/pages/portscan/PortScanPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export interface PortScanParams {
SynConcurrent: number
Active: boolean
FingerprintMode: "service" | "web" | "all"
UserFingerprintFiles: string
SaveToDB: boolean
SaveClosedPorts: boolean
TargetsFile?: string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ export const defPortScanExecuteExtraFormValue: PortScanExecuteExtraFormValue = {
Targets: "",
Active: true,
FingerprintMode: "all",
UserFingerprintFiles: "",
Proto: ["tcp"],
SaveClosedPorts: false,
SaveToDB: true,
Expand Down Expand Up @@ -402,7 +403,10 @@ const NewPortScanExecuteContent: React.FC<NewPortScanExecuteContentProps> = 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"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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 = {
Expand Down Expand Up @@ -323,6 +325,7 @@ interface FingerprintSettingsPanelProps {
export const FingerprintSettingsPanel: React.FC<FingerprintSettingsPanelProps> = React.memo((props) => {
const {key, isSimpleDetect, ...restProps} = props
const form = Form.useFormInstance()

/**选择预设端口设置Ports值 */
const onCheckPresetPort = useMemoizedFn((checkedValue: CheckboxValueType[]) => {
let res: string = (checkedValue || [])
Expand Down Expand Up @@ -470,6 +473,16 @@ export const FingerprintSettingsPanel: React.FC<FingerprintSettingsPanelProps> =
]}
/>
</Form.Item>
<YakitFormDragger
formItemProps={{
name: "UserFingerprintFiles",
label: "自定义指纹"
}}
accept='.yaml,.yml'
help='可将yaml、yml文件拖入框内或'
selectType='file'
multiple={true}
/>
</YakitPanel>
</>
)
Expand Down

0 comments on commit e7b695c

Please sign in to comment.