首页
友链
壁纸
留言
今日热榜
更多
关于
时光
推荐
精品流量卡
Search
1
都二十多年了,你的梦为什么还没碎!
57,089 阅读
2
2022年5个好用的 BT/ 磁力链接下载工具推荐 |Windows 、安卓系统
37,369 阅读
3
nps内网穿透实现外网访问树莓派
32,425 阅读
4
实践利用宝塔建emlog个人博客-超详细【原创】
26,132 阅读
5
Typecho-Joe-Theme主题帮助文档
24,623 阅读
闲杂乱码
Python
网站源码
微信小程序
娱乐分享
Is相册
软件工具
登录
Search
标签搜索
PHP
HTML
API
Javascript
源码
JS
Vue
Github
CloudFlare
接口
函数
SQL
ASP.NET
MVC
EF
T4模板
后台管理
CDN
微信小程序
MAC
韩小韩
累计撰写
261
篇文章
累计收到
1,303
条评论
首页
栏目
闲杂乱码
Python
网站源码
微信小程序
娱乐分享
Is相册
软件工具
页面
友链
壁纸
留言
今日热榜
关于
时光
推荐
精品流量卡
搜索到
2
篇与
base64
的结果
2022-11-25
简单逆向某色情网站图片加密(原创)
{message type="info" content="今天,一Py哥们为民除害爬取某色情网站的时候,遇到了一点点小问题,关于色色电影列表中视频封面数据的问题,我简单的看了一下,我也是第一次见到这种,挺有意思的封面图片渲染,所以单拉出来我们一起来看看!"/}图片地址SRC{callout color="#f0ad4e"}审查元素查看图片地址是 Base64 地址,并不是网络地址,不会被墙,根据用户网速加载,不占用服务器带宽,挺好的。控制台的数据是没有任何问题的,然后又看了一下源代码。{/callout}IMG标签中的Origanal数据{callout color="#f0ad4e"}我从源代码中查看 IMG 标签并没有发现 SRC 属性,但是看到了一个有意思的属性,data-origanal,直觉告诉我,这个数据并不简单,然后我分页加载了一下视频看到加载图片时会加载data-origanal对应的TXT文件。{/callout}{callout color="#f0ad4e"}当我打开TXT文件看了一下其中的数据,第一眼的感觉就是Base64加密数据,呀,太简单了,肯定是图片的Base64地址,我立马和封面的Base64图片地址对比一看,一点都不一样!我又想了一下,难道是图片地址再Base64了一下?然后我继续Base64解密了一下。{/callout}{callout color="#f0ad4e"}乱七八糟,这不是Base64数据,那肯定就是AES加密咯,一个色情网站怎么还花里胡哨!{/callout}JS文件简单剖析{callout color="#f0ad4e"}全局搜索了一下 data-origanal 和 origanal关键词,,发现了其中一个文件并找打了有关的函数,利用Ajax请求获取TXT文静中的数据,然后并传入一个函数进行解密。{/callout}{callout color="#f0ad4e"}继续搜索关键词 desDecrypt 找到了一个eval加密JS文件。{/callout}{callout color="#f0ad4e"}简单解密了一下,取到了原始函数,截取我们主要用到的两个函数,一个加密,一个解密,如下。{/callout}// 秘钥 let asc_key = "jeH3O1VX"; let base_lv = "nHnsU4cX"; // 加密 function desEncrypt(a) { let tmpiv = CryptoJS.enc.Utf8.parse(base_lv); let key = CryptoJS.enc.Utf8.parse(asc_key); var b = CryptoJS.AES.encrypt(a, key, { iv: tmpiv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, formatter: CryptoJS.format.OpenSSL, }); return b.ciphertext.toString(CryptoJS.enc.Base64); } // 解密 function desDecrypt(a) { a = a.replace(/\s*/g, ""); let tmpiv = CryptoJS.enc.Utf8.parse(base_lv); var b = CryptoJS.enc.Utf8.parse(asc_key); var c = CryptoJS.DES.decrypt( { ciphertext: CryptoJS.enc.Base64.parse(a) }, b, { iv: tmpiv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, formatter: CryptoJS.format.OpenSSL, } ); return c.toString(CryptoJS.enc.Utf8); }{callout color="#f0ad4e"}执行函数并调用了一下解密函数,手动传入了TXT文件中AES加密的数据,并取到了封面图片IMG标签的SRC地址。{/callout}个人看法{callout color="#f0ad4e"}从文件数据的加密解密还是JS中关键函数的eval加密来说,整体流程走下来,没有任何难度,连麻烦都算不上,怎么说呢,他是用心了还是没用心,我也说不上来。但这个图片渲染的方式我还是第一次见。如果这个加密如果是为了防爬,我个人认为简直太弱了。从图片地址加密前后对比来说,加密后的图片地址,也就是TXT文件中的数据比原始图片地址数据大了好多,是挺鸡肋的。{/callout}总结{callout color="#f0ad4e"}今天发现了一个挺有意思的小东西~{/callout}
2022年11月25日
1,381 阅读
21 评论
6 点赞
2020-03-25
图片与base64相互转换PHP版
PHP 将图片转换为 base64 字符串格式直接上代码<?php //Filetype: JPEG,PNG,GIF $file = "encode.jpg"; //$file:图片地址 if ($fp = fopen($file, "rb", 0)) { $gambar = fread($fp, filesize($file)); fclose($fp); //获取图片base64 $base64 = chunk_split(base64_encode($gambar)); // 输出 $encode = '<img src="data:image/jpg/png/gif;base64,' . $base64 . '" >'; echo $encode; } ?>将base64字符串转换为图片<?php //第一个参数图片保存路径以及图片名称 需注意图片后缀 linux请注意文件可写权限 //第二个参数为图片的$base64字符串 ps:下方会贴出图片$base64的格式 以及注意事项 file_put_contents('./test_base2.jpg', base64_decode($base64)); ?>
2020年03月25日
520 阅读
0 评论
0 点赞