陇剑杯 2021
- [1. 签到题](#1. 签到题)
- [2. jwt](#2. jwt)
- [3. webshell](#3. webshell)
1. 签到题
题目描述
此时正在进行的可能是__________协议的网络攻击。(如有字母请全部使用小写,填写样例:http、dns、ftp)。得到的flag请使用NSSCTF{}格式提交。
分析
wireshark打开下载的附件Good.pcapng
查看统计出的协议分级
在TCP协议里HTTP协议占了大部分。
过滤http协议,发现大量的403返回提示请求失败
答案
答案:NSSCTF{http}
小结
- 考察流量包中的协议统计:Wireshark -> 统计 -> 协议分级。
- HTTP,全称是 HyperText Transfer Protocol,中文叫做超文本传输协议。它是一种用于分布式、协作式和超媒体信息系统的应用层协议。
- HTTP 协议是应用层协议,主要解决如何包装数据,是基于TCP连接的。
2. jwt
问1
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
该网站使用了______认证方式。(如有字母请全部使用小写)。得到的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是______。(中间使用#号隔开,例如1#admin)。得到的flag请使用NSSCTF{}格式提交。
析2
执行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之后,权限是______?。得到的flag请使用NSSCTF{}格式提交。
析3
根据第二小题中,可知最终提权得到的管理员用户是root。
在TCP流tcp.stream eq 30中,查看/tmp目录时也得到了验证:
答案
答案:NSSCTF{root}
问4
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
黑客上传的恶意文件文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)。得到的flag请使用NSSCTF{}格式提交。
析4
在TCP流tcp.stream eq 13中,将命令执行结果传入了/tmp/1.c文件中:
答案
答案:NSSCTF{1.c}
问5
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
黑客在服务器上编译的恶意so文件,文件名是_____________。(请提交带有文件后缀的文件名,例如x.so)。得到的flag请使用NSSCTF{}格式提交。
析5
在tcp.stream eq 16中,
解密此命令,发现文件looter.so
答案
答案:NSSCTF{looter.so}
问6
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
黑客在服务器上修改了一个配置文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)。得到的flag请使用NSSCTF{}格式提交。
析6
在第25个TCP流中,
在第26个TCP流中,将结果输入到/etc/pam.d/common-auth
在第27个TCP流中,查看执行结果
答案
答案:NSSCTF{/etc/pam.d/common-auth}
3. webshell
问1
单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:
黑客登录系统使用的密码是_____________。。得到的flag请使用NSSCTF{}格式提交。
析1
wireshark打开下载的附件hack.pcap
根据常见的登录关键词过滤:
查看到输入的用户名和密码,追踪该用户是否成功登录,返回200
答案
答案:NSSCTF{Admin123!@#}
问2
单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:
黑客修改了一个日志文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)。得到的flag请使用NSSCTF{}格式提交。
析2
根据Logs关键词查找:
追踪TCP流25:
得到日志文件的相对路径。可根据常见服务器根目录/var/www/html,拼接成绝对路径。
使用pwd关键词过滤:
分析tcp流31:
发送pwd命令请求,成功回显200:
返回的信息中包含了根目录/var/www/html。
答案
答案:NSSCTF{/var/www/html/data/Runtime/Logs/Home/21_08_07.log}
问3
单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:
黑客获取webshell之后,权限是______?得到的flag请使用NSSCTF{}格式提交。
析3
答案
未完待续。。。(哈哈哈哈,明天继续)