了解如何使用搜索功能和积分系统
搜索语法
使用 QL 语法进行精确搜索
基础语法
单字段搜索:
ip=1.2.3.4
多字段组合(使用 && 连接):
ip=1.2.3.4&&method=GET&&product_name=WordPress
OR 逻辑(使用 || 连接):
method=POST || method=PUT
查找 POST 或 PUT 请求
括号分组:
(method=POST || method=PUT) && path=/api/
使用括号控制逻辑优先级
支持的搜索字段
ip
IP 地址
method
HTTP 方法
path
请求路径
product_name
产品名称
attack_types
攻击类型
md5
请求 MD5
ua
User-Agent
geo.*
地理位置字段
request
请求内容
body
请求体
body_b64
Base64 编码的请求体
高级功能
否定查询:
ip!=1.2.3.4
排除指定 IP
正则表达式:
path=^/admin
使用 ^ 开头或 $ 结尾启用正则匹配
示例
ip=192.168.1.1&&method=POST
搜索来自 192.168.1.1 的 POST 请求
product_name=WordPress&&attack_types=Exploit
搜索 WordPress 产品的漏洞利用攻击
method=POST || method=PUT
搜索 POST 或 PUT 请求
(ip=1.2.3.4 || ip=5.6.7.8) && method=POST
搜索来自指定 IP 的 POST 请求(使用括号分组)
ip=1.2.3.4 && (method=POST || method=PUT) && path=/api/
搜索特定 IP 的 POST 或 PUT 请求,且路径为 /api/
支持的攻击类型
JWT硬编码OOBSAML绕过SQL注入XXE代码执行反序列化命令执行弱口令文件上传文件写入文件读取模板注入源IP伪造目录穿越认证绕过
使用 attack_types=类型名称 进行搜索,例如:attack_types=SQL注入
积分规则
了解积分类型和消耗规则
积分类型
免费积分每日重置
免费版每日赠送 50 积分,付费版每日赠送 100 积分,当天剩余不累计
权益积分永久有效
付费充值获得,累计扣除,不重置
积分消耗
搜索日志2 积分
查看日志详情5 积分
查看 IP 详情1 积分
查看产品详情5 积分
创建 AI 分析任务50 积分
查看分析结果5 积分
导出 CSV同一天内导出相同IP不重复扣分
10 积分消耗优先级
优先使用免费积分
系统会优先消耗免费积分,不足时再使用权益积分
注意事项
- 查看日志详情有每小时限制,避免重复消耗;搜索日志每次查询均会扣除积分
- 免费积分每天 00:00 (UTC) 自动重置
- 权益积分永久有效,不会过期
搜索技巧
提高搜索效率
- 使用精确的搜索条件可以减少结果数量,提高搜索效率
- 结合多个字段进行搜索,可以快速定位目标日志
- 使用正则表达式可以匹配模式化的路径或内容
- 合理使用 OR 逻辑可以同时搜索多个条件
常见场景
查找特定 IP 的所有攻击
ip=1.2.3.4 && attack_types=命令执行
结合 IP 和攻击类型字段
查找多个产品的攻击
(product_name=WordPress || product_name=Joomla) && attack_types=SQL注入
使用括号和 OR 逻辑组合多个产品
查找特定路径模式
path=^/admin && method=POST
使用正则表达式匹配路径开头
快捷键
使用键盘快捷键提高搜索效率
搜索快捷键
聚焦搜索框/
翻页快捷键
上一页← 或 K
下一页→ 或 J
注意:快捷键仅在不在输入框中时生效
API Key 使用
了解如何使用 API Key 进行程序化访问
创建 API Key
- 登录系统后,进入个人资料页面
- 切换到 API Keys 标签页
- 点击创建 API Key 按钮
- 输入 API Key 的名称(用于标识用途)
- 创建成功后,系统会显示完整的 API Key(格式:sk_xxxxx)
⚠️ 重要:请立即复制并妥善保管 API Key,创建后无法再次查看完整密钥
使用 API Key
API Key 需要在 HTTP 请求的 Authorization 请求头中传递
使用格式
Authorization: sk_xxxxx
也支持 Bearer 前缀格式:Authorization: Bearer sk_xxxxx
API 端点
GET/POST /api/logs/search
搜索和查询日志数据,支持 API Key 认证。同时支持 GET 和 POST 方法,POST 方法可以安全处理包含特殊字符的查询参数
请求参数
💡 提示:推荐使用 POST 方法,参数在请求体中传递,可以安全处理特殊字符。GET 方法时参数通过查询字符串传递,POST 方法时查询参数优先于请求体参数
q查询字符串(支持 QL 语法),GET 方法时通过查询参数传递,POST 方法时可在请求体中传递
page页码(默认:1)
page_size每页数量(默认:10)
t时间范围(如:1d, 7d, 30d,默认:1d)
attacks_only仅显示攻击日志(默认:false)
use_regex是否使用正则表达式(默认:true)
format返回格式(json 或 csv,默认:json)
record_history是否记录搜索历史(默认:true,仅对 API Key 认证有效)
代码示例
使用 curl (GET 方法)
curl -X GET "https://trap.biu.life/api/logs/search?q=method%3DPOST&page=1&page_size=10&t=1d" \
-H "Authorization: sk_your_api_key_here"使用 curl (POST 方法)
curl -X POST "https://trap.biu.life/api/logs/search" \
-H "Authorization: sk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"q": "method=POST", "page": 1, "page_size": 10, "t": "1d"}'使用 Python (GET 方法)
import requests
headers = {
"Authorization": "sk_your_api_key_here"
}
params = {
"q": "method=POST",
"page": 1,
"page_size": 10,
"t": "1d"
}
response = requests.get(
"https://trap.biu.life/api/logs/search",
headers=headers,
params=params
)
print(response.json())使用 Python (POST 方法)
import requests
import json
headers = {
"Authorization": "sk_your_api_key_here",
"Content-Type": "application/json"
}
data = {
"q": "method=POST",
"page": 1,
"page_size": 10,
"t": "1d"
}
response = requests.post(
"https://trap.biu.life/api/logs/search",
headers=headers,
json=data
)
print(response.json())使用 JavaScript/Node.js (GET 方法)
const url = new URL("https://trap.biu.life/api/logs/search");
url.searchParams.set("q", "method=POST");
url.searchParams.set("page", "1");
url.searchParams.set("page_size", "10");
url.searchParams.set("t", "1d");
const response = await fetch(url, {
method: "GET",
headers: {
"Authorization": "sk_your_api_key_here"
}
});
const data = await response.json();
console.log(data);使用 JavaScript/Node.js (POST 方法)
const response = await fetch("https://trap.biu.life/api/logs/search", {
method: "POST",
headers: {
"Authorization": "sk_your_api_key_here",
"Content-Type": "application/json"
},
body: JSON.stringify({
q: "method=POST",
page: 1,
page_size: 10,
t: "1d"
})
});
const data = await response.json();
console.log(data);安全建议
- 保护 API Key:不要将 API Key 提交到代码仓库或公开分享
- 使用环境变量:将 API Key 存储在环境变量中,而不是硬编码在代码里
- 定期轮换:定期删除旧的 API Key 并创建新的
- 最小权限:为不同的用途创建不同的 API Key,便于管理和追踪
积分消耗
使用 API Key 认证的请求不会消耗积分,这是 API Key 认证的特殊优势
注意事项
- 使用 API Key 进行的搜索会记录到搜索历史中(可通过 record_history=false 禁用)
- API Key 认证不会记录安全操作日志(与 JWT Token 不同)
- 使用 API Key 认证的请求不会消耗积分,适合程序化访问
- POST 方法时,查询参数优先于请求体参数(如果同时提供)
提示
• 使用精确的搜索条件可以减少结果数量,提高搜索效率
• 合理使用免费积分,优先完成重要查询
• 如需更多积分,可以通过充值获得权益积分
• 查看积分详情和记录,请前往个人资料页面