陇剑杯 2021刷题记录

题目位置:https://www.nssctf.cn/上有

陇剑杯 2021

1. 签到题

题目描述:
此时正在进行的可能是__________协议的网络攻击。(如有字母请全部使用小写,填写样例:http、dns、ftp)。得到的flag请使用NSSCTF{}格式提交。

分析:此时正在进行的可能是__协议的网络攻击。

wireshark打开下载的附件Good.pcapng
查看统计出的协议分级
在这里插入图片描述在TCP协议里HTTP协议占了大部分。
过滤http协议,发现大量的403返回提示请求失败
在这里插入图片描述
答案:NSSCTF{http}

小结

  • 考察流量包中的协议统计:Wireshark -> 统计 -> 协议分级。
  • HTTP,全称是 HyperText Transfer Protocol,中文叫做超文本传输协议。它是一种用于分布式、协作式和超媒体信息系统的应用层协议。
  • HTTP 协议是应用层协议,主要解决如何包装数据,是基于TCP连接的。

2. jwt

题目描述:
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:(如有字母请全部使用小写)。得到的flag请使用NSSCTF{}格式提交。

  1. 该网站使用了______认证方式。(如有字母请全部使用小写)。得到的flag请使用NSSCTF{}格式提交。
  2. 黑客绕过验证使用的jwt中,id和username是______。(中间使用#号隔开,例如1#admin)。得到的flag请使用NSSCTF{}格式提交。
  3. 黑客获取webshell之后,权限是______?。得到的flag请使用NSSCTF{}格式提交。
  4. 黑客上传的恶意文件文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)。得到的flag请使用NSSCTF{}格式提交。
  5. 黑客在服务器上编译的恶意so文件,文件名是_____________。(请提交带有文件后缀的文件名,例如x.so)。得到的flag请使用NSSCTF{}格式提交。
  6. 黑客在服务器上修改了一个配置文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)。得到的flag请使用NSSCTF{}格式提交。

析1:该网站使用了__认证方式。

wireshark打开下载的附件goroot.pcapng,追踪TCP流,在tcp.stream eq 1 发现通过token认证登录
在这里插入图片描述

答案:NSSCTF{jwt}

小结

  • 常见的登录认证方式:OAuth 令牌授权、Cookie\Session认证、Token认证。
  • 基于JWT的Token认证:JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。 JWT是由三段信息构成的,将这三段信息文本用小数点连接就构成了Jwt字符串
  • JWT组成:第一部分header,放入token的类型(“JWT”)和算法名称(RS256等);第二部分payload,放入用户的不敏感信息(用户id等);第三部分signature,根据不公开的秘钥加上header中声明的算法,生成特定的签名。最终三部分组合起来即形成了token,发送给客户端。

