@@ -3,7 +3,6 @@ titleTemplate: ':title | 参考文档 - NewStar CTF 2024'
3
3
---
4
4
<script setup >
5
5
import Container from ' @/components/docs/Container.vue'
6
- import Text from ' @/components/docs/NonTextDetectable.vue'
7
6
</script >
8
7
9
8
# Week 4
@@ -14,22 +13,20 @@ import Text from '@/components/docs/NonTextDetectable.vue'
14
13
15
14
### ezcmsss
16
15
17
- <Container type =' tip ' >
18
-
19
- 本题考察的是对于 CMS 站点的测试利用。
16
+ <Container type =' info ' >
20
17
18
+ 本题考查的是对于 CMS 站点的测试利用。
21
19
</Container >
22
20
23
21
针对一些站点,一般通过收集该站点所采用的框架及其版本,通过一些[ 在线漏洞平台] ( https://avd.aliyun.com/ ) 搜索历史漏洞并完成利用。
24
22
25
- 遇到没思路的题,可以先找几个常见的路径测试一下,如 `` /robots.txt `` , `` /upload ` ` 等,或者看看有没有源码泄露。
23
+ 遇到没思路的题,可以先找几个常见的路径测试一下,如 ` /robots.txt ` ` /upload ` 等,或者看看有没有源码泄露。
26
24
27
25
### 臭皮踩踩背
28
26
29
- <Container type =' tip ' >
30
-
31
- 本题在 Javascript 原型链污染漏洞的基础上考察了一个 RCE 技巧。
27
+ <Container type =' info ' >
32
28
29
+ 本题在 JavaScript 原型链污染漏洞的基础上考查了一个 RCE 技巧。
33
30
</Container >
34
31
35
32
关于原型链污染漏洞,可以参考下面两篇文章:
@@ -39,108 +36,107 @@ import Text from '@/components/docs/NonTextDetectable.vue'
39
36
40
37
在了解原型链污染漏洞后,如果你想不到需要污染的变量,这里有一份可能对解题有帮助的[ 官方文档] ( https://nodejs.cn/api/cli/node_options_options.html ) 。
41
38
42
- <Container type =' tip ' >
43
-
39
+ ::: tip
44
40
建议想要深入学习 Web 的选手准备一台具有公网 IP 的云服务器用于反弹 Shell,以方便 RCE.
45
-
46
- </Container >
41
+ :::
47
42
48
43
### chocolate
49
44
50
- <Container type =' tip ' >
51
-
52
- 本题考察了对 php 代码的基础审计和反序列化的利用示范, 很多地方可能并不需要很强的脚本编写能力就能在网上找到参考脚本, 但是希望你能把别人的方法转换为自己的思考, 这将有利于你未来的学习
45
+ <Container type =' info ' >
53
46
47
+ 本题考查了对 PHP 代码的基础审计和反序列化的利用示范, 很多地方可能并不需要很强的脚本编写能力就能在网上找到参考脚本, 但是希望你能把别人的方法转换为自己的思考, 这将有利于你未来的学习
54
48
</Container >
55
49
56
- 同时本题看似是「套娃」,实则一点都不难,也希望坚持到 Week4 的师傅们能从中体会到一些上升的乐趣。
50
+ 同时本题看似是「套娃」,实则一点都不难,也希望坚持到 Week 4 的师傅们能从中体会到一些上升的乐趣。
57
51
58
52
### blindsql2
59
53
60
54
遇到要自己手写注入脚本的题,为了防止出错,可以分多步完成。
61
55
62
- 1 . 写一个 SQL 语句,能够查出所有的表名,并且合在一行 `` (select(group_concat(table_name))from(infOrmation_schema.tables)where((table_schema)like(database()))) ``
56
+ 1 . 写一个 SQL 语句,能够查出所有的表名,并且合在一行
57
+
58
+ ``` sql
59
+ (select (group_concat(table_name))from (infOrmation_schema .tables )where ((table_schema)like (database())))
60
+ ```
61
+
62
+ 2 . 写一个 SQL 语句,返回一个字符串的第 i 个字符 ` (select substr(%s,i,1))` ,其中 ` %s` 替换为你需要的字符串,比如和上面写出来的表名合在一起:
63
63
64
- 2 . 写一个 SQL 语句,返回一个字符串的第 i 个字符 `` (select substr(%s,i,1)) `` ,其中 `` %s `` 替换为你需要的字符串,比如和上面写出来的表名合在一起:
65
- ````
64
+ ` ` ` sql
66
65
(select substr(
67
- (Select(group_concat(table_name))from(infOrmation_schema.tables)where((table_schema)like(database()))),i,1))
68
- ````
66
+ (Select(group_concat(table_name))from(infOrmation_schema.tables)where((table_schema)like(database()))),
67
+ i,1
68
+ ))
69
+ ` ` `
70
+
71
+ 3 . 写一个 SQL 语句,判断一个字符的 ASCII 值是否等于某个值:` select (ascii ( %c ) =%d )`
72
+
73
+ 4 . 假如某个值是 1 的时候,程序延时 1 秒:` select (if ( %s , sleep(1) , 0 ))`
69
74
70
- 3. 写一个 SQL 语句,判断一个字符的 ASCII 值是否等于某个值: ``select (ascii ( %c ) =%d )``
75
+ 以上 4 个合在一起,就变成了:
71
76
72
- 4. 假如某个值是 1 的时候,程序延时 1 秒: ``select (if ( %s , sleep(1) , 0 ))``
77
+ 当表名字符串的第 i 个字符的 ASCII 值等于 %d 的时候,程序延时 1 秒
73
78
74
- 以上 4 个合在一起,就变成了:
79
+ ` ` ` sql
80
+ if ((ascii(
81
+ substr(
82
+ (Select(group_concat(table_name))from(infOrmation_schema.tables)where((table_schema)like(database()))),
83
+ i,1)
84
+ )=%d),sleep(1),0)
85
+ ` ` `
75
86
76
- 当表名字符串的第 i 个字符的 ASCII 值等于 %d 的时候,程序延时 1 秒
77
- ```
78
- if ((ascii(substr(
79
- (Select(group_concat(table_name))from(infOrmation_schema.tables)where((table_schema)like(database()))),i,1))=%d),sleep(1),0)
80
- ```
81
- 希望选手编写脚本,以避免每次尝试都需要进行上述繁琐的过程。
87
+ 希望选手编写脚本,以避免每次尝试都需要进行上述繁琐的过程。
82
88
83
89
# ## 隐藏的密码
84
90
85
91
出题思路主要来源于两篇文章:
86
92
87
- - https://forum.butian.net/share/99
88
- - https://forum.butian.net/share/103
93
+ - [Spring Boot Fat Jar 写文件漏洞到稳定 RCE 的探索]( https:// forum .butian .net/ share/ 99 )
94
+ - [最全 Spring Boot 相关漏洞学习汇总]( https:// forum .butian .net/ share/ 103 )
89
95
90
96
作为给新生入门的 Java 题,由于要降低难度,没有设置 SpringBoot 的 RCE 解法,但是思路其实都是 SpringBoot 在不解析 JSP 的情况下,如何进行 RCE 的问题,如果不从 SpringBoot 本身出发,就从系统层面出发,这里没有限制利用的方式,计划任务和系统命令劫持均可。
91
97
92
98
# ## PangBai 过家家(4)
93
99
94
- <Container type='tip'>
95
-
96
- 本题主要 GoLang 中 SSTI 的利用,并考查了 SSRF(服务端请求伪造)的常见技巧。
100
+ < Container type= ' info' >
97
101
102
+ 本题主要考查 GoLang 中 SSTI 的利用,并考查了 SSRF(服务端请求伪造)的常见技巧。
98
103
< / Container>
99
104
100
105
题目给出了源码,并自带 Hint 文件。选手需要阅读并理解 main .go 中的不同路由的逻辑。
101
106
102
- 对于 curl 命令,选手可以自行了解 curl 所支持的协议,不止 HTTP、FTP、File 等协议。本题不需要出网。
107
+ 对于 ` curl` 命令,选手可以自行了解 ` curl` 所支持的协议,不止 HTTP、FTP、File 等协议。本题不需要出网。
103
108
104
109
完整的利用链步骤可能较多,希望选手能够自己写一个脚本完成自动化过程。例如,只需要修改脚本中的一个文件地址的字符串,就能完成对这个文件的任意文件读利用。
105
110
106
- <Container type='tip'>
107
-
111
+ ::: tip
108
112
推荐选手通过源码自行开启 Docker 环境,并先在本地打通题目。
109
-
110
- </Container>
113
+ :::
111
114
112
115
# # Reverse
113
116
114
117
# ## MazE
115
118
116
- [pipe通信 ](https://www.cnblogs.com/wuyepeng/p/9747557.html)
119
+ 推荐一篇有关 Linux 下 pipe 通信的文章:[Linux下进程间通信方式—— pipe(管道) ](https:// www .cnblogs .com/ wuyepeng/ p/ 9747557 .html).
117
120
118
- 如果你已经找到了迷宫地图,但是苦于迷宫过大,那可以去学习一下[搜索算法](https://blog.csdn.net/qq_40258761/article/details/88678093)
121
+ 如果你已经找到了迷宫地图,但是苦于迷宫过大,那可以去学习一下[搜索算法](https:// blog .csdn .net/ qq_40258761/ article/ details/ 88678093 )。
119
122
120
123
# ## easygui
121
124
122
- <Container type='tip'>
123
-
124
- [windows消息循环](https://blog.csdn.net/liulianglin/article/details/14449577)
125
-
126
- </Container>
125
+ 关于 Windows 消息循环 的一篇文章:[深入理解 Windows 消息机制](https:// blog .csdn .net/ liulianglin/ article/ details/ 14449577 )
127
126
128
127
# # Crypto
129
128
130
129
# ## 俱以我之名
131
130
132
- <Container type='tip '>
131
+ < Container type= ' quote ' >
133
132
134
- ``[我是谁?]``
133
+ 编辑者并不知道出题人想表达什么,出题人只留下了下面的内容。
135
134
135
+ ` [我是谁?]`
136
136
< / Container>
137
137
138
138
# # Misc
139
139
140
140
# ## CRC
141
141
142
- <Container type='tip'>
143
-
144
- 本题考察了对 PNG 格式文件的识别和修复, 对一些常见文件二进制特征敏感, 会在某些时候发挥关键作用(比如在流量分析中看到 JPG 文件头等)
145
-
146
- </Container>
142
+ 本题考查了对 PNG 格式文件的识别和修复,对一些常见文件二进制特征敏感,会在某些时候发挥关键作用(比如在流量分析中看到 JPG 文件头等)
0 commit comments