首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个纯JS脚本的文档敲诈者剖析(附解密工具)

0x00 概述 近日,腾讯反病毒实验室拦截到一个名为RAA的敲诈者木马,其所有的功能均在JS脚本里完成。这有别于过往敲诈者仅把JS脚本当作一个下载器,去下载和执行真正的敲诈者木马。...2、 加密之前,首先生成32个0-2000的随机数, 生成序列A;然后以序列A中每个数作为地址,在服务器返回的长度2000的数据中,获得该地址的值,生成长度同为32的序列B,序列B将作为加密密钥;之后重复该过程...0x03 解密分析 从上面的加密方式来看,该敲诈者木马使用了AES-256加密算法,因为是对称加密算法,因此只需获得加密文档时候所使用的密钥和密钥向量,调用JS开源的AES解密接口,即可完成解密。...这种情况下,每次JS脚本在服务端所获取用来生成密钥的数据是固定不变的,也就意味着,在这种情况下,用户被加密的文档本地就可以解密了!...只需取下面红框中的数据,结合文件尾部的随机数,即可生成加密文档使用的密钥和密钥向量了。 ?

3.9K70

PHP强大加密库 PHP-Encryption

概述 php-encryption 是由知名安全专家 Defuse 创建的一个开源PHP库,致力于提供简单且安全的数据加密解决方案。...SecureRandom 生成随机数 对于加密过程中的随机数生成,php-encryption 使用的是 random_bytes 函数或其兼容版本,它基于硬件熵源,以确保产生的随机数值足够随机和不可预测...错误处理 在可能出现错误的情况下(如密钥丢失或损坏),php-encryption 提供了详细的错误信息,帮助开发者更快定位并解决问题。...应用场景 数据存储:可以安全地存储用户的敏感信息,如密码、信用卡号等。 通信安全:在网络传输中,可以加密数据以防止中间人攻击。 应用程序保护:为本地存储的数据添加额外的安全层,防止非法访问。...跨平台:能在所有支持PHP的环境中运行。 小结 无论你是初学者还是经验丰富的开发者,php-encryption 都是一个值得信赖的工具。

