Hackmyvm BaseMe

简介

靶机:BaseMe
难度:简单
参考wp:https://www.freebuf.com/articles/web/332306.html

本地环境

kali(2024): 192.168.194.9
靶机:192.168.194.13

扫描

常规nmap起手,nmap -sT -sV -A -T4 192.168.194.13 -p-
在这里插入图片描述
开启的服务有22端口的ssh和80端口的web服务,访问web服务。首先尝试base64编码解密curl http://192.168.194.13|base64 -d,看到提示,说我们需要的所有东西包括密码都需要base64编码。同时,看到了用户名lucas
在这里插入图片描述
接着尝试扫一波目录,注意,需要先用base64加密路径。
先创建一个base加密的字典

#!/bin/bash
for i in 
### 关于 HackMyVM 中与 Pickle 相关的安全问题或用法 Pickle 是 Python 提供的一个序列化模块,用于将对象保存到文件或将它们转换为字节流以便在网络上传输。然而,由于其设计特性,Pickle 存在严重的安全漏洞——当反序列化不受信任的数据时,可能会执行恶意代码。 #### Pickle 安全问题概述 Pickle 的主要问题是它允许自定义类实例的重建过程。这意味着攻击者可以通过构造特定的 Pickle 数据流,在目标机器上触发任意代码执行[^3]。这种行为使得 Pickle 不适合处理来自外部源或未经验证的数据。 #### HackMyVM 场景中的应用 HackMyVM 是一个虚拟机环境集合,旨在提供真实世界的渗透测试场景练习机会。在这个上下文中讨论 Pickle 可能涉及以下几个方面: 1. **利用 Pickle 进行远程命令执行 (RCE)** 攻击者可能创建一个特制的 Pickle 文件并诱导受害者加载该文件。一旦被解码,此文件就能运行预设好的恶意脚本。例如: ```python import pickle import subprocess class EvilPickle(object): def __reduce__(self): return (subprocess.Popen, (['/bin/sh'],)) malicious_pickle = pickle.dumps(EvilPickle()) ``` 2. **防御措施** 针对上述威胁,开发者应采取如下策略规避风险:仅限内部可信网络间传输;采用更安全替代方案如 JSON/YAML 序列化形式存储数据结构而非依赖 Pickle;以及运用静态分析工具像 Bandit 扫描潜在隐患。 3. **实际操作指南** - 使用 `bandit` 工具扫描项目内的所有 `.py` 文件查找是否存在不当调用了 `pickle.load()` 或相似高危 API 实例。 ```bash pip install bandit bandit -r /path/to/project/ ``` 4. **最佳实践建议** 对任何来源于外界输入都需保持高度警惕态度,并实施严格的校验机制后再做进一步处理动作之前完成必要的净化工作流程设定好边界条件限制范围之外的一切请求均视为非法入侵企图予以拒绝回应处理方式。 ```python import pickle from io import BytesIO def safe_unpickle(data: bytes): try: buffer = BytesIO(data) obj = pickle.Unpickler(buffer).load() return obj except Exception as e: raise ValueError("Invalid data provided") from e ``` 以上代码片段展示了一个相对更加稳健版本的安全 unpickling 函数实现例子。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值