当地记分板和机器人跟踪总统杯。
presidentsCTF-bot的Python项目详细描述
总统CTF机器人
跟踪President's Cybersecurity Cup的本地记分板和bot。在
快速入门
pip install presidentsCTF-bot
wget https://gitlab.com/royragsdale/presidentsctf-bot/raw/master/config.json
presidentsCTF
- 安装工具。在
- 使用现有事件获取基线配置。在
- 把记分牌拿来。在
默认情况下,这将从配置中获取所有事件并显示任何事件 记分牌上的活跃队伍。如果没有活动的事件,你就不会 显示任何东西。在
有关完整的选项集以及 Examples部分。在
特点
- 轨迹随时间推移而解决。在
- 本地注释已知团队。在
- 突出显示活跃团队。在
- 将更新发送到slack或twitter。在
背景
每个项目的记分板数据(例如团队第一轮)是公开的。 这个工具只获取json数据并进行一些本地处理来提供 更好的体验。在
示例
只有一个事件
通常只想显示当前事件。在
您可以使用一个配置文件(例如config.json
或与--config
)一起使用
只指定该事件。在
或者您可以使用--event
选项来限制显示(6e8a18
是
单打第一轮排行榜事件的前缀。在
presidentsCTF --event 6e8a18
更多团队
默认情况下,记分板只显示活跃的团队。如果事件没有直播 不会有结果的。以下标志将更改显示的内容。这些可能是 用于组合词。在
--active show active teams (default=True)
--known show known teams (default=False)
--top TOP show top N teams
$ presidentsCTF --event 6e8a18 --top 3
##############################################################
Solo Round 1
##############################################################
| Rank | Team | Score | Solves | Remaining |
|--------|----------------|---------|----------|-------------|
| 1 | DOD-Player-513 | 5500 | 9 | Final |
| 2 | DOD-Player-280 | 5500 | 9 | Final |
| 3 | DOD-Player-262 | 5500 | 10 | Final |
日志求解
通过以循环方式运行fetch,该工具可以计算差异和
推断挑战解决。使用watch
这样的工具很容易实现自动化。为
示例下面的调用也将捕捉每分钟的更新
as将接收到的json数据导出以供其他用途,并将更新消息存储到
log
。在
$ watch -n 60 'presidentsCTF --event 6e8a18 --export | tee -a log'
已知团队
默认情况下,记分板只显示匿名球队名称。这就成功了
挑战性地跟随你的朋友和敌人。如果你知道你是谁
可以在"teams"
部分下的config.json
中添加自定义映射。在
通知
如果您希望实时传递更新,此工具还可以发布
slack或twitter的更新。请查看示例config.json
以获取相关信息
需要使用此功能。在
"slack"
配置的"watch"
字段将团队名称映射到slack
用户id。这将@mention
该团队中的任何更改的用户。在
注意使用已知团队功能和通知功能,以免 无意中暴露了谁在哪个队。在
虽然bot有twitter功能,但您可能应该遵循 非官方帐户https://twitter.com/presidentsCTF。在
仅筛选唯一更新
当日志解决问题时,您可能会得到大量的json文件 实际上是完全相同的。它们占用空间,减慢速度 只是没有必要。下面的命令是仅过滤掉的一个示例 包含更新的文件:
presidentsCTF --local . --quiet --debug 2>&1 | grep "loaded with changes" | awk '{print $7}' | xargs -I {} cp {} ./uniq/
假设:
uniq
目录存在(唯一文件的目标是 复制到)- 该命令从包含用创建的json文件的目录(
.
)运行--export
统计
对于一个活动来说,看看谁对每一点价值的挑战有多大是很有趣的
已经解决了,像平均解算持续时间。这个工具也是
附带一个presidentsCTF-stats
命令,可用于现有的
数据库来快速显示这些统计信息。例如:
$ presidentsCTF-stats
Team Round 2 - fab611
---------------------
Teams on scoreboard : 35
Solve Breakdown (Hours:Minutes)
###################################################
| Points | Solved | Min | Average | Max |
|----------|----------|-------|-----------|-------|
| 1000 | 67 | 00:05 | 01:38 | 05:53 |
| 2000 | 61 | 00:24 | 04:17 | 06:41 |
| 3000 | 4 | 00:14 | 04:57 | 07:40 |
###################################################
--team
标志也可用于查看特定团队的统计信息。在
注意:显示每个解决方案统计信息的能力依赖于日志解决 并根据Log Solves计算差异 第节。在
谢谢
总统杯网络安全竞赛组织者 事件。p的jchristman指出那个api端点。所有的虫子都是我的。在
- 项目
标签: