24数证杯决赛

1. 分析网络流量包,请问目录遍历攻击开始时间是什么时候?(答案格式:1990-01-01 01:01:01)

2024-10-24 17:26:12

2. 分析网络流量包,可以发现哪种攻击行为? (1.0分)

A. 网络钓鱼
B. SQL注入
C. 拒绝服务攻击
D. 恶意软件传播
E. 中间人攻击

3. 分析网络流量包,黑客获取到的数据库名称是?(答案格式:小写)

把上面的表达式转换出来就是

1
2
3
SELECT GROUP_CONCAT(table_name)
FROM information_schema.tables
WHERE table_schema = 'secret'

secret

4. 分析网络流量包,黑客通过时间盲注获取到的数据是什么?(答案格式:与实际大小写保持一致)

时间盲注,这里使用了sleep(3),就是如果满足条件就延迟三秒,从而达到获取数据的目的,题目中用的是字段的ascii码是否大于某个值,比如这里设定大于x+1,如果有回显,我们设定为x,如果没有回显,那就说明ascii码就是x+1了。 用数学方法表示就是x+1>=ascii码>x,比如第一个字符就是84有回显,但是83没有回显,所以,第一个字符的ascii码就是84

这里手搓也行,我这里用了ctfneta

这里附一个大佬写的脚本2024数证杯决赛个人 - WXjzc - 博客园

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import pyshark
import re

# 设置 pcapng 文件路径
cap_file = r"G:\tmp\2024数证杯个人\时间盲注.pcapng"

# 打开 pcapng 文件并解析 HTTP 包
cap = pyshark.FileCapture(cap_file, display_filter="http")
# 创建一个字典来保存请求和响应的关系
requests = {}
pattern = r'200,1\),(\d{1,2}),1\)\)\)%3E(\d+),sleep'
sqls = {}
# 遍历所有 HTTP 包
for packet in cap:
tcp_stream = packet.tcp.stream
dic = {
'request_uri':'',
'response_code':''
}
if 'HTTP' in packet:
if hasattr(packet.http, 'request_method'):
if tcp_stream not in sqls:
dic['request_uri'] = packet.http.request_uri
sqls[tcp_stream] = dic
else:
dic = sqls[tcp_stream]
dic.update({'request_uri':packet.http.request_uri})
sqls[tcp_stream] = dic
if hasattr(packet.http, 'response_code'):
if tcp_stream not in sqls:
dic['response_code'] = packet.http.response_code
sqls[tcp_stream] = dic
else:
dic = sqls[tcp_stream]
dic.update({'response_code':packet.http.response_code})
sqls[tcp_stream] = dic

words = {}
for i in range(1,100):
words[str(i)] = {
'_min':0,
'_max':9999
}
for key,value in sqls.items():
uri = value['request_uri']
response_code = value['response_code']
matches = re.findall(pattern, uri)
if matches:
pos = matches[0][0]
asc = int(matches[0][1])
_min = words[pos]['_min']
_max = words[pos]['_max']
if response_code == '200':
if asc < _max:
words[pos]['_max']=asc
else:
if asc > _min:
words[pos]['_min']=asc

for key,value in words.items():
if value['_max'] == value['_min']+1:
print(chr(value['_max']),end='')
# 关闭文件捕获
cap.close()
#Th!s_1s_5ecret!

5. 分析网络流量包,黑客使用什么webshell管理工具控制服务器?(答案格式:请写中文名,无需填写版本号)

筛选一下传post的数据

webshell管理工具的流量特征分析

这是冰蝎的一个强特征

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

随便点进去看就能看到

冰蝎

6. 分析网络流量包,黑客通过后门执行的最后一条命令是什么?(答案格式:与实际大小写保持一致)

最简单的办法,一把梭:

这里最后一个上传是No.453829,ctfneta选择冰蝎流量分析:

最后一个指令是$cmd=”type login.php“;\r\nmain($cmd);’