2021 陇剑杯 JWT
2026-08-22 20:05:38

——luxlu

[签到]

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

User Datagram Protocol(UDP)占据0.3%

Transmission Control Protocol (TCP)占据99.4%

说明绝大多数数据包都走的是 TCP 协议

在 TCP 下又有Hypertext Transfer Protocol (HTTP)占据22.7%

NSSCTF{http}

jwt[问1]

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

网站一词暗示是http/https协议

过滤器:http

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

NSSCTF{jwt}

token

相当于用户的电子身份证。你登陆网站后,服务器就会给你一个token。之后每次你访问网站,浏览器自动带上这个token,服务器验证它就会知道你是谁。

比如token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

jwt结构

{"alg":"HS256","typ":"JWT"}

alg:签名算法是HS256typ:令牌类型是jwt

请求中看到的结构是token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxx

第一部分是header表明签名算法和令牌类型

第二部分是payword用来存放用户信息

第三部分是signature用来签名验证真伪

jwt[问2]

昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:****黑客绕过验证使用的jwt中,id和username是______。(中间使用#号隔开,例如1#admin)。得到的flag请使用NSSCTF{}格式提交。

伪造token绕过

题干说黑客绕过验证使用的jwt

正常登录需要验证身份,比如说id,密码,验证码

但是黑客不走正常流程,通过篡改或者伪造jwt token来被服务器接受

之所以能绕过,是因为服务器未对jwt的签名进行有效校验(如弱密钥,允许alg:none或者完全忽略了签名验证)这样黑客就有了可乘之机,修改令牌里的用户信息(如将username改为admin)

按照常规思路 试试whoami

过滤器:http contains "whoami"

/exec接口显然不是普通用户用的 也没有正常登录页的/identity 符合绕过特征

第一个包可能是普通用户尝试执行

第二个包可能失败或者权限不足

第三个包返回了root,说明攻击者已经绕过验证,获得了高权限

黑客向/exec发送了command=whoami

服务器成功执行并返回了(alert("root\n"))

说明黑客的身份被系统认可为有效用户,很可能是admin

这个请求也携带了Cookie和所需的JWT token

eyJpZCI6MTAwODcsIk1hcENsYWltcyI6eyJ1c2VybmFtZSI6ImFkbWluIn19

whoami

为什么黑客要执行**whoami**

因为仅仅获得一个高权限账户的token并不能保证真的实际拥有了系统权限。

黑客需要进一步确认:现在以什么身份在服务器上执行命令?

因此,当黑客拿到一个webshell,RCE或者注入点,第一件事通常是:确认当前权限:whoami

如果返回root,就说明不仅账户权限高,而且web服务器本身就是以root身份运行的,从而可以执行更多的敏感操作。

当然,这也反向印证了:黑客很可能在此之前已经尝试过普通权限的操作但失败了,因此才特意测试whoami,来确认自己的权限是否真的提升了

base64解码JWT token的第二部分

{"id":10087,"MapClaims":{"username":"admin"}

NSSCTF{10087#admin}

jwt[问3]

昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:****黑客获取webshell之后,权限是______?。得到的flag请使用NSSCTF{}格式提交。

权限是root

NSSCTF{root}

jwt[问4]

昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:****黑客上传的恶意文件文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)。得到的flag请使用NSSCTF{}格式提交。

黑客上传了一条恶意文件

过滤器:http.request.method == "POST"

一条一条翻

NSSCTF{1.c}

jwt[问5]

昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:****黑客在服务器上编译的恶意so文件,文件名是_____________。(请提交带有文件后缀的文件名,例如x.so)

过滤器:http contains ".so"

NSSCTF{looter.so}

jwt[问6]

昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:****黑客在服务器上修改了一个配置文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)

绝对路径通常通过命令执行的接口来完成 比如/exec

NSSCTF{/etc/pam.d/common-auth}

上一页
2026-08-22 20:05:38
下一页