Pearcmd总结及利用
Pearcmd总结及利用pearcmd简介 pecl是PHP的一个命令行工具,用以管理扩展 pear是pecl依赖的类库,在7.3及以前的PHP版本,pecl/pear是默认安装的,而在7.4及之后的版本,则需要我们在编译PHP的时候,指定–with-pear选项,才会给我们安装 但是,在Docker任意版本镜像当中,pcel/pear都会被默认安装,并且安装的路径在/usr/local/lib/php 在php.ini中,register_argc_argv=On 需要被开启 漏洞原理 在peracmd.php中,有一个关键字argv,是用来传递命令行参数的,并且使用了readPHPArgv()这个函数 1234567891011PEAR_Command::setFrontendType('CLI');$all_commands = PEAR_Command::getCommands();$argv = Console_Getopt::readPHPArgv();//...
Python原型链污染
Python原型链污染 前段时间学了Js的原型链污染,加上国赛和DAS都出了Sanic框架下的Python原型链污染的题,感觉之后还会碰上这样的题目,所以学习一下 一些简介 原型: 每个对象拥有一个原型对象(prototype),对象以该原型为模板,从原型继承方法和属性 原型链: 原型对象可能拥有原型,从中继承方法和属性,一层一层、以此类推,这样的关系结构叫做原型链 prototype和____proto...
Python黑帽子阅读笔记
Python黑帽子阅读笔记前置准备安装好python3和kali之后,下载venv虚拟环境 12345678sudo apt-get install python3-venv #安装python3-venv软件包mkdir bhp #创建bhp目录cd bhppython3 -m venv venv3 #向python3传递-m选项来调用venv包,命名环境名为venv3source venv3/bin/activatedeactivate #退出虚拟环境 在venv虚拟环境下用pip来搜索安装软件包 12例如(venv3) ➜ bhp$ pip install lxml 进入python的shell当中查看是否安装成功 1234Python 3.11.8 (main, Feb 7 2024, 21:52:08) [GCC 13.2.0] on linuxType "help", "copyright", "credits" or "license" for more...
Redis未授权访问
Redis未授权访问 什么是redis Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivota赞助。 漏洞原理 默认情况下呢,Redis是绑定在0.0.0.0:6379的,如果没设置密码(一般密码为空)或者密码为弱口令,缺乏有效保护措施的话,那么处于公网服务的redis服务就会被任意用户进行未授权访问,进行读取数据操作,甚至能利用redis自身的命令写入文件操作,这样就会产生进一步的攻击行为 漏洞复现根据bmjoker大佬的博客,整了俩虚拟机,一台攻击一台受害 先用src下的redis-cli对目标机进行连接,然后ping一下,发现能ping通 接着用keys...
Python沙箱逃逸
Python沙箱逃逸 在学了SSTI之后,发现Python还有一个沙箱逃逸没学,恰好这玩意又和框架啥的挨上边,为了知识的连贯性,决定做一个沙箱逃逸的学习 一些前置知识的介绍沙箱python沙箱逃逸,是CTF当中的一类题的统称(PYjail) 为了不让恶意用户执行任意恶意的python代码,我们引用了沙箱机制,一些可能存在恶意攻击代码的语句就能在沙箱环境当中运行,沙箱内可能会禁用一些敏感函数,使得恶意代码只作用于沙箱内,而不会对我们的服务器以及其他资产造成破坏 常见的沙箱技术 模块沙箱 如restrictedpython和PyExecJS,这些工具可以在独立的执行环境当中运行python代码,并限制访问系统资源。通常它们会提供一组允许和禁止的操作,也就是黑白名单,来控制代码的行为 代码示例 12345678910from restrictedpython import compile_restricted, safe_builtinscode = """result = 1 +...
Windows内部
Windows内部进程(Processes)每个进程都提供执行程序所需要的资源 进程具有虚拟空间、可执行代码、系统对象的开放句柄、安全上下文、唯一进程标识符、环境变量、优先级类、最小和最大工作及大小、至少一个执行线程 每个进程都用单个线程(通常称为主线程)启动,但可以从其任何线程创建其他线程 进程组件 作用 私有虚拟地址空间 为进程分配虚拟内存地址 可执行程序 定义存储在虚拟地址空间中的代码和数据 开放句柄 定义进程可以访问的系统资源的句柄 安全上下文 访问令牌,定义用户、权限和其他安全信息 进程ID 进程的唯一数字标识符 线程 计划执行的进程部分 从更底层的层面来看,也就是从虚拟地址空间一层面来解释进程 进程在内存中的组件和用途大概如下 组件 用途 代码(Code) 提供进程执行的代码 全局变量(Global Variables) 存储的变量 进程堆(Process Heap) 定义数据存储的堆 进程资源(Process Resources) 定义进程的更多资源 环境块(Environment...
Windows权限提升
Windows权限提升常见获取密码方式无人值守的 Windows 安装在大量主机上安装 Windows 时,管理员可以使用 Windows 部署服务,该服务允许通过网络将单个操作系统映像部署到多个主机。这些类型的安装称为无人值守安装,因为它们不需要用户交互。此类安装需要使用管理员帐户执行初始设置,最终可能会存储在计算机的以下位置: 12345目录:\无人参与.xmlC:\Windows\Panther\Unattend.xmlC:\Windows\Panther\Unattend\Unattend.xml系统信息文件夹:\Windows\system32\sysprep.infC:\Windows\system32\sysprep\sysprep.xml 作为这些文件的一部分,您可能会遇到凭证: 12345<Credentials> <Username>Administrator</Username> <Domain>thm.local</Domain> ...
Windows权限维持
Windows权限维持篡改非特权账户分配组成员资格 在这部分任务中,我们假设的前提是:攻击者已经转储了受害者机器的hash,并成功破解了所使用的非特权账户的密码 使得非特权用户能获得管理权限的最直接的方法就是:使其成为Administrators组的一部分 命令如下: 1net localgroup administrators thmuser0 /add 这将允许我们使用RDP、WinRM或者其他任何可用的远程管理服务,来访问服务器 为了降低可疑程度,可用Backup Operators组 此组中的用户将没有管理权限,但是可用读取、写入系统上的任何文件或注册表项,并且忽略任何已配置的DACL。这样我们就可以复制SAM和SYSTEM注册表配置单元的内容,然后恢复所有用户的密码hash,从而使得我们能升到Administrator 在此之前首先我们要将账户添加到Backup Operators组 1C:\> net localgroup "Backup Operators" thmuser1...
记一次用api部署LLM的经历
记一次用api部署LLM的经历 前言 新生趣味赛说要给小登们出一点好玩的赛题,正好之前在做base和moe的时候碰到AI的题,很是心动啊。于是我就寻思着自己能不能也起一个简单的聊天机器人。 和不死鸟学长探讨了一番,直接部署模型是比较麻烦的,况且我没有相关知识储备,找来找去还是决定用api的方式来进行。这次搭建使用的是moonshot的api,怎么说呢,我觉得至少在国内来说,他们家写的这个开发文档还是蛮容易懂的,照着改也能改得像模像样的。 废话少说,大概说一下需要用到啥 api key(moonshot他们给了一个免费的15块钱额度,当然我充了50块钱,效果更佳) 一台VPS。当然你也可以自己本地起一个给自己玩,由于要做的是面向其他新生的聊天机器人,就部署在了VPS上 一点点web基础知识。我用的是Python的Flask框架,还是蛮简单的 搭建过程 做一个简单的聊天机器人,无非就是前端交互,后端处理。 后端选用了flask框架,简单容易上手。让AI给搓了一个简单的框架 安装Flask和OpenAI SDK 1pip install flask...