析2:黑客绕过验证使用的jwt中,id和username是__。(中间使用#号隔开)

执行whoami时,前面都提示需要管理员权限
在tcp.stream eq 10中,执行命令成功回显root,因此该处的token为所需的数据。
在这里插入图片描述
对应的token为:
token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwODcsIk1hcENsYWltcyI6eyJ1c2VybmFtZSI6ImFkbWluIn19.rurQD5RYgMrFZow8r-k7KCP13P32sF-RpTXhKsxzvD0
对其进行base64解密:
在这里插入图片描述

答案:NSSCTF{10087#admin}

小结

  • JWT的token认证生成: jwt生成的token是由三段字符串拼接而成,使用.连接起来。
  • 第一、二部分可以通过Base64解密得到,但第三部分不可以!

当前题目中:
token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwODYsIk1hcENsYWltcyI6eyJhdWQiOiJhZG1pbiIsInVzZXJuYW1lIjoiYWRtaW4ifX0.dJArtwXjas3_Cg9a3tr8COXF7DRsuX8UjmbC1nKf8fc
在这里插入图片描述

  • token的第一段字符串:由json数据{“alg”:“HS256”,“typ”:“JWT”}通过base64(可逆)加密算法得到。
"alg": "HS256"	//第三段字符串的不可逆加密类型HS256
"typ": "JWT"	//token类型JWT
  • token的第二段字符串:是由payload信息{“id”:10087,“MapClaims”:{“username”:“admin”}}通过base64(可逆)加密算法得到。
payload信息为自定义值,一般不放敏感信息
"id":10087	//用户id
"MapClaims"	//这是一个嵌套的JSON对象,其中包含了特定的声明(claims)。在JWT(JSON Web Tokens)和其他认证协议中,声明是用来传递有关主题(通常是用户)的信息。
"username":"admin"	//用户名信息
  • token的第三段字符串构成:先将第一段和第二段的密文拼接起来,然后对拼接起来的密文字符串和自定义的盐进行上边指定的HS256加密,最后对HS256加密后的密文再做base64加密。

析3:黑客获取webshell之后,权限是__。

根据第二小题中,可知最终提权得到的管理员用户是root。
在TCP流tcp.stream eq 30中,查看/tmp目录时也得到了验证:
在这里插入图片描述

答案:NSSCTF{root}

析4:黑客上传的恶意文件文件名是__。(请提交带有文件后缀的文件名)

在TCP流tcp.stream eq 13中,将命令执行结果传入了/tmp/1.c文件中:
在这里插入图片描述

答案:NSSCTF{1.c}

析5:黑客在服务器上编译的恶意so文件,文件名是__。(请提交带有文件后缀的文件名)

在tcp.stream eq 16中,
在这里插入图片描述
解密此命令,发现文件looter.so
在这里插入图片描述

答案:NSSCTF{looter.so}

析6:黑客在服务器上修改了一个配置文件,文件的绝对路径为__。

在第25个TCP流中,
在这里插入图片描述在第26个TCP流中,将结果输入到/etc/pam.d/common-auth
在这里插入图片描述
在第27个TCP流中,查看执行结果
在这里插入图片描述

答案:NSSCTF{/etc/pam.d/common-auth}

3. webshell

题目描述:
单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:

  1. 黑客登录系统使用的密码是_____________。。得到的flag请使用NSSCTF{}格式提交。
  2. 黑客修改了一个日志文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)。得到的flag请使用NSSCTF{}格式提交。
  3. 黑客获取webshell之后,权限是______?得到的flag请使用NSSCTF{}格式提交。
  4. 黑客写入的webshell文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)。得到的flag请使用NSSCTF{}格式提交。
  5. 黑客上传的代理工具客户端名字是_____________。(如有字母请全部使用小写)。得到的flag请使用NSSCTF{}格式提交。
  6. 黑客代理工具的回连服务端IP是_____________。得到的flag请使用NSSCTF{}格式提交。
  7. 黑客的socks5的连接账号、密码是______。(中间使用#号隔开,例如admin#passwd)。得到的flag请使用NSSCTF{}格式提交。

析1:黑客登录系统使用的密码是__。

wireshark打开下载的附件hack.pcap
根据常见的登录关键词过滤http contains loginhttp contains user
在这里插入图片描述
查看到输入的用户名和密码,追踪该用户是否成功登录,返回200
在这里插入图片描述
答案:NSSCTF{Admin123!@#}

析2:黑客修改了一个日志文件,文件的绝对路径为__。

根据Logs关键词查找http contains .log
在这里插入图片描述
追踪TCP流25:
在这里插入图片描述
得到日志文件的相对路径。可根据常见服务器根目录/var/www/html,拼接成绝对路径。
使用pwd关键词过滤http contains pwd
在这里插入图片描述在这里插入图片描述

分析tcp流31:
在这里插入图片描述发送pwd命令请求,成功回显200:
在这里插入图片描述
返回的信息中包含了根目录/var/www/html。

答案:NSSCTF{/var/www/html/data/Runtime/Logs/Home/21_08_07.log}

析3:黑客获取webshell之后,权限是__。

先试试关键词http contains whoami
在这里插入图片描述
追踪后面的那条HTTP流,发现执行whoami命令成功,回显中的用户为www-data
在这里插入图片描述

答案:NSSCTF{www-data}

析4:黑客写入的webshell文件名是__。

在第33个TCP流中,文件执行shell命令,并写入1.php文件
在这里插入图片描述
这个命令采用了base64编码,解码是:
在这里插入图片描述
答案:NSSCTF{1.php}

析5:黑客上传的代理工具客户端名字是__。

根据前面shell的连接密码aaa搜索http contains aaa
在这里插入图片描述
答案:NSSCTF{frpc}

析6:黑客代理工具的回连服务端IP是__。

迷茫了,在后面的tcp流里面翻了半天
前面连接的时候其实就应该有代理,真是傻了
在这里插入图片描述
将这个tcp流放到burpsuite里面解码,转换十六进制,修改类型为ASCII hex
在这里插入图片描述

答案:NSSCTF{192.168.239.123}

析7:黑客的socks5的连接账号、密码是__。(中间使用#号隔开)

在上面一题中,解码出来里面包含了socks5的账号信息
在这里插入图片描述
粘不出来,换个工具
在这里插入图片描述

答案:NSSCTF{0HDFt16cLQJ#JTN276Gp}

4. 日志分析

题目描述:
单位某应用程序被攻击,请分析日志,进行作答:

  1. 网络存在源码泄漏,源码文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)。得到的flag请使用NSSCTF{}格式提交。
  2. 分析攻击流量,黑客往/tmp目录写入一个文件,文件名为_____________。得到的flag请使用NSSCTF{}格式提交。
  3. 分析攻击流量,黑客使用的是______类读取了秘密文件。得到的flag请使用NSSCTF{}格式提交。

析1:网络存在源码泄漏,源码文件名是__。

先处理下载的附件access.log日志文件,将内容复制到表格中并对数据进行分列
在这里插入图片描述
对请求的URL内容进行转义:将%2e替换为.,将%2f替换为/,将%3f替换为?
筛选请求成功的记录
在这里插入图片描述
答案:NSSCTF{www.zip}

小结

编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。

字符含义十六进制值编码
+URL 中 + 号表示空格%2B
空格URL中的空格可以编码为 + 号或者 %20%20
/分隔目录和子目录%2F
?分隔实际的 URL 和参数%3F
%指定特殊字符%25
#表示书签%23
&URL 中指定的参数间的分隔符%26
=URL 中指定参数的值%3D

参考链接:https://blog.csdn.net/ccc369639963/article/details/123398268

析2:黑客往/tmp目录写入一个文件,文件名为___。

筛选请求中有/tmp目录的记录
在这里插入图片描述
转义URL
在这里插入图片描述
答案:NSSCTF{sess_car}

析3:黑客使用的是__类读取了秘密文件。

上一题后面是一串序列化字符,可尝试解读:

func:
files:Array
(
	[filename] =>./files/filename
	[call_user_func_array] => ./file/call_user_func_array
)
paths:Array
(
	[/flag] => SplFileObject
)

答案:NSSCTF{SplFileObject}

小结:

序列化格式中的字母含义:
a - array
b - boolean
d - double
i - integer
o - common object
r - reference
s - string
C - custom object
O - class
N - null
R - pointer reference
U - unicode string
类方法并不会参与到实例化里面
需要注意的是变量受到不同修饰符(public,private,protected)修饰进行序列化时,序列化后变量的长度和名称会发生变化。   

参考链接:https://blog.csdn.net/qq_31088019/article/details/126519989

5. 内存分析

工具安装及刷题记录

网管小王制作了一个虚拟机文件,让您来分析后作答:

  1. 虚拟机的密码是_____________。(密码中为flag{xxxx},含有空格,提交时不要去掉)。得到的flag请使用NSSCTF{}格式提交。
  2. 虚拟机中有一个某品牌手机的备份文件,文件里的图片里的字符串为_____________。(解题过程中需要用到上一题答案中flag{}内的内容进行处理。本题的格式也是flag{xxx},含有空格,提交时不要去掉)。得到的flag请使用NSSCTF{}格式提交。

析1:虚拟机的密码

使用Volatility镜像解析工具:
vol.py -f 镜像文件 imageinfo	#获取内存镜像的摘要信息,比如系统版本,硬件构架等
vol.py -f 镜像文件 --profile=操作系统 lsadump	#从注册表中提取LSA密钥信息
vol.py --plugins=./volatility/plugins/ mimikatz -f 镜像文件 --profile=操作系统	#使用mimikatz插件获取Windows系统中泄露的凭据
  1. 探测镜像文件基本信息vol.py -f /home/kali/桌面/0/Target.vmem imageinfo
    在这里插入图片描述
    最可能的操作系统是:Win7SP1x64

  2. mimikatz探索凭证vol.py --plugins=./volatility/plugins/ mimikatz -f /home/kali/桌面/0/Target.vmem --profile=Win7SP1x64
    在这里插入图片描述
    答案:NSSCTF{W31C0M3 T0 THiS 34SY F0R3NSiCX}

析2:虚拟机中有一个某品牌手机的备份文件,文件里的图片里的字符串为__。

vol.py -f Target.vmem --profile=Win7SP1x64 filescan	#扫描内存中的文件
vol.py -f Target.vmem --profile=Win7SP1x64 filescan | grep CTF	#filescan结合grep命令来进行筛选
vol.py -f Target.vmem --profile=Win7SP1x64 dumpfiles -Q 进程ID -D 放入的文件夹	#dumpfiles导出内存中缓存的文件
  1. 扫描文件,根据关键词CTF筛选,发现有关于HUAWEI的备份信息
    vol.py -f /home/kali/桌面/0/Target.vmem --profile=Win7SP1x64 filescan | grep HUAWEI
    在这里插入图片描述

  2. 提取第一个文件
    mkdir /home/kali/桌面/0/1
    vol.py -f /home/kali/桌面/0/Target.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007d8c7d10 -D /home/kali/桌面/0/1
    在这里插入图片描述
    得到两个文件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    里面存在一个 images0.tar.enc华为加密文件,先解压dat文件,然后尝试解密

  3. 解压备份文件unzip file.None.0xfffffa80037e0af0.dat
    在这里插入图片描述

  4. 解密华为备份文件:使用kobackupdec.py脚本
    在这里插入图片描述
    用户密码就是上一题的Flag,将里面的空格改成下划线:W31C0M3_T0_THiS_34SY_F0R3NSiCX
    破解文件python3 kobackupdec.py -vvv "W31C0M3_T0_THiS_34SY_F0R3NSiCX" "/home/kali/桌面/0/1/HUAWEI P40_2021-aa-bb xx.yy.zz/" "/home/kali/桌面/0/2/"
    在这里插入图片描述在这里插入图片描述答案:NSSCTF{TH4NK Y0U FOR DECRYPTING MY DATA}

小结

  1. Volatility工具:
-f 	指定镜像文件 
--profile	指定操作系统
imageinfo	获取内存镜像的摘要信息,比如系统版本,硬件构架等
lsadump	从注册表中提取LSA密钥信息
filescan	扫描内存中的文件
dumpfiles	导出内存中缓存的文件
vol.py --plugins=./volatility/plugins/ mimikatz -f 镜像文件 --profile=操作系统	#使用mimikatz插件获取Windows系统中泄露的凭据
vol.py -f Target.vmem --profile=Win7SP1x64 filescan | grep CTF	#filescan结合grep命令来进行筛选
vol.py -f Target.vmem --profile=Win7SP1x64 dumpfiles -Q 进程ID -D 放入的文件夹	#dumpfiles导出内存中缓存的文件
  1. 解密华为备份文件kobackupdec:
    kobackupdec.py [-h] [-v] password backup_path dest_path
  • password, is the user provided password.
  • backup_path, is the folder containing the Huawei backup, relative or absolute paths can be used.
  • dest_path, is the folder to be created in the specified path, absolute or relative. It will complain if the provided folder already exists.
  • [-v] (from -v to -vvv) verbosity level, written on stderr. It’s suggested to use -vvv with a redirect to get a log of the process.`
    注意,指定解压路径时,必须是没有创建的文件夹,不然会报错。

6.简单日志分析

某应用程序被攻击,请分析日志后作答:

  1. 黑客攻击的参数是______。(如有字母请全部使用小写)。得到的flag请使用NSSCTF{}格式提交。
  2. 黑客查看的秘密文件的绝对路径是_____________。得到的flag请使用NSSCTF{}格式提交。
  3. 黑客反弹shell的ip和端口是_____________。(格式使用“ip:端口",例如127.0.0.1:2333)。得到的flag请使用NSSCTF{}格式提交。

析1:黑客攻击的参数是__。

将附件app.log日志信息放到表格里面,根据空格分列便于数据处理。
根据状态码,有三条数据请求的响应码为500,其他都是404
在这里插入图片描述
可知攻击的参数为 user
答案:NSSCTF{user}

析2:黑客查看的秘密文件的绝对路径是__。

在这里插入图片描述
base64解码:
在这里插入图片描述
答案:NSSCTF{/Th4s_IS_VERY_Import_Fi1e}

析3:黑客反弹shell的ip和端口是___。

在这里插入图片描述base64解码时,出现了乱码的情况
重新细看,发现中间存在%2b,将其转换为+号,再解密
在这里插入图片描述

答案:NSSCTF{192.168.2.197:8888}

7.SQL注入

某应用程序被攻击,请分析日志后作答:

  1. 黑客在注入过程中采用的注入手法叫_____________。(格式为4个汉字,例如“拼搏努力”)。得到的flag请使用NSSCTF{}格式提交
  2. 黑客在注入过程中,最终获取flag的数据库名、表名和字段名是_____________。(格式为“数据库名#表名#字段名”,例如database#table#column)。得到的flag请使用NSSCTF{}格式提交。
  3. 黑客最后获取到的flag字符串为_____________。得到的flag请使用NSSCTF{}格式提交。

析1:黑客在注入过程中采用的注入手法叫__。

将附件access.log放到表格中:
在这里插入图片描述%20替换为空格:
在这里插入图片描述
答案:NSSCTF{布尔盲注}

析2:最终获取flag的数据库名、表名和字段名是___。

方式一:直接查看最终爆破的请求,里面包含了前面判断出的数据库名、表名和列名:
在这里插入图片描述
方式二:根据步骤,按照响应长度判断最终成功的字符
在这里插入图片描述
数据库第一个字符为:s
在这里插入图片描述
数据库名:sqli
在这里插入图片描述
表名:flag
在这里插入图片描述
列名:flag

答案:NSSCTF{sqli#flag#flag}

析3:黑客最后获取到的flag字符串为__。

在这里插入图片描述
%7B 是URL编码中表示左花括号{ 的字符。%7D 是URL编码中表示右花括号 } 的字符。
提取出爆破出的内容为:flag{deddcd67-bcfd-487e-b940-1217e668c7db}
答案:NSSCTF{deddcd67-bcfd-487e-b940-1217e668c7db}

  • 15
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值