Skip to content

Commit 8c4e4be

Browse files
authored
docs: update week1 guide docs (#14)
1 parent f98f376 commit 8c4e4be

File tree

11 files changed

+174
-34
lines changed

11 files changed

+174
-34
lines changed

docs/guide/2024/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,11 @@ NewStar CTF 2024 是由来自 13 所高校的战队联合发起的新生入门
8989

9090
### 协办单位<Text class='desc-text' fontSize='16px' fontWeight='500' content='(以下排名不分先后)' />
9191

92+
- 中国矿业大学计算机科学与技术学院
93+
- 中国矿业大学信息化建设与管理处
94+
- 中国矿业大学开源协会
9295
- 中国矿业大学计算机学院科学技术协会
96+
- 东北大学秦皇岛分校网络空间安全创新实验室
9397
- 东北大学秦皇岛分校计算机与通信工程学院
9498
- 浙江师范大学网络安全协会
9599
- 浙江师范大学高等数学协会

docs/guide/2024/week1.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
titleTemplate: ':title | 参考文档 - NewStar CTF 2024'
3+
---
4+
<script setup>
5+
import Container from '@/components/docs/Container.vue'
6+
</script>
7+
8+
# Week 1
9+
10+
本周的题目相对基础,主要通过考查的形式敦促大家配置基本环境、熟悉基础知识,为后续的题目做好准备。
11+
12+
如果你在做题时遇到了一些困难,可以阅读这里的内容,或许能够给你一些启发。
13+
14+
## Pwn
15+
16+
本周的 Pwn 考查一些工具的基本使用,可以阅读 [Pwn 环境配置](/learn/configure-pwn),并熟悉其中提到的工具。
17+
18+
对于快速入门和解题样例,可以阅读 [Pwn 二进制安全 - 快速入门](/learn/pwn)
19+
20+
## Web
21+
22+
### Pangbai 过家家(1)
23+
24+
<Container type='info'>
25+
26+
在做本题前,建议先完成题目:**Week1/Web/headach3**
27+
28+
</Container>
29+
30+
浏览器的开发者工具是个好东西,浏览器插件 HackBar 也是个好东西,另外你可能需要 BurpSuite、Yakit、curl 等发送 HTTP 请求的工具。
31+
32+
<Container type='tip'>
33+
34+
有关 Web 前端包括相关 Web 标准在内的知识,[MDN](https://developer.mozilla.org/zh-CN/) 非常齐全且易懂。
35+
36+
</Container>
37+
38+
这题考察的是 HTTP 报文的内容,你可能需要先了解这些内容:
39+
40+
- 什么是 Method、Header、请求体、响应体、状态码
41+
- Cookie 是什么?他有什么作用和特性?
42+
- User-Agent 的作用是什么?格式又是怎样的?
43+
44+
Header 中有各种各样的 Content-Type,每一种 Content-Type 所要求的请求体的格式可能是不一样的,你也需要了解其不同。
45+
46+
另外,Header 中的某些字段也用于「防盗链」,服务器检查请求来自哪里,如果不在白名单内就不给返回或返回其它内容,所以有时候在其他网站引用像 QQ 空间的图片会看到类似「图片无法显示」的内容。
47+
48+
JWT 在网页中经常用于存放一个数据<span data-desc>(例如你的登录凭据等)</span>,并被签名。只有知道签名所用到的 secret 值,才能够签名和验证签名正不正确。对于 JWT,分享一个好网站:[JWT.IO](https://jwt.io/).
49+
50+
<Container type='quote'>
51+
52+
Level 6 有什么用,还不是被神之右手所打败
53+
54+
</Container>
55+
56+
### 谢谢皮蛋🥚
57+
58+
<Container type='info'>
59+
60+
本题所需要的前期知识储备较多,如果你从未了解和接触过数据库和 SQL 语句,你可能需要花费一定的时间快速了解并尝试。
61+
62+
</Container>
63+
64+
本题考察的是 SQL 注入的知识点。
65+
66+
做本题前你需要去了解一下这些内容:
67+
68+
- 什么是数据库,什么是 MySQL
69+
- 一些 SQL 语法,如最常用的 SELECT 这些
70+
- SQL 注入的原理
71+
72+
找一些 SQL 注入的技巧,比如最简单的引号,联合注入需要的 `UNION``ORDER BY` 等。
73+
74+
当你实现 SQL 注入后,一般我们需要进行信息搜集,看看当前数据库名称是什么,有哪些表,表里面有哪些列,表里面一共有多少个元素,等等。
75+
76+
你可以尝试自己搭建环境来熟悉 MySQL 和 SQL 语句。
77+
78+
## Misc
79+
80+
### WhereIsFlag
81+
82+
题目考查的是一些基本的 Linux 命令和知识,你可以先自己通过 WSL 等虚拟机中自行练习 Linux 使用技能。
83+
84+
题目中仅是模拟 Linux 命令,并不完全和你的 Linux 终端有一样效果。

docs/guide/2024/week1/web.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

docs/learn/configure-pwn.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ titleTemplate: ':title | 快速入门 - NewStar CTF'
99
## 获取 IDE
1010

1111
::: tip
12-
一般只获取一个 IDE 即可,Pycharm 是专为 Python 开发的 IDE,VSCode 是通用的 IDE,可用于多种语言。
12+
一般只获取一个 IDE 即可,PyCharm 是专为 Python 开发的 IDE,VSCode 是通用的 IDE,可用于多种语言。
1313
:::
1414

1515
点击左下角菜单按钮,搜索 Software,进入 Ubuntu 软件商店。
1616

17-
若需安装 VSCode,则搜索「VSCode」下载即可。若需安装 Pycharm,搜索「Pycharm」,下载 Community 版本。
17+
若需安装 VSCode,则搜索「VSCode」下载即可。若需安装 PyCharm,搜索「PyCharm」,下载 Community 版本。
1818

1919
## 配置 root 密码
2020

docs/learn/pwn.md

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,9 @@ import 'element-plus/es/components/tag/style/css'
1212

1313
## 0xFF. Pwn 是干什么的?好吃🐎?
1414

15-
<Container type='tip'>
16-
Pwn 是一个黑客语法的俚语词,是指攻破设备或者系统。发音类似「砰」,对黑客而言,这就是成功实施黑客攻击的声音——「砰」的一声,被「黑」的电脑或手机就被你操纵了。
17-
<div style="display: inline-block; width: 100%; text-align: right;">——百度百科</div>
18-
</Container>
15+
Pwn 是由 own 引申而来的,它表示玩家处于胜利的优势。在黑客语法的俚语中,Pwn 是指攻破设备或者系统,发音类似「砰」。对黑客而言,利用一些漏洞成功实施黑客攻击,获取到服务器的权限并操纵,那么,This server just got pwned!
1916

20-
Pwn 需要的不仅是基本的 C 语言、汇编语言以及逆向功底,还有程序运行相关的知识。
17+
Pwn 需要的不仅是基本的 C 语言、汇编语言以及逆向功底,还有程序运行相关的知识。因此,你也可以选择先在逆向(Reverse)方向深造,当有一定了解后再来学习 Pwn 便会轻便许多。
2118

2219
## 0x00. 解决 Pwn 题目的基本流程
2320

@@ -43,7 +40,7 @@ Pwn 需要的不仅是基本的 C 语言、汇编语言以及逆向功底,还
4340
下载传送门:[IDA Pro 8.3](https://down.52pojie.cn/Tools/Disassemblers/IDA_Pro_v8.3_Portable.zip)
4441
:::
4542

46-
对于 Pwn 环境搭建,可参考文章:[Pwn 22.04 环境搭建保姆级教程](https://blog.csdn.net/j284886202/article/details/134931709)
43+
对于 Pwn 环境搭建,可参考 [Pwn 环境搭建](/learn/configure-pwn),或 [Pwn 22.04 环境搭建保姆级教程](https://blog.csdn.net/j284886202/article/details/134931709)
4744

4845
除此之外还建议在 Ubuntu 装个趁手的代码编辑器,如 [VSCode](https://code.visualstudio.com/).
4946

@@ -58,35 +55,39 @@ Pwn 需要的不仅是基本的 C 语言、汇编语言以及逆向功底,还
5855

5956
首先前置知识有基础的 C 语言、汇编、ELF 程序的加载运行知识。
6057

61-
前置 C 语言知识:
58+
**前置 C 语言知识:**
6259

6360
- 程序结构、基础语法
64-
- 数据类型、变量、常量 以及 变量作用域
65-
- 运算符
61+
- 数据类型、变量、常量以及变量作用域
6662
- `if` `switch` 分支语句、`for` `while` `do while` 循环
6763
- 函数和变量生命周期
68-
- 数组与指针、函数指针
69-
- 字符串
70-
- 结构体
64+
- 数组、字符串、结构体
65+
- 指针、函数指针
66+
- 指针的运算、解指针操作,以及与数组、字符串等常见类型的关系
67+
- 基本类型<span data-desc>(如 `int` `long long` `char` 和指针等)</span>的类型大小
7168
- 输入输出
7269
- 文件读写
7370
- 强制类型转换
71+
- 一个字段在结构体中的偏移
72+
- 常见不安全函数的特性<span data-desc>(如 `scanf` `gets` `read` `memcpy` 等)</span>
73+
- 堆栈<span data-desc>(指的是程序运行中的堆和栈)</span>等底层数据结构
7474

75-
前置汇编知识:
75+
**前置汇编知识:**
7676

7777
- 寄存器
78-
- x64 汇编基础语法
78+
- x86_64 汇编的阅读和简单的编写
79+
- 其他架构<span data-desc>(如 Arm、Risc-v)</span>汇编的阅读能力
7980
- 内存寻址
8081
- 函数调用以及栈帧变化
8182
- 中断
8283

83-
ELF 相关知识:
84+
**ELF 相关知识:**
8485

8586
- ELF 文件的结构:ELF每个段的作用、保护等
8687
- 程序的加载、动态链接、静态链接
87-
- ELF 程序的保护Canary、PIE、RELRO、NX)
88+
- ELF 程序的保护<span data-desc>(如 Canary、PIE、RELRO、NX)</span>
8889

89-
Pwn 知识:
90+
**Pwn 知识:**
9091

9192
- ret2text/ret2backdoor
9293
- 整数溢出
@@ -103,7 +104,7 @@ Pwn 知识:
103104

104105
## 0x03. Pwn 基础
105106

106-
### x64 汇编部分
107+
### x86_64 汇编部分
107108

108109
#### 寄存器
109110

docs/learn/qa.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,26 @@ import QACard from '@/components/docs/QACard.vue'
1414
刚入门,我该怎么学?
1515
</template>
1616
<template v-slot:answer>
17-
先看看入门低门槛题目熟悉一下,然后选择一个自己喜欢的方向,随后细看这个方向需要的一些基础。大多数仅作了解即可,题目遇到了再细看。
17+
18+
先看看入门低门槛题目<span data-desc>(参见 [写在前面](/learn/))</span>熟悉一下,然后选择一个自己喜欢的方向,随后细看这个方向需要的一些基础。大多数仅作了解即可,题目遇到了再细看。
19+
</template>
20+
</QACard>
21+
22+
<QACard>
23+
<template v-slot:question>
24+
不是计算机或信息(网络)安全的专业,可以学吗?
25+
</template>
26+
<template v-slot:answer>
27+
可以的。难度是会有一点的。但安全的领域很广泛,其中涉及的知识也并不只有计算机相关专业能发挥优势,并且对于大多数计算机专业的同学来说,CTF 也是比较新的形式。
28+
</template>
29+
</QACard>
30+
31+
<QACard>
32+
<template v-slot:question>
33+
很吃专业能力吗?
34+
</template>
35+
<template v-slot:answer>
36+
是,但又不完全是。专业能力是必要的,但不是唯一的,大多数人都是从零基础逐渐培养的。且诸如密码学、信息搜集、社会工程学等,解题和应急响应时需要的技巧和心理素质等,这些能力有时比专业知识更重要,它们无法从网络和教材中习得,只能在长期实践中逐渐培养。
1837
</template>
1938
</QACard>
2039

@@ -50,6 +69,7 @@ import QACard from '@/components/docs/QACard.vue'
5069
怎么选方向?
5170
</template>
5271
<template v-slot:answer>
72+
5373
看自己喜好。下面这些建议可供参考:
5474

5575
- Crypto:密码学,对数学感兴趣、有 OI/ACM 基础的同学相对容易入门

theme-config.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,10 @@ sidebar:
5454
'/guide/2024/':
5555
- text: 赛事信息
5656
link: /guide/2024/
57-
- text: Week 1
58-
collapsed: false
57+
- text: 解题参考
5958
items:
60-
- text: Web
61-
link: /guide/2024/week1/web
59+
- text: Week 1
60+
link: /guide/2024/week1
6261

6362
'/wp/2024/':
6463
- text: Week 1

theme/components/docs/Container.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup lang="ts">
22
withDefaults(
33
defineProps<{
4-
type: "info" | "tip" | "warning" | "danger";
4+
type: "info" | "tip" | "warning" | "danger" | "quote";
55
title?: string;
66
}>(),
77
{

theme/components/docs/QACard.vue

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,43 @@ import { ElCard } from "element-plus";
77
<p>
88
<ElCard class="qa-card" shadow="never">
99
<template #header>
10-
<div class="card-header"><span class="front-text">Q</span><slot name="question" /></div>
10+
<div class="qa-question"><slot name="question" /></div>
1111
</template>
12-
<span class="front-text">A</span><slot name="answer" />
12+
<div class="qa-answer"><slot name="answer" /></div>
1313
</ElCard>
1414
</p>
1515
</template>
1616

17+
<style lang="scss">
18+
.qa-card {
19+
p,
20+
ul {
21+
margin-bottom: 0;
22+
&:first-child {
23+
margin-top: 0;
24+
}
25+
}
26+
}
27+
</style>
28+
1729
<style lang="scss" scoped>
1830
.qa-card {
1931
--el-card-padding: 15px;
2032
}
21-
.front-text {
33+
.qa-question::before,
34+
.qa-answer::before {
2235
font-size: 1.5em;
2336
font-weight: bold;
2437
float: left;
2538
margin-right: 10px;
2639
line-height: 1;
2740
}
41+
42+
.qa-question::before {
43+
content: "Q";
44+
}
45+
46+
.qa-answer::before {
47+
content: "A";
48+
}
2849
</style>

theme/styles/custom-block.scss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,14 @@
5454
@include paragraph;
5555
@include code-color(var(--block-danger), var(--block-bg-danger));
5656
}
57+
58+
&.quote {
59+
@include basic-block;
60+
background-color: var(--block-bg-quote);
61+
border-left: 5px solid var(--block-quote);
62+
@include paragraph;
63+
@include code-color(var(--block-quote), var(--block-bg-quote));
64+
}
5765
}
5866

5967
.vp-doc .custom-block {
@@ -67,19 +75,23 @@
6775
--block-info: #409eff;
6876
--block-warning: #e6a23c;
6977
--block-danger: #f56c6c;
78+
--block-quote: #747d8c;
7079
--block-bg-tip: #{rgba(#67c23a, 0.1)};
7180
--block-bg-info: #{rgba(#409eff, 0.1)};
7281
--block-bg-warning: #{rgba(#e6a23c, 0.1)};
7382
--block-bg-danger: #{rgba(#f56c6c, 0.1)};
83+
--block-bg-quote: #{rgba(#747d8c, 0.1)};
7484
}
7585

7686
.dark {
7787
--block-tip: #67c23a;
7888
--block-info: #409eff;
7989
--block-warning: #e6a23c;
8090
--block-danger: #f56c6c;
91+
--block-quote: #747d8c;
8192
--block-bg-tip: #{rgba(#67c23a, 0.1)};
8293
--block-bg-info: #{rgba(#409eff, 0.1)};
8394
--block-bg-warning: #{rgba(#e6a23c, 0.1)};
8495
--block-bg-danger: #{rgba(#f56c6c, 0.1)};
96+
--block-bg-quote: #{rgba(#747d8c, 0.1)};
8597
}

0 commit comments

Comments
 (0)