ctf-show
Base64编码隐藏
Base64编码只是一种编码转换,把非ASCII字符转换成数字和字母便于传输
第一步,把字符串先转换成ASCII码,然后把数字转换成二进制
第二步,把这一串二进制每六位分为一组,然后再转成十进制
第三步,再将十进制数字对照索引表
0-25->A-Z
26-51->a-z
52-61->0-9
62->+
63->/
填充机制
剩余一个字节,补四个0,凑成2个6位,最后补两个=
剩余两个字节,补两个0,凑成3个6位,最后补一个=
ps:这个不是什么加密算法,只是简单的替换算法,没有什么安全性可言
以上是Base64的定义,回到题目,还是比较简单的,直接查看页面源码,发现最下面存在script的代码段,经过分析后,判断为登录的校验逻辑,并且将密码设置为Base64常量放在前端,经过解码后便可以拿到flag
Base64的解码可以用bp里自带的解码器,比较方便,支持多种编码方式,还可以多重解码,正好抓包的时候也要用
HTTP头注入
复用上一条的flag登录进去后会提醒USER-AGENT不对,猜测为http头注入,使用bp抓包后将USER-AGENT修改为指定的浏览器客户端,发送完成后拿到flag
Base64多层嵌套解码
这个攻击角度与第一条类似,但是较为复杂,也是暴露在前端