astrum_deus_commons/
lib.rs

1use serde::{Serialize, Deserialize};
2
3#[derive(Debug, Serialize, Deserialize, Default)]
4pub struct ScanResult {
5    pub port: Vec<PortResultItem>,
6    
7    // 以下字段尚未用到
8    pub vulns: Vec<VulnResultItem>,
9    pub domain: Vec<DomainResultItem>,
10    pub dir: Vec<DirResultItem>,
11}
12
13/// 端口扫描的结果对应的结构体
14#[derive(Debug, Serialize, Deserialize)]
15pub struct PortResultItem {
16    pub ip: String,
17    pub port: u16,
18    pub protocol: String,
19    // 指纹、banner信息
20    pub banner: Option<String>,
21    pub extra: Option<String>,
22}
23
24/// 域名扫描结果对应的结构体
25#[derive(Debug, Serialize, Deserialize)]
26pub struct DomainResultItem {
27    pub domain: String,
28    pub record_type: String,
29    pub record: String,
30    pub status_code: Option<u16>,
31    pub title: Option<String>,
32    pub content: Option<String>,
33    pub screenshot: Option<String>,
34    pub extra: Option<String>,
35}
36
37/// 目录扫描的结果对应的结构体
38#[derive(Debug, Serialize, Deserialize)]
39pub struct DirResultItem {
40    pub path: String,
41    pub status_code: u16,
42    pub method: String,
43    pub title: Option<String>,
44    pub content: Option<String>,
45    pub screenshot: Option<String>,
46    pub extra: Option<String>,
47}
48
49/// 漏洞扫描结果对应的结构体
50#[derive(Debug, Serialize, Deserialize)]
51pub struct VulnResultItem {
52    pub title: String,
53    pub url: String,
54    pub description: String,
55}