PoC 规范说明
PoC 编号说明
PoC 编号 ID 与漏洞 ID 一致。示例,漏洞库中的漏洞统一采用 SSV-xxx
编号的方式,则 PoC 编号为 xxx。
PoC 命名规范
Poc 命名格式:_编号_漏洞应用名_版本号_漏洞类型名称
,然后把文件名称中的所有字母改成小写,所有的符号改成 _
。 文件名不能有特殊字符和大写字母,最后出来的文件名应该像这样:
_1847_seeyon_3_1_login_info_disclosure.py
PoC 第三方模块依赖说明
PoC 编写的时候要求尽量不要使用第三方模块,如果必要使用,请在 PoC 的基础信息部分,增加 install_requires
字段,按照以下格式填写依赖的模块名:
install_requires =[str_item_, str_item, …] # 整个字段的值为 list,每个项为一个依赖模块。
str_item 格式:模块名[><=]版本号
,模块名为 pip install 安装时的模块名(请不要填写 import 的模块名)。
如果遇到安装时模块名与调用时的不一致情况,用 :
分割开,例如常见的加密算法库 pycryptodome
,但是调用是以 from Crypto.Cipher import AES
,此时就需要如下填写:
install_requires = ['pycryptodome>=3.12.0:Crypto']
TIP
install_requires
这个属性存在的意义是方便管理引入的第三方模块,加载 PoC 的时候如果检测到用户没有安装这个模块,可以提示用户安装模块后再继续运行。还有一个场景是可以通过代码解析出该属性然后自动安装相应模块,方便自动化解决依赖。无法用于导入模块,导入请手动 import
。
PoC 结果返回规范
result 为 PoC 返回的结果数据,result 返回值要求返回完整的一项,暂不符合 result 字段的情况,放入 extra 字段中,此步骤必须尽可能的保证运行者能够根据信息 复现/理解
漏洞,如果步骤复杂,在取证信息中说明。例如:
# 返回数据库管理员密码
result['DBInfo'] = {}
result['DBInfo']['Password']='xxxxx'
# 返回 Webshell 地址
result['ShellInfo'] = {}
result['ShellInfo']['URL'] = 'xxxxx'
# 返回网站管理员用户名
result['AdminInfo'] = {}
result['AdminInfo']['Username']='xxxxx'
extra 字段说明
extra 字段为通用结果字段的补充字段,如果需要返回的内容中不属于通用结果字段,那么可以使用 extra 字段进行赋值。extra 字段为 dict 格式,可自定义 key 进行赋值,如:
result['extra'] = {}
result['extra']['field'] = 'aa'
特殊字段
evidence,针对结果中返回取证信息,定义字段名只允许为 evidence,并且只能存储于 extar 字段,即:
result['extra'] = {}
result['extra']['evidence'] = 'aa'
通用字段说明 (以下只是字段含义示例,不是标准的 JSON 格式)
result:[
{ name: 'DBInfo', value:'数据库内容' },
{ name: 'Username', value: '管理员用户名'},
{ name: 'Password', value:'管理员密码' },
{ name: 'Salt', value: '加密盐值'},
{ name: 'Uid', value: '用户ID'},
{ name: 'Groupid', value: '用户组ID'},
{ name: 'ShellInfo', value: 'Webshell信息'},
{ name: 'URL', value: 'Webshell地址'},
{ name: 'Content', value: 'Webshell内容'},
{ name: 'FileInfo', value: '文件信息'},
{ name: 'Filename', value: '文件名称'},
{ name: 'Content', value: '文件内容'},
{ name: 'XSSInfo', value: '跨站脚本信息'},
{ name: 'URL', value: '验证URL'},
{ name: 'Payload', value: '验证Payload'},
{ name: 'AdminInfo', value: '管理员信息'},
{ name: 'Uid', value: '管理员ID'},
{ name: 'Username', value: '管理员用户名'},
{ name: 'Password', value: '管理员密码'},
{ name: 'Database', value:'数据库信息' },
{ name: 'Hostname', value: '数据库主机名'},
{ name: 'Username', value:'数据库用户名' },
{ name: 'Password', value: '数据库密码'},
{ name: 'DBname', value: '数据库名'},
{ name: 'VerifyInfo', value: '验证信息'},
{ name: 'Target', value: '验证host:port'},
{ name: 'URL', value: '验证URL'},
{ name: 'Postdata', value: '验证POST数据'},
{ name: 'Path', value: '网站绝对路径'},
{ name: 'SiteAttr', value: '网站服务器信息'},
{ name: 'Process', value: '服务器进程'}
]
漏洞类型规范
英文名称 | 中文名称 | 缩写 |
Cross Site Scripting | 跨站脚本 | xss |
Cross Site Request Forgery | 跨站请求伪造 | csrf |
SQL Injection | Sql注入 | sql-inj |
LDAP Injection | ldap注入 | ldap-inj |
Mail Command Injection | 邮件命令注入 | smtp-inj |
Null Byte Injection | 空字节注入 | null-byte-inj |
CRLF Injection | CRLF注入 | crlf-inj |
SSI Injection | Ssi注入 | ssi-inj |
XPath Injection | Xpath注入 | xpath-inj |
XML Injection | Xml注入 | xml-inj |
XQuery Injection | Xquery 注入 | xquery-inj |
Command Execution | 命令执行 | cmd-exec |
Code Execution | 代码执行 | code-exec |
Remote File Inclusion | 远程文件包含 | rfi |
Local File Inclusion | 本地文件包含 | lfi |
Abuse of Functionality | 功能函数滥用 | func-abuse |
Brute Force | 暴力破解 | brute-force |
Buffer Overflow | 缓冲区溢出 | buffer-overflow |
Content Spoofing | 内容欺骗 | spoofing |
Credential Prediction | 证书预测 | credential-prediction |
Session Prediction | 会话预测 | session-prediction |
Denial of Service | 拒绝服务 | dos |
Fingerprinting | 指纹识别 | finger |
Format String | 格式化字符串 | format-string |
HTTP Response Smuggling | http响应伪造 | http-response-smuggling |
HTTP Response Splitting | http响应拆分 | http-response-splitting |
HTTP Request Splitting | http请求拆分 | http-request-splitting |
HTTP Request Smuggling | http请求伪造 | http-request-smuggling |
HTTP Parameter Pollution | http参数污染 | hpp |
Integer Overflows | 整数溢出 | int-overflow |
Predictable Resource Location | 可预测资源定位 | res-location |
Session Fixation | 会话固定 | session-fixation |
URL Redirector Abuse | url重定向 | redirect |
Privilege Escalation | 权限提升 | privilege-escalation |
Resolve Error | 解析错误 | resolve-error |
Arbitrary File Creation | 任意文件创建 | file-creation |
Arbitrary File Download | 任意文件下载 | file-download |
Arbitrary File Deletion | 任意文件删除 | file-deletion |
Arbitrary File Read | 任意文件读取 | file-read |
Backup File Found | 备份文件发现 | bak-file-found |
Database Found | 数据库发现 | db-found |
Directory Listing | 目录遍历 | dir-listing |
Directory Traversal | 目录穿越 | dir-traversal |
File Upload | 文件上传 | file-upload |
Login Bypass | 登录绕过 | login-bypass |
Weak Password | 弱密码 | weak-pass |
Remote Password Change | 远程密码修改 | remote-pass-change |
Code Disclosure | 代码泄漏 | code-disclosure |
Path Disclosure | 路径泄漏 | path-disclosure |
Information Disclosure | 信息泄漏 | info-disclosure |
Security Mode Bypass | 安全模式绕过 | sec-bypass |
Malware | 挂马 | mal |
Black Link | 暗链 | black-link |
Backdoor | 后门 | backdoor |
Insecure Cookie Handling | 不安全的Cookie | insecure-cookie-handling |
Shellcode | Shellcode | shellcode |
Variable Coverage | 变量覆盖 | variable-coverage |
Injecting Malware Codes | 恶意代码注入 | injecting-malware-codes |
Upload Files | 文件上传 | upload-files |
Local Overflow | 本地溢出 | local-overflow |
Path Traversal | 目录穿越 | path-traversal |
Unauthorized Access | 未授权访问 | unauth-access |
Remote Overflow | 远程溢出 | remote-overflow |
Man-in-the-middle | 中间人攻击 | mitm |
Out of Memory | 内存溢出 | out-of-memory |
Buffer Over-read | 缓冲区越界读 | buffer-over-read |
Backup File Found | 备份文件泄漏 | backup-file-found |
Use After Free | 释放后使用 | uaf |
DNS Hijacking | DNS劫持 | dns-hijacking |
Improper Input Validation | 不正确的输入校验 | improper-input-validation |
Universal Cross-site Scripting | 通用型XSS | uxss |
Server-Side Request Forgery | 服务器端请求伪造 | ssrf |
Other | 其他 | other |
也可以参考 Seebug 漏洞类型规范。