base64

[原题复现+审计][ZJCTF 2019] WEB NiZhuanSiWei(反序列化、PHP伪协议、数组绕过)

空扰寡人 提交于 2020-03-03 06:28:45
简介 原题复现: https://github.com/CTFTraining/zjctf_2019_final_web_nizhuansiwei/ 考察知识点: 反序列化、PHP伪协议、数组绕过 线上平台: https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 过程 打开页面看到源码先审计 大致分析flag在flag.php里面 先想办法绕过这些限制到达 文件包含那一块 绕过file_get_contents() 将welcome to the zjctf base64编码 使用PHP伪协议data读取数据流 可以成功绕过file_get_contents http://e188408b-f98c-4a28-bd9d-537acd229427.node3.buuoj.cn/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY= 绕过正则表达式 使用数组即可成功绕过(一开始我的想法是直接包含flag.php 然后通过echo输出$flag这个变量 这个想法不对) http://febc72fc-9ce7-4ab1-8887-8864639921a3.node3.buuoj.cn/?text=data://text/plain;base64

在线工具导航

落爺英雄遲暮 提交于 2020-03-03 06:16:58
工具导航 A AES、DES、RC4、Rabbit加密解密 ASCII编码解码 B BASE64编码解码 标准衣服尺码表计算器 C CSS格式化、压缩 D 代码对比 E 二进制、十进制、16进制转换 G 公历农历查询、阴阳历转换 H htpasswd生成器 汉字转拼音 I ico图标制作 J JSON格式化 K 科学计算器,复杂数学公式计算 M Markdown编译器,Html和Markdown互转 摩斯电码加密解密 MD5加密 Q 全国区号、城市区号、邮编查询 卡通头像制作 R 人脸识别,自动检测人脸截取 日期间隔天数计算 、节日倒计时 S 时间戳转换 生成二维码 单位换算 SQL格式化 T 调色板,16进制、RGB颜色值获取 图片转base64,base64转图片 图片转pdf文档 U URL编码解码 UBB编译器,UBB转HTML,HTML转UBB Unicode编码解码 UTF-8编码解码 W 文章字数统计 文字去重复 X XML格式化、压缩 xml转json、json转xml Y 英文单词大小写转换 Z 正则表达式匹配测试 制作GIF动态图、表情包 照片手绘风格转换 中文简繁转换 传图识色,提取图片主色调 传图识字,图片文字识别转换 来源: CSDN 作者: ixiaoyang8 链接: https://blog.csdn.net/ixiaoyang/article

CSS3引用SVG base64的方法

随声附和 提交于 2020-03-02 21:50:42
在做Thingsboard 的控件的时候,想一个div 里边有一个背景图,效果如下: 当时就想这个改怎么做呢,经过一番考虑我决定用SVG图,但是TB里边不能直接用,所有就像是不是可以一个DIV 指定一个背景,背景就用SVG转base64的数据来做。 1、首先去阿里那边搞一个SVG 过来: https://www.iconfont.cn/search/index?q=device 2、然后到另外一个网站去转: https://base64.guru/converter/encode/image/svg 转换后 做一个img标签: <img height="80px" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI

解决sun.misc.BASE64Encoder找不到jar包的解决方法

谁都会走 提交于 2020-03-02 13:03:44
最近 在项目中遇到了开发环境的jdk和编译环境jdk和线上jdk【12版本】版本不一致问题。导致报错sun.misc.BASE64Encoder找不到jar问题 在项目中,设计到64位编码的。有时开发会用到JDK中自带的BASE64工具。但sun公司是建议不这样做的。尤其是更新了JDK版本,项目甚至还存在保存的信息。 sun.misc.BASE64Encoder 不建议使用java.sun自带包中的内容 import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder; 可引用 import org.apache.commons.codec.binary.Base64;进行替换 原来使用的JDK自带jar包中的 return new BASE64Encoder().encode(encrypted); 替换为 import org.apache.commons.codec.binary.Base64; return Base64.encodeBase64String(encrypted); 将 byte[] encrypted1 = new BASE64Decoder().decodeBuffer(text); 替换为 import org.apache.commons.codec.binary.Base64; byte[]

python爬虫—房地产—“安居客”的几个问题解决

◇◆丶佛笑我妖孽 提交于 2020-03-02 11:29:45
在爬取“安居客”网站时,本人主要遇到了2个问题: 1.网页数字加密 在浏览器里点击检查后,网页中显示数字的地方,在源代码中显示为加密后的乱码。 2.爬取部分内容后,requests无法访问报错。 这个报错,我在网上搜索了很多解决办法没有用(应该是访问过多,ip被封的原因) 解决方法 1.解密 (1)安装并倒入这几个库 from io import BytesIO from fontTools.ttLib import TTFont import base64 (2)从网页源代码中找到用于解码的代码 图中从bs4,之后到’)之间的内容,采用正则方式 import re bs64_str = re.findall("charset=utf-8;base64,(.*?)'\)", p)[0] (3)定义解密方法 def get_page_show_ret(mystr, bs64_str): ''' mystr: 要转码的字符串 bs64_str: 转码格式 return: 转码后的字符串 ''' font = TTFont(BytesIO(base64.decodebytes(bs64_str.encode()))) c = font['cmap'].tables[0].ttFont.tables['cmap'].tables[0].cmap ret_list = [] for char

Base64压缩UUID长度替换Hibernate原有UUID生成器

丶灬走出姿态 提交于 2020-03-02 10:11:01
1、背景 在采用Hibernate做对象映射时,我一直都采用UUID来做主键。由于Hibernate的UUID需要占用32位的字符,所以一般都会让人感觉响效率且增加存储占用。 我在查看公司项目时发现了一种比较好的生成UUID的方法,就是将UUID数据进行Base64化。觉得比较有意义拿出来给大家分享。 2、传统UUID a、java.util.UUID(RFC 4122 http://www.ietf.org/rfc/rfc4122.txt ) Java中的UUID采用RFC 4122的标准,按标准数据按16进制进行表示(36个字符)。如:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 b、Hibernate UUID Hibernate默认产生的UUID与RFC 4122标准相比,去掉了没有用的"-"分割符号,所以更短(32个字符)。如: f81d4fae7dec11d0a76500a0c91e6bf6 3、Base64格式的UUID 由于Base64编码使用的字符包括大小写字母各26个,加上10个数字,和加号“+”,斜杠“/”,一共64个字符。所以才有Base64名字的由来。Base64相当于使用64进制来表示数据,相同长度位数的情况下要比16进制表示更多的内容。 由于UUID标准数据总共是128-bit,所以我们就可以对这个128

TOTP Base32 vs Base64

☆樱花仙子☆ 提交于 2020-03-02 07:29:50
问题 Every TOTP implementation (even FreeOTP by RedHat) I find is using Base32 encoding/decoding for it's generated secret. Why is it not using Base64, since Base32 is using roughly 20% more space and it's (mainly) only advantage is, that it is better human-readable? It is not being shown to the user for generation anyways. While every comment within the implementation says, that its implementation follows RFC6238 / RFC4226, I cannot find anything being said about base32 within the RFC documents.

TOTP Base32 vs Base64

我们两清 提交于 2020-03-02 07:29:05
问题 Every TOTP implementation (even FreeOTP by RedHat) I find is using Base32 encoding/decoding for it's generated secret. Why is it not using Base64, since Base32 is using roughly 20% more space and it's (mainly) only advantage is, that it is better human-readable? It is not being shown to the user for generation anyways. While every comment within the implementation says, that its implementation follows RFC6238 / RFC4226, I cannot find anything being said about base32 within the RFC documents.

记一个 Base64 有关的 Bug

纵饮孤独 提交于 2020-03-01 20:16:35
本文原计划写两部分内容,第一是记录最近遇到的与 Base64 有关的 Bug,第二是 Base64 编码的原理详解。结果写了一半发现,诶?不复杂的一个事儿怎么也要讲这么长?不利于阅读和理解啊(其实是今天有点懒想去休闲娱乐会儿),所以 Base64 编码的原理详解的部分将在下一篇带来,敬请关注。 0x01 遇到的现象 A 向 B 提供了一个接口,约定接口参数 Base64 编码后传递。 但 A 对 B 传递的参数进行 Base64 解码时报错了: Illegal base64 character a 0x02 原因分析 搜索后发现这是一个好多网友们都踩过的坑,简而言之就一句话:Base64 编/解码器有不同实现,有的不相互兼容。 比如我上面遇到的现象,可以使用下面这段代码完整模拟复现: package org.mazhuang.base64test; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.util.Base64Utils;

php实现jwt

此生再无相见时 提交于 2020-03-01 19:07:16
一:JWT是什么 JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。基于token的身份验证可以替代传统的cookie+session身份验证方法。 JWT由三个部分组成:header.payload.signature 二:代码实现 class JWT { private static $header=array( 'alg'=>'SHA256', //生成signature的算法 'typ'=>'JWT' //类型 ); private static $payload= array( ); //使用HMAC生成信息摘要时所使用的密钥 private static $key='123456'; public function getToken(){ //这是第一部分 $base64 = json_encode(self::$header); $baseencode = base64_encode($base64); self::$payload['time']=time()+3600;//过期时间 self::$payload['uid']=110; $basepayLoad64=json_encode(self::$payload);