从“陇剑杯”实战解析:Wireshark与JWT在网络安全攻防中的关键应用

张开发
2026/4/16 18:26:19 15 分钟阅读

分享文章

从“陇剑杯”实战解析:Wireshark与JWT在网络安全攻防中的关键应用
1. Wireshark在HTTP协议攻击检测中的实战技巧第一次打开Wireshark分析比赛流量包时我盯着满屏的数据包差点崩溃。但很快发现掌握几个关键技巧就能快速定位攻击痕迹。以陇剑杯比赛中的Good.pcapng为例我们来看具体操作首先在过滤栏输入http瞬间就屏蔽了90%的无关流量。这个简单的操作帮我节省了大量时间。接着右键任意HTTP数据包选择追踪流→TCP流完整的HTTP会话就像故事书一样展开在眼前。记得要把显示格式设为ASCII这样能直观看到可读的请求和响应内容。在分析goroot.pcap时我发现攻击者通过HTTP上传了恶意文件。这里有个实用技巧使用http contains upload这样的过滤表达式能快速定位文件上传行为。更绝的是用http.content_type contains multipart/form-data直接锁定文件上传表单。实战中遇到过最狡猾的攻击是攻击者把命令拆分到多个HTTP头字段里。这时候需要组合使用http.header过滤器比如http.header contains cmd || http.header contains exec关键技巧总结使用http.request.methodPOST快速定位敏感操作http contains password查找可能的凭证泄露tcp.port80 http组合过滤避免遗漏非标准端口2. JWT安全漏洞的深度解析与利用在分析goroot.pcap流量时那个反复出现的JWT令牌引起了我的注意。刚开始直接解码提交10086#admin失败后我才意识到JWT的安全机制没那么简单。通过逐个包分析发现攻击者其实在第十个请求才使用有效的10087#admin组合。JWT的典型攻击路径弱密钥破解用已知的HS256密钥如secret尝试签名验证算法篡改将头部改为{alg:none}绕过签名检查密钥混淆当服务端误用RS256公钥验证HS256签名时可能产生的漏洞实际操作中我常用jwt_tool进行自动化测试python3 jwt_tool.py JWT令牌 -C -d wordlist.txt有个容易忽略的细节JWT的过期时间(exp)和生效时间(nbf)。在比赛中就遇到过用已过期的令牌重放攻击的案例。这时候需要特别检查时间戳{ sub: admin, exp: 1893456000, // 2030年过期 nbf: 1672531200 // 2023年生效 }3. 流量分析中的黑客行为追踪当看到alert(root\n)出现在HTTP流里时我后背一凉——这意味着攻击者已经拿到root权限。通过系统性地追踪TCP流可以完整还原攻击链初始入侵通过POST /upload.php上传webshell权限提升执行chmod x /tmp/exploit横向移动在流量中发现的ssh -l admin 192.168.1.100数据渗出大量GET /download?file/etc/passwd请求特别要注意攻击者常用的伪装手法将命令拆分成echo${IFS}123|base64的形式使用十六进制编码\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64代替路径通过HTTP Cookie传递命令Cookie: cmdwhoami用这个过滤条件可以快速发现可疑活动http contains echo || http contains chmod || http contains wget4. 防御策略与实战建议经过多次比赛实战我总结出几个有效的防御方案。对于Wireshark分析建议建立标准化流程快速筛查http.response.code200查看成功请求http.response.code500定位可能的攻击点tcp.flags.reset1发现异常连接终止JWT安全加固# Python示例安全的JWT验证 import jwt from cryptography.hazmat.primitives import hashes def verify_jwt(token, public_key): try: return jwt.decode( token, public_key, algorithms[RS256], options{require: [exp, iss]} ) except jwt.ExpiredSignatureError: raise Exception(令牌已过期)网络监控规则检测异常的User-Agenthttp.user_agent contains curl监控敏感路径访问http.request.uri contains /admin捕获可疑参数http.request.uri contains cmd在最近的实战中我发现攻击者开始使用WebSocket进行隐蔽通信。这时候需要特别关注websocket协议帧配合websocket.payload过滤器进行分析。

更多文章