ctfshowWeb应用安全与防护(第一章)wp
Base64编码隐藏
查看网页源代码

告诉我们了password的base64,直接解码

HTTP头注入
源代码和上一题一样,输入密码

修改User-Agent

重新登录

Base64多层嵌套解码
查看源代码

经过了五层层加密,一层一层解密吧
第一层
btoa(encoded) === correctPassword;

第二层
encoded = btoa('aB3' + encoded + 'qW9').substr(2);

第三层
encoded = btoa(encoded.split('').reverse().join(''));

第四层
encoded = btoa(encoded + 'xH7jK').slice(3);//slice(3)表示去掉前三位
由于截掉了前三位导致无法还原密码,这里写个脚本爆破一下(只要能成功解码基本都符合)
import base64
flag = "FM016RTJ4SDdqSw=="
base64_chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
results = [] # 存储所有的结果
for i in base64_chars:
for j in base64_chars:
for k in base64_chars:
s = i + j + k + flag
try:
decoded_first = base64.b64decode(s).decode('utf-8')
decoded_trimmed = decoded_first[:-5] # 移除最后5个字符
decoded_final = base64.b64decode(decoded_trimmed).decode('utf-8')
results.append(decoded_final) # 将结果添加到列表
except Exception:
continue
# 将所有结果写入文件,每行一个
with open('flag.txt', 'w',encoding='utf-8') as f:
for result in results:
f.write(result + '\n')
在爆破出的密码中随便找一个不是乱码的


接下来的步骤同上题

HTTPS中间人攻击
拿到一个流量包和sslkey.log

发现TLS和TCP的内容都被加密了
sslkey.log
sslkey.log 通常是一个与 SSL/TLS 密钥日志相关的文件,主要用于记录 SSL/TLS 会话过程中产生的密钥信息,以便解密加密的网络流量(如 HTTPS 通信),常见于网络调试或分析场景。
核心作用
SSL/TLS 协议通过加密保护网络通信(如浏览器与服务器的 HTTPS 连接),第三方通常无法直接查看加密内容。但 sslkey.log 会记录会话中的临时密钥(如 CLIENT_RANDOM 对应的主密钥),工具(如 Wireshark)可利用这些密钥解密捕获的 SSL/TLS 流量,方便开发者或分析师调试加密通信问题。
点击编辑->首选项

点击Protocols->TLS配置sslkey.log


发现多出了两个HTTP协议

追踪HTTP流

Cookie伪造
默认用户名为guest,盲猜密码也是guest

根据题目查看cookie

猜测网站是根据role的值来判断你是不是admin
修改cookie

登录


浙公网安备 33010602011771号