0
点赞
收藏
分享

微信扫一扫

CTF之路:关于HTTP $_GET方法中使用base64加密传值

开源分享 2022-01-06 阅读 71

题目

盖楼游戏
在这里插入图片描述但是,不管盖到几层都是失败。题目是不是想让我们想办法通关呢?去试试。

知识点

HTTP $_GET方法中常用base64加密参数值

base64是什么
首先明确一点base64 是一种编码格式。就想UNICODE一样,能在电脑上表示所有字符,或者换句话说通过编码能让电脑理解你想要表示的字符(因为电脑只知道0和1 )
就像ascII 中 0100 0001 表示A. 当然base64 并不是为了表示当个字符的。
想base64 的名字一样。他的作用是用64个字符(A-Z a-z 0-9 + /)表示所有其他字符。 既然要表示字符,那个肯定要有一个对照表。
比如A 对应的码值就是0 , w 对应的码值是 48 。。
ascII 工256个字符,每个字符都是用8bit ,如 0100 0001 表示A
那么如何把256个字符用 64个字符表示呢。。
64=2的6次方,对应二进制就是能表示 000000-111111 。
base64 的做法就是切分: 简单来说就是原来的8位切分成6位,不足的话补0 , (注意如果编码后的字符不足4的倍数,用=补上)
在这里插入图片描述

总结:

  1. base64 不是加密
  2. base64 会是编码增加1/3
  3. base64的作用是将所有字符用我们生活中更常见的字符表示(A-Z a-z 0-9 + /).

解题思路

BP抓包
在这里插入图片描述发现一个可疑的像是base64码的字符,把问题锚定到这里
多玩几把,发现每次score的值与sign的值是有对应关系的,即sign的值 = ‘zM’+base64(score)+‘
在这里插入图片描述想通关,试试score=99999能不能通关。
在BP的Repeater中重构数据包
在这里插入图片描述在BP的Decoder里转换base64
在这里插入图片描述套公式
sign的值 = ‘zM’+base64(score)+‘

得到
sign=zMOTk5OTk===
在这里插入图片描述得到flag

举报

相关推荐

0 条评论