[陇剑杯 2021]jwt? ? ? 题目做法及思路解析(个人分享)
Token是服务端生成的一串字符串,以客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需要带上这个Token青睐请求数据即可,无需再次带上用户名和密码
JWT生成的Token由三部分组成:header.payload.signature
通过 http?contains "login"?命令查找,http协议中包含login(登录)的流量包(当然因为是认证方式所以也可不刻意查找,基本所有http包内都会包含);
在http流中搜索token,并将token的第一段进行解码,得到认证方式
flag{jwt}(注意flag输入时的大小写方式)
通过对流量包整体分析发现,黑客登录后会进行命令执行操作,共进行了四次whoami的操作,但是前两次并没有回显信息,结合题目,黑客绕过验证使用的后jwt中存在id和username。
通过命令 http contains "whoami"?查找http协议中包含whoami(查看当前系统用户的命令)的流量包
查看命令成功执行的数据包的http流,将token中的第二段进行解码得到id和username
flag{10087#admin}
?结合上一题,直接查找http协议中包含whoami(查看当前系统用户的命令)的流量包
http?contains "whoami" 命令查找http协议中包含whoami的流量包
查看http流中的回显,得到权限信息
flag{root}
在对流量包整体分析后,发现在黑客成功执行whoami命令之后,又多次执行了命令执行操作,在查看后续流量包中可发现黑客上传的恶意文件(将base64编码后的内容利用工具解码后传入恶意文件,并在后续操作中查看确认该文件是否创建成功)
继续查看成功执行whoami命令后的流量包(可通过tcp流中的流进行控制向后查看),查看到上传的恶意文件
在/tmp目录下创建了1.c文件,若想查看该文件写入的内容可右击该文件的“HTML Form URL Encoded: application/x-www-form-urlencoded”,点击查看“显示分组字节流”,解码为base64进行查看
flag{1.c}
根据题目,直接提示了编译文件的后缀名为.so,可直接使用命令http?contains ".so"查看http协议中包含.so的流量包,进行查找
http?contains ".so"查找,找到黑客编译的恶意文件
flag{looter.so}
通过之前题目的分析,发现该系统为linux系统,/etc为linux中默认的系统配置文件存放目录。可通过查看http协议中包含/etc的流量包,也可以根据上一题中的分析,自然向后查看分析数据包,也可发现黑客修该的配置文件及绝对路径
http?contains "/etc"命令查看http协议中包含/etc的流量包
找到黑客修改的配置文件及绝对路径为/etc/pam.d/common-auth(/etc/pam.d/目录为PAM认证模块配置)
flag{/etc/pam.d/common-auth}