漏洞2.0评估算法接口说明文档
郝伟 2021/10/18
IP:192.168.104.102
SSH:root/huauN2021!@#$
平台:http://192.168.104.102:8999
admin/operator2021
路径:/home/project/ai_kg
本项目使用Git进行版本控制,代码存储于Gitee上,信息如下。
为了方便测试,代码拖回本地后,使用公司内部机 192.168.104.102 进行测试。其中根据不同人员和作用建立有以下测试目录,每个目录都配有独立的Django的运行环境。
| 名称 | 作用 | 存储目录 | Django地址 | Django端口 | 备注 |
|---|---|---|---|---|---|
| project | 项目的正式代码,确认无问题后再提交。 | /home/project |
api, doc | 8000 | 无 |
| haowei | 郝伟的测试目录。 | /home/haowei |
api, doc | 8010 | 无 |
| wuzhijuan | 吴脂娟的测试目录。 | /home/wuzhijuan |
api, doc | 8020 | 无 |
注意,每个链接包括两个地址,分别为接口地址和测试地址,如project为例:
其他测试接口
| 编号 | 作用 | 链接 |
|---|---|---|
| 1 | 变量a显示 | http://192.168.104.102:8010/api/hello/ |
| 2 | 变量a和strlist自加 | http://192.168.104.102:8010/api/add/ |
以正式项目为例(192.168.104.102:8000),启动过程如下:
cd /home/project/vul_evaluation_2nd/ai_kgpython3 manage.py runserver 0.0.0.0:8000nohup python3 manage.py runserver 0.0.0.0:8000 >> log.txt &可以将代码简化后合并为1行:
python3 /home/project/vul_evaluation_2nd/ai_kg/manage.py runserver 0.0.0.0:8000 >> log.txt &
为了方便接口的高度,在本项目中使用了 drf-yasg 模块,它依赖于Anaconada和Django。
本项目中所使用的三个模块如下所示:
下载安装包与依赖组件到服务器上:
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh /root/ yum install libXcomposite libXcursor libXi libXtst libXrandr alsa-lib mesa-libEGL libXdamage mesa-libGL libXScrnSaver
安装Anaconda3:
sh Anaconda3-2021.05-Linux-x86_64.sh
vi /etc/profile
export PATH=$PATH:/root/anaconda3/bin
source /etc/profile
输入python3 查看python版本
添加软链接:
ln -s /root/anaconda3/bin/python3 /usr/bin/python3 ln -s /root/anaconda3/bin/pip3 /usr/bin/pip3
配置Django + drf-yasg实现在线接口文档:
pip3 install -i https://pypi.douban.com/simple django pip3 install -i https://pypi.douban.com/simple drf_yasg
关于drf-yasg的使用可以可以参见以下文档:
打开测试页面,
vulEval_createTry it outExecute示例1:机器打分
输入:
{
"data": "[-1, 2, 3, 3, 3, 2, 2, 2, 2, 3, 1, 2, 1, 2, 2, 2]"
}
输出:
{
"code": 0,
"data": {
"type": 0,
"result": 2
}
}
示例2:人工打分
输入
{
"data": "[4, 2, 3, 3, 3, 2, 2, 2, 2, 3, 1, 2, 1, 2, 2, 2]"
}
输出
{
"code": 0,
"data": {
"type": 1,
"result": 4
}
}
| 顺序 | 参数名 | 说明 | 取值范围说明 |
|---|---|---|---|
| v0 | invokingType | 调用类型 | 表示机器评估或人工评估:-1表示机器评估;0-5表示人工评估,对应的数值为评估的分值;其他值无效。 |
| v1 | vulType | 漏洞类型 | 1.配置错误; 2.代码问题; 3.资源管理错误; 4.数字错误; 5.信息泄露; 6.竞争条件; 7.输入验证; 8.缓冲区错误; 9.格式化字符串; 10.跨站脚本; 11.路径遍历; 12.后置链接; 13.SQL注入; 14.注入; 15.代码注入; 16.命令注入; 17.操作系统命令注入; 18.安全特征问题; 19.授权问题; 20.信任管理; 21.加密问题; 22.未充分验证数据可靠性; 23.跨站请求伪造; 24.权限许可和访问控制; 25.访问控制错误; 26.资料不足 |
| v2 | accessLevel | 获取权限等级 | 1.管理员权限; 2.部分权限用户; 3.普通用户; |
| v3 | CVSS3Score | CVSS3漏洞综合评分 | 具体的评分分值。 |
| v4 | CNNVDScore | CNNVD危害等级评分 | 具体的评分分值。 |
| v5 | POC | POC | 1.有; 2.无 |
| v6 | EXP | EXP | 1.有; 2.无 |
| v7 | vulPermissions | 漏洞对权限的需求 | 1.高; 2.低; |
| v8 | accessPath | 访问路径 | 1.网络; 2.邻接; 3.本地; 4.物理接触; |
| v9 | impactPlatformScope | 影响平台范围 | 1.所有; 2.适度; 3.罕见; 4.可能触 |
| v10 | impactAssetNum | 影响资产数量 | 1.高; 2.中; 3.低; |
| v11 | days | 0Day | 1.0day; 2.1day; 3.nday; |
| v12 | degree | 确认程度 | 1.是; 2.否; |
| v13 | securityPatches | 安全补丁 | 1.有; 2.无; |
| v14 | softwareProtectionCapability | 软件防护能力 | 1.高; 2.低; |
| v15 | organProtectionCapability | 机构防护能力 | 1.高; 2.中; 3.低; |
格式:json
内容:表示查询结果,格式如下所示,结果放在data中,type为0时表示查询,result表示查询的结果;如果type为1,则result无效。
示例
"result = -1 {'code': -1, 'message': 'Machine evaluation error'}
result = 0-5 {'code': 0, 'data': {'type': 0, 'result': result}}"
# invokingType = 0-5表示人工评估
{'code': 0, 'data': {'type': 1, 'result': invokingType}}
# invokingType 其他值无效
{'code': -2, 'message': 'invokingType input error'}
{
""code"": 0,
""data"": {
""list"": [
{
""id"": ""country00020210920030000000001"",
""name"": ""不丹"",
""code"": ""BT"",
""readNum"": 0
},
{
""id"": ""country00020210920030000000002"",
""name"": ""东帝汶"",
""code"": ""TL"",
""readNum"": 0
},
{
""id"": ""country00020210920030000000003"",
""name"": ""中国"",
""code"": ""HK"",
""readNum"": 0
},
{
""id"": ""country00020210920030000000004"",
""name"": ""中国"",
""code"": ""TW"",
""readNum"": 0
},
{
""id"": ""country00020210920030000000005"",
""name"": ""中国"",
""code"": ""MO"",
""readNum"": 0
}
],
""pageNum"": 1,
""pageSize"": 5,
""total"": 5
}
}
id name class
9 格式化字符串 1
10 跨站脚本 1
13 SQL注入 1
14 注入 1
15 代码注入 1
16 命令注入 1
17 操作系统命令注入 1
2 代码问题 2
3 资源管理错误 2
4 数字错误 2
5 信息泄露 2
6 竞争条件 2
11 路径遍历 2
12 后置链接 2
18 安全特征问题 3
19 授权问题 3
20 信任管理 3
21 加密问题 3
22 未充分验证数据可靠性 3
23 跨站请求伪造 3
24 权限许可和访问控制 3
25 访问控制错误 3
26 资料不足 4
8 缓冲区错误 5
1 配置错误 6
7 输入验证 7