rails X-CSRF-TOKENからraw_token(毎回変わらないtoken)を取り出す方法
純粋に逆から実行していけば取れる
逆xorのメソッド作っておく
def xor_byte_strings(s1, s2) # :doc: s2_bytes = s2.bytes s1.each_byte.with_index { |c1, i| s2_bytes[i] ^= c1 } s2_bytes.pack("C*") end
上から実行していく
# decodeする masked_token=Base64.strict_decode64('対象 X-CSRF-TOKEN') # one_time_pad取り出す one_time_pad = masked_token[0...32] # encrypted_csrf_token取り出す encrypted_csrf_token = masked_token[32..-1] # 逆xor実行 a=xor_byte_strings(one_time_pad, encrypted_csrf_token) # base64でエンコードして見れるようにする Base64.strict_encode64(a)
以上!