26510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    「安全系列」基于OpenSSL实现国密 SM4 加密和解密

    openssl_encrypt介绍 openssl_encrypt 方法是PHP中的一个非常常用的加密方法,也是数据传输中常用的加密手段之一。...它可以通过一个密钥和一个初始化向量,以及加密算法模式来加密数据。...)模式:和CFB模式类似,但是OFP模式不会对加密的数据再次进行加密 密钥和初始化向量方法 在使用openssl_encrypt方法进行加密时,我们需要生产密钥和初始化向量。...密钥通常使用随机字节数组生成,可以使用openssl_random_pseudo_bytes函数来实现,如下所示: $key = openssl_random_pseudo_bytes(16); //...,以便能够更好地保护数据的安全性 总结 openssl_encrypt方法是一种常用的保护数据安全的手段,它可以通过一个密钥和一个初始化向量,以及加密算法模式来加密数据,从而保证数据传输的安全。

    1.7K50

    记一次微信小程序逆向

    https://github.com/wux1an/wxapkg 用这个工具反编译本地微信小程序 于是乎拿到js源码看一看 二、AES加密 找到一些信息 AES加密,CBC模式,key和偏移量都拿到了...值才是正确的 如图所示 2)时间戳 这里还需要注意的是字段中有时间戳和nonce(随机数) 随机数前三位是时间戳的后三位,所以这里代码也是代劳(奈何代码能力确实差 import time import...配置好后抓包,效果如下 原来: 然后: 针不戳 五、尝试 看js里有挺多接口的,一开始稍微看了一下都没有什么敏感泄露,也没有什么未授权, 倒是有个管理后台的地址,不过看了一下也没什么办法 字段中存在...并且这些接口应该是类似教师权限用户才能使用的接口 最后还是找到接口泄露 (举个例子 /v3/api.php/TeacherCourse/getStudentList /v3/api.php/Exam/...classStudentList 我只要用普通用户的账号可以查看接口下的数据 修改course_id遍历数据即可 预测了一下course_id有500+ 里面可以看到学号+姓名+学院专业,还有user_id

    86410

    PHP加密解密方法及常见问题解决方案(php对称加密和非对称加密示例)

    php是一种流行的服务器端编程语言,广泛用于web应用程序开发中。在实际应用中,php加密解密是非常常见的操作。本文将介绍php中常见的加密解密方法,以及常见问题的解决方案。...在PHP中,常用的对称加密算法包括DES(Data Encryption Standard)、3DES(Triple DES)和AES(Advanced Encryption Standard)等。...其中,AES是最常用的对称加密算法,由于其加密强度高、运算速度快以及安全性好,因此在很多信息安全领域得到广泛应用。 下面是一个使用AES对称加密算法加密的例子: 在PHP中,如上示例,对于使用对称加密算法进行加密的数据进行解密可以使用 openssl_decrypt函数(如果使用的是非对称加密算法,则使用 openssl_private_decrypt函数)。...在解密操作中,需要使用相同的密钥和随机向量来解密数据。 未经允许不得转载:肥猫博客 » PHP加密解密方法及常见问题解决方案(php对称加密和非对称加密示例)

    88210

    能DDoS的勒索木马FireCrypt进一步分析

    木马会在每台被加密的机器上生成一个唯一的USER ID用于识别受害机器。 此外,在文件加密完成后,该木马会创建数个后台线程去固定的某个网站上下载文件到%Temp%目录下,如下图所示: ?...图7 加密文件类型 2.样本会产生一个32个字符的随机字符串,该随机字符串用于后续AES256密钥的生成: ? 其中随机数产生的算法如下: ? 3....AES256加密流程如下,Encrypt_Fun方法中调用的AES256_Encrypt为加密的主要函数: ?...该样本在加密每个文件的时候都会产生一个32个字符的随机字符串,然后通过该随机字符串去生成AES加密密钥。...这样每次加密的密钥都是不同的,但是在整个加密流程前后并未发现木马通过网络将密钥发送给远端的服务器,一旦用户的电脑被此类木马感染后,即使向作者给出的比特币地址支付赎金,仍然无法获取需要解密的AES密钥。

    89890

    冰蝎-特征检测及报文解密

    pass=645 的请求服务器密钥; 2)服务器使用随机数 MD5 的高16位作为密钥,存储到会话的 $_SESSION 变量中,并返回密钥给攻击者。 2....加密时的URL参数 在加密通讯过程中,无URL参数。如下: \.(php|jsp|asp|jspx|asa) HTTP/1.1 3....返回随机密钥如图2-5: 4.加密数据上行 在加密通讯时,php/jsp shell 会提交base64编码后的请求数据。用如下正则便可以很好的匹配。数字20是指定的字符出现至少20个才会匹配。...本文以 php 语言来研究,在服务器开启 PHP OpenSSL 扩展脚本的情况下,冰蝎密文采用对称加密算法AES加密,加密后还会进行base64编码。...在客户端发起密钥协商后,会返回16位明文随机密钥。在安全监控设备采集流量较全的情况下,可截获密文流量和密钥,通过解密解码平台即可获取冰蝎密文详情。

    5.6K40

    安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作

    var flag=false; //规定白名单上传后缀 var exts=['png','gif','jpg']; //1.php 1.php.jpg 接受传递的后缀名...'; } 前端JS进行后缀过滤,后端PHP进行上传处理 架构:html js php - upload.php 安全问题: 1、过滤代码能看到分析绕过 2、禁用JS或删除过滤代码绕过...架构:html js login.html - logincheck.php JS导入库开发-编码加密-逆向调试 //MD5 js/md5.js"> <script...} ).toString(); // toString=转字符串类型 console.log(encrypt); // 在弹窗中打印字符串 2vcsEDJv9vAZZLgFLjkZ9A...:8/16/32位, 长度不一致也没问题 var message = "xiaodisec"; // 需要加密的内容 // 加密 DES/AES切换只需要修改 CryptoJS.AES

    11210

    PHP之AES加密算法

    AES简介 AES(Advanced Encryption Standard),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。...2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。 ECB模式是将明文按照固定大小的块进行加密的,块大小不足则进行填充。ECB模式没有用到向量。...使用AES需要注意下面几点: 1) 确保都使用MCRYPT_MODE_CBC; 2) 确保明文填充都使用的是Pkcs5; 3) 加密key在AES_128长度必须是16, 24, 或者 32 字节(bytes...建议随机生成,然后base64后传给前端。 常用库介绍 Mcrypt Mcrypt 是一个功能强大的加密算法扩展库。...Crypto-JS https://github.com/brix/crypto-js CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。

    4.3K30

    带你详细了解AES算法《附带java、vue实现》

    ——《雨果传》1.加密算法图片在密码学中,加密算法分为单向加密和双向加密。单向加密包括MD5、SHA等摘要算法,它们是不可逆的。双向加密包括对称加密和非对称加密。双向加密是可逆的,存在密文的密钥。...是用来替代DES的新一代分组加密算法。AES支持三种长度的密钥:128位、192位、256位。3.AES的加密过程(AES处理单位:字节)AES的加解密过程和DES一样,都是通过分组加密、分组解密。...下图给出了AES加解密的流程:AddRoundKey (轮密钥加)— 矩阵中的每一个字节都与该次轮密钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。...MixColumns (列混淆)— 为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。...4.前端解密安装依赖npm install crypto-js --save-dev// 引入import CryptoJS from 'crypto-js'​// 密钥const AES_KEY =

    1.9K101

    MySQL管理——网络传输安全

    MySQL中的许多选项和变量都涉及SSL,但实际上它使用的是更为安全的TLS,包括验证身份、检测传输中的更改及防止重放等机制在内。...MySQL建立安全连接的过程如下: 客户端发起一个连接至服务器的安全连接 服务器提供数字证书给客户端用以识别服务器及提供服务器的公钥 客户端决定会话密钥,并使用服务器的公钥加密传输到服务器 服务器用私钥解密客户端传至服务器的会话密钥...此时,该会话密钥仅客户端和服务器持有 其他会话使用该会话密钥进行加密解密传输内容 SSL包括检测修改并防止回放的机制 生成数字证书 使用SSL时,服务器必须具有一个由凭据管理中心CA发行,基于X509...“Ssl_cipher”会话状态变量显示当前会话使用的加密算法。 按用户配置客户端选项 在创建用户或者更改用户语句里,使用“REQUIRE语句”可以为不同的用户指定是否使用SSL/TLS。...-SHA'; 以上内容是关于创建MySQL安全连接的介绍,安全连接可以避免MySQL遭受网络窃听,防止数据信息泄露。

    32910

    PHP AES加密

    #CCM (counter with CBC-MAC)定义在分组长度为128位的加密算法中,如,AES 的分组长度为128。...组成AES-CCM算法的关键组成是CTR工作模式以及CMAC认证算法。 #GCM基于并行化设计,因此可以提供高效的吞吐率和低成本、低时延。...本质是消息在变形的CTR模式下加密,密文结果与密钥以及消息长度在GF(2^128)域上相乘。其输入输出和CCM基本一致。 #GCM中的G就是指GMAC,C就是指CTR。...在实际应用场景中,有些信息是我们不需要保密,但信息的接收者需要确认它的真实性的,例如源IP,源端口,目的IP,IV,等等。因此,我们可以将这一部分作为附加消息加入到MAC值的计算当中。...; #获取密码初始化向量(iv)长度 $iv_length = openssl_cipher_iv_length($this->method); #生成一个伪随机字节串

    1.5K30

    HTTPS 原理与证书实践

    在此需要了解一下加密算法的原理 ↓ 通讯双方需要进行数据密钥信息约定(密钥协商过程),在密钥相互可以获悉的过程中,需要借助密钥交换机制(Internet key exchange IKE),进而实现密钥的交互...非对称加密算法中,存在密钥对的概念,即拥有公钥(public key)与私钥(pnvate key),其中公钥不是自行创建出来的而是从私钥中提取出来一部分作为公钥,因此可以说公钥是来自于私钥的,而私钥才决定了密钥加密的安全性...HTTPS访问 1.6.1 证书的创建 说明:再测试环境中,可以使用只生产的证书进行测试(使用只生产的证书在访问时会报证书不安全!)...如果除了主证书外,还要指定中间证书, 则应按以下顺序在同一文件中指定它们: 主证书首先出现, 然后是中间证书。PEM 格式的密钥可以放在同一个文件中。...字节的随机数, 可以使用以下命令进行创建: openssl rand 80 > ticket.key 根据文件大小的不同, AES256 (对于80字节密钥、1.11.8) 或 AES128 (对于48

    5K70

    HBase配置AES加密

    AES是一个对称加密算法,如下图所示: ? 下面简单介绍下各个部分的作用与意义: 密钥K 用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。...密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络传输给对方,实际中,一般是通过RSA加密AES的密钥,传输到接收方,接收方解密得到...最后通过ambari页面将自定义配置加到hbase-site.xml中。分为以下几步: 使用keytool实用程序为AES加密创建适当长度的密钥。...在密钥文件上设置适当的权限,并将其分发给所有HBase服务器。上一个命令在/usr/hdp/3.0.1.0-187/hbase/conf/目录下创建了一个名为hbase.jks的文件。...由于密钥库密码存储在hbase-site.xml中,因此需要确保只有HBase用户可以使用文件所有权和权限读取hbase-site.xml文件。

    4.1K30

    PHP的Sodium加密扩展函数了解

    PHP的Sodium加密扩展函数了解 这是本次加密扩展系列的最后一篇文章,也是我们要学习了解的最后一个 PHP 加密扩展。Sodium 出现的目的也是为了代替 Mcrypt 这个原来的加密扩展。...在微信支付相关的开发中,有一个接口就是使用的这种方式进行数据加密,在官方文档中,也提供了 PHP 对应的解密方式,其中使用的就是 Sodium 扩展库中的函数。...; // 加密证书的随机串,加密证书的随机串 $ad = 'fullstackpm'; // 加密证书的随机串 $kengen = sodium_crypto_aead_aes256gcm_keygen...(); // 密钥 // 是否可用 echo sodium_crypto_aead_aes256gcm_is_available(), PHP_EOL; // 1 // 加密 $pem = sodium_crypto_aead_aes256gcm_encrypt...u^j��" // 验证签名 var_dump(sodium_crypto_auth_verify($signature, $message, $key)); // bool(true) 它们需要的就是一个简单的随机签名密钥

    1.7K20

    WannaCry 蠕虫详细分析

    背景: 2017 年 5 月 12 日,WannaCry 蠕虫通过 MS17-010 漏洞在全球范围大爆发,感染了大量的计算机,该蠕虫感染计算机后会向计算机中植入敲诈者病毒,导致电脑大量文件被加密,本文对其进行详细分析...木马加密使用 AES 加密文件,并使用非对称加密算法 RSA 2048 加密随机密钥,每个文件使用一个随机密钥,理论上不可破解。...创建两个线程,分别扫描内网和外网的 IP,开始进程蠕虫传播感染。...RSA 2048 公钥,用于加密,其中一个含有配对的私钥,用于演示能够解密的文件,另一个则是真正的加密用的密钥,程序中没有相配对的私钥 木马随机生成一个 256 字节的密钥,并拷贝一份用 RSA2048...加密,RSA 公钥内置于程序中 构造文件头,文件头中包含有标志、密钥大小、RSA 加密过的密钥、文件大小等信息 使用 CBC 模式 AES 加密文件内容,并将文件内容写入到构造好的文件头后,保存成扩展名为

    3.4K01

    腾讯安全团队深入解析wannacry蠕虫病毒

    木马加密使用AES加密文件,并使用非对称加密算法RSA 2048加密随机密钥,每个文件使用一个随机密钥,理论上不可破解。...创建两个线程,分别扫描内网和外网的IP,开始进程蠕虫传播感染。 对公网随机ip地址445端口进行扫描感染。 对于局域网,则直接扫描当前计算机所在的网段进行感染。 感染过程,尝试连接445端口。...RSA 2048公钥,用于加密,其中一个含有配对的私钥,用于演示能够解密的文件,另一个则是真正的加密用的密钥,程序中没有相配对的私钥。...木马随机生成一个256字节的密钥,并拷贝一份用RSA2048加密,RSA公钥内置于程序中。 构造文件头,文件头中包含有标志、密钥大小、RSA加密过的密钥、文件大小等信息。...使用CBC模式AES加密文件内容,并将文件内容写入到构造好的文件头后,保存成扩展名为.WNCRY的文件,并用随机数填充原始文件后再删除,防止数据恢复。

    1.3K50
    领券