首页 > 其他分享 >【web_逆向06】base64

【web_逆向06】base64

时间:2023-08-13 23:22:40浏览次数:42  
标签:web 06 字节 s1 base64 decode bs print

简介

  • base64其实很容易理解. 通常被加密后的内容是字节. 而我们的密文是用来传输的(不传输谁加密啊). 但是, 在http协议里想要传输字节是很麻烦的一个事儿. 相对应的. 如果传递的是字符串就好控制的多. 此时base64就应运而生了. 26个大写字母+26个小写字母+10个数字+2个特殊符号(+和/)组成了一组类似64进制的计算逻辑. 这就是base64了.。

base64原理

#http协议. 发送和接收字节. 都是很麻烦的一件事儿.

#\xFF\xEA\x08   ===》转换成二进制
#11111111 11101010 00001000

#把上面的字节的二进制, 重新排列. 每6个为一组
#111111 111110 101000 001000

#每一项的取值范围: 0-63 共64种情况
#s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

bs = b'\xFF\xEA\x08'  # 字节
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
print(len(s))
s1 = s[63]
s2 = s[62]
s3 = s[40]
s4 = s[8]
print(s1 + s2 + s3 + s4)  # /+oI

python处理base64

import base64

bs = b'\xFF\xEA\x08'
#
# 这里是把字节按照b64的规则进行编码
# b'/+oI'
s = base64.b64encode(bs).decode()  # 编码之后的结果是字节.
print(s)


# 把b64还原回字节
s1 = "/+oI"
# 按照b64的规则. 解码成字节
bs = base64.b64decode(s1)
print(bs)     #  b'\xff\xea\x08'

#各种转换
# str.encode("字符集")  -> 编码
ret = '哈哈'.encode()
print(ret)    #b'\xe5\x93\x88\xe5\x93\x88'
# bytes.decode("字符集")  -> 解码
s = ret.decode()
print(s)    #哈哈
# base64.b64encode(字节).decode() -> 按照base64的规则进行编码, 编码的结果是字节,需要`还原`回字符串
s1 = base64.b64encode(ret).decode()
print(s1)   #  5ZOI5ZOI
# base64.b64decode(字符串) -> 按照base64的规则进行解码. 解码的结果是 字节.
s2 = base64.b64decode(s1)
print(s2)   # b'\xe5\x93\x88\xe5\x93\x88'

JS处理base64

// 浏览器端. 缺陷, 处理不了中文.
// btoa() => base64编码.
let r1 = btoa("mmmmmmm");
console.log(r1);   //  bW1tbW1tbQ==

// atob() => base64解码
let r2 = atob('bW1tbW1tbQ==')
console.log(r2);

// npm  install crypto-js
var Base64 = require("crypto-js/enc-base64");
var CryptoJS = require("crypto-js");

let s = "我爱你";
let r3 = Base64.stringify(CryptoJS.enc.Utf8.parse(s));
console.log(r3.toString());   //5oiR54ix5L2g

标签:web,06,字节,s1,base64,decode,bs,print
From: https://www.cnblogs.com/xwltest/p/17627506.html

相关文章

  • 【web_逆向05】URLEncode
    我们这网站中总能看到这样一种url,例如:百度中直接搜索"周杰伦"https://www.baidu.com/sugrec?&prod=pc_his&from=pc_web&json=1&sid=26350&hisdata=%5B%7B%22time%22%3A1691934763%2C%22kw%22%3A%22%E5%91%A8%E6%9D%B0%E4%BC%A6%22%2C%22fq%22%3A4%7D%5D&_t=1691934......
  • 【web_逆向04】MD5摘要算法
    MD5是一个非常常见的摘要(hash)算法,其特点就是小巧.速度快.极难被破解。所以,md5依然是国内非常多的互联网公司选择的密码摘要算法这玩意不可逆.所以.摘要算法就不是一个加密逻辑.相同的内容计算出来的摘要应该是一样的不同的内容(哪怕是一丢丢丢丢丢不一样)......
  • Spring Web : FormHttpMessageConverter
    概述FormHttpMessageConverter是SpringWeb提供的用于读写一般HTML表单数据的HttpMessageConverter实现类,也可以写multipart数据,但是不能读取multipart数据。具体来讲,FormHttpMessageConverter可以:读写application/x-www-form-urlencoded媒体类型数据:MultiValueMapMultiValueM......
  • 【愚公系列】2023年08月 攻防世界-Web(ics-02)
    (文章目录)前言SSRF(服务器端请求伪造)是一种攻击技术,攻击者通过构造恶意请求,欺骗服务器发起外部请求,获取服务器本应该不被直接访问的信息或服务。攻击者可利用SSRF进行一系列攻击,包括对内部资源进行扫描、窃取敏感信息、攻击内部系统等。SQL注入是一种常见的Web攻击技术,攻......
  • 【web_逆向02】某易云逆向注意点
    加密入口需要用到a,b,c三个函数a,不需要动,直接copy就行b,标准的第三方库,直接安装即可:npminstallcrypto-js千万不要去抠CryptoJS,希望各位记住这个格式.js的标准第三方库https://www.npmjs.com/c,有点麻烦,库太老了--npm找不到functionc(a,b,c){var......
  • 【web_逆向01】环境安装
    node.js环境安装官网下载,直接下一步就行安装后,在cmd环境,测试pycharm运行js代码安装node.js插件,安装后记得重启pycharm即可python调用js代码运行,pyexecjs模块pipinstallpyexecjs使用importexecjs#请注意,安装的是pyexecjs.使用的是execjs##1.直接执......
  • Burp Suite Professional / Community 2023.9 (macOS, Linux, Windows) - Web 应用安
    BurpSuiteProfessional/Community2023.9(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro-2023/,查看最新版。原创作品,转载请保留出处。作者......
  • Web通用漏洞--RCE
    Web通用漏洞--RCE漏洞简介RCE远程代码/命令执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。RCE漏洞也分为代码执行漏洞和命令执行漏洞,所谓代码执行即通过漏洞点注入参数而使用源代码进行相应的操作,所谓的命令执行就是通过漏洞点注入参数......
  • Web攻防--xxe实体注入
    web攻防--xxe实体注入漏洞简介XML外部实体注入(也称为XXE)是一种Web安全漏洞,允许攻击者干扰应用程序对XML数据的处理。它通常允许攻击者查看应用程序服务器文件系统上的文件,并与应用程序本身可以访问的任何后端或外部系统进行交互。在某些情况下,攻击者可以利用XXE漏洞联......
  • ctfshow--web入门--XXE
    ctfshow--web入门--XXEweb373源码<?phperror_reporting(0);libxml_disable_entity_loader(false); //允许加载外部实体$xmlfile=file_get_contents('php://input'); //使用php伪协议进行接收值,并进行文件读取if(isset($xmlfile)){$dom=newDOMDocument